
CVE-2023-21554 PoC
このリポジトリは、TCPポート1801で待ち受けるMicrosoft Message Queuingをターゲットとした、すぐに実行可能な概念実証(PoC)を含んでいます。この作業は、元のプロジェクト(https://github.com/leongxudong/MSMQ-Vulnerability)の資料に基づき、それを使用しています。
このリポジトリは、そのプロジェクトが提供するバイナリアーティファクトを使用しています。PoCに含まれ、参照されるバイナリファイルは以下の通りです:
establish_connection.binconnection_parameters.binuser_message.binこのPoCは、一連のMSMQプロトコルフレームをターゲットホストのポート1801に送信することにより、CVE-2023-21554に記載された条件を再現しようと試みます。PoCスクリプトはネットワークレベルのアクティビティのみを実行し、ポストエクスプロイテーションアクションは一切実行しません。このプロジェクトは、隔離されたラボ環境での分析および防御検証のみを目的としています。
CVE-2023-21554.py — 3つのバイナリブロブを順番に送信する元のPoCスクリプトCVE-2023-21554.py — レスポンス、16進ダンプ、タイムスタンプ、ソケットレベルのエラーを記録する攻撃側ヘルパースクリプト。このスクリプトを使用して、より有用な攻撃側の証拠を取得してください。establish_connection.bin — 元のリポジトリからのバイナリステージ1ペイロードconnection_parameters.bin — 元のリポジトリからのバイナリステージ2ペイロードuser_message.bin — 元のリポジトリからのバイナリステージ3ペイロードREADME.md — このファイル3つのバイナリファイルをPoCスクリプトと同じフォルダに配置する
PoCスクリプトまたはCVE-2023-21554.pyを編集してターゲットIPアドレスを設定する
攻撃マシン上でターゲットIPとポートのネットワークキャプチャを開始する。別のシェルでのコマンド例(IPはターゲットに置き換える):
sudo tcpdump -i eth0 host 10.0.2.15 and port 1801 -w msmq_test.pcap
タイムスタンプ付きのログと16進ダンプを取得するために拡張チェックスクリプトを実行する
python3 CVE-2023-21554.py
分析のためにPoCの出力とネットワークキャプチャファイルを保存する
CVE-2023-21554.pyがペイロードステージの直後にconnection_resetまたはorderly_closeを報告する(これらはヘルパーによって出力される明示的なステータスです)。mqsvc.exeがクラッシュまたは再起動する。mqsvc.exeを示すアプリケーションまたはシステムイベントが含まれている。mqsvcプロセス内の例外を示している。各フィルタで<TARGET>をターゲットIPに置き換えてください。
攻撃者とターゲット間のMSMQポート上のすべてのトラフィックを表示:
ip.addr == <TARGET> && tcp.port == 1801
サーバー発信のTCP RSTのみを表示:
ip.src == <TARGET> && tcp.port == 1801 && tcp.flags.reset == 1
アプリケーションデータ(空でないTCPペイロード)を含むパケットを表示:
ip.addr == <TARGET> && tcp.port == 1801 && tcp.len > 0
ゼロ長セグメントまたはFINを表示:
ip.addr == <TARGET> && tcp.port == 1801 && (tcp.len == 0 || tcp.flags.fin == 1)
再送信とTCP異常を表示:
tcp.analysis.retransmission || tcp.analysis.fast_retransmission || tcp.analysis.duplicate_ack
tcp.len値またはRSTの直前のパケットを探す。server_reply.hex)。CVE-2023-21554.pyからの完全な標準出力ログをテキストファイルに保存するmsmq_test.pcap)を保存するmqsvc.exeのクラッシュダンプをキャプチャし、分析用に保存するこのコードは、ターゲットホスト上でサービスのクラッシュや不安定性を引き起こす可能性があります。所有していない、またはテストする明示的な許可がないシステムに対して実行しないでください。常に隔離されたラボ環境でテストし、テスト実行前にVMスナップショットを取得してください。元の作業は上流のプロジェクト(https://github.com/leongxudong/MSMQ-Vulnerability)に帰属します。
このリポジトリは、元のプロジェクト(https://github.com/leongxudong/MSMQ-Vulnerability)から派生したものです。
検出ヘルパーや証拠収集スクリプトを追加する場合は、それらを文書化し、安全なラボ使用のための指示を含めてください。
元のコンテキストとバイナリアーティファクトについては、上記のリンク先の上流リポジトリを参照してください。防御のためのガイダンスについては、ベンダーのアドバイザリおよびCVE-2023-21554に関する公開されたライトアップを参照してください。