JBoss漏洞复现
CVE-2017-12149 Jboss代码执行
影响范围
- Jboss AS 5.x
- Jboss AS 6.x
漏洞原理
该漏洞位于JBoss的HttpInvoker组件中的ReadOnlyAccessFilter过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下将来自客户端的序列化数据进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码。
攻击过程
范围漏洞环境
访问
/invoker/readonly
路径,出现以下报错则存在反序列化漏洞
在攻击机上开启监听,然后利用ysoserial生成序列化数据
|
|
再利用curl命令将序列化数据发送至JBoss
|
|
CVE-2015-7501 JBoss JMXInvokerServlet 反序列化漏洞
影响范围
- JBoss Enterprise Application Platform 6.4.4,5.2.0,4.3.0_CP10
- JBoss AS (Wildly) 6 and earlier
- JBoss A-MQ 6.2.0
- JBoss Fuse 6.2.0
- JBoss SOA Platform (SOA-P) 5.3.1
- JBoss Data Grid (JDG) 6.5.0
- JBoss BRMS (BRMS) 6.1.0
- JBoss BPMS (BPMS) 6.1.0
- JBoss Data Virtualization (JDV) 6.1.0
- JBoss Fuse Service Works (FSW) 6.0.0
- JBoss Enterprise Web Server (EWS) 2.1,3.0
漏洞原理
JBoss在/invoker/JMXInvokerServlet
请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的Gadget执行任意代码。原理之前的一样,都是直接对客户端传来的数据进行了反序列化。
利用过程
如果在访问/invoker/JMXInvokerServlet
出现了文件下载的情况则证明存在漏洞
之后一样,利用ysoserial生成序列化数据然后再发送给JBoss
JBoss EJBInvokerSerlvet 反序列化漏洞
影响范围
主要集中在 JBoss 6.x
上
- Apache Group Common Collection 4.0
- Apache Group Common Collection 3.2.1
- Apache Group Common Collections
漏洞原理
此漏洞原理相同,不同的是JMXInvokerServlet
利用的是org.jboss.invocation.MarshalledValue
进行反序列化,而EJBInvokerServlet
利用的是org.jboss.console.remote.RemoteMbeanInvocation
进行反序列化。
漏洞利用
该漏洞利用路径为/invoker/EJBInvokerServlet
,利用方式一样
CVE-2017-7504 JBossMQJMS 反序列化漏洞
影响范围
- JBoss <= 4.x
漏洞原理
JBossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java存在反序列化漏洞。
漏洞利用
访问JBoss的路径jboss-httpil/HTTPServerILServlet
,若存在下图则存在漏洞
利用工具JavaDeserH2HC生成反序列化数据,在攻击机上监听
|
|
JBoss Administration Console 弱口令getshell
影响范围
- 全版本
漏洞原理
Administration Console管理页面存在弱口令admin:admin
,登录后台上传包含shell的war包部署,即可利用后门工具连接。
漏洞利用
访问/jmx-console
路径,爆破弱口令admin:admin
再点击该链接进行部署
输入已经在攻击机上部署好的war包
成功后可以看到以下信息
再在
/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.deployment%3Atype%3DDeploymentScanner%2Cflavor%3DURL
点击Apply Change
,则证明上传成功