漏洞简介

ActiveMQ反序列化漏洞复现(CVE-2015-5254)

Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务、集群、Spring Framework等。由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。

Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞,该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的Java Message Service(JMS)ObjectMessage对象利用该漏洞执行任意代码。

环境搭建

这里使用vulhub来快速搭建复现环境

可以看到环境已经启起来了,映射了两个端口出来,分别是8161以及61616,8161是web管理端的端口,61616是工作端口

复现过程

利用过程

  1. 构造(可以使用ysoserial)可执行命令的序列化对象
  2. 作为一个消息,发送给目标61616端口
  3. 访问web管理页面,读取消息,触发漏洞

漏洞利用

使用jmet进行漏洞利用(也可以使用其他的利用工具),这里给一个下载地址:jmt链接

需要在同目录创建一个external目录,否则可能会报找不到文件夹错误

java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/success" -Yp ROME ip 61616

此时登录web管理控制台,找到queues下的event进去之后可以看到我们新建的event:

此时点击这个event可以执行我们利用工具传递的命令:

查看容器下的/tmp目录,可以找到创建的json文件:

最后修改:2021 年 06 月 03 日 11 : 11 AM