CVE-2023-23397の検証

このブログは、無事進級できた株式会社Armorisのアルバイトのseigo2016が書いています。 あるもりすぶろぐの内容は個人の意見です。

はじめに

検証には自身で管理する環境を使用し、自己責任でお願いします。また、この情報を悪用することは絶対に行わないでください。
今回は2023/03/14に公開された、CVE-2023-23397についての検証を行います。

これは、Outlookに関する脆弱性で、攻撃者からの悪意のある電子メールを受信するだけで、ユーザーの操作なしにNTLM認証のハッシュが攻撃者に漏洩するものです。 このハッシュを別サービスに利用することで、受信ユーザーになりすまして認証を受けることが可能になります。

概要

CVE-2023-23397 (Microsoft Outlook Elevation of Privilege Vulnerability)
CVSSv3 Score: 9.8

脆弱性の原因

攻撃のフロー

  • PidLidReminderFileParameter に攻撃者が管理するSMBサーバーを指すUNCパスが指定されている
    • カスタムリマインダーサウンドの場所が攻撃者が管理するSMBサーバーを指す
  • そのような悪意のあるカレンダーの招待を受信したときに引き起こされる。
    • 受信したときに、リマインダーサウンドを取得するためにUNCパスで指定されたサーバーに認証を試みる
      • このときにNTLMv2ハッシュが漏洩する

起こりうる問題

多くのサービスでNTLMv2ハッシュを直接認証に利用しており、リレー攻撃が行われることがあります。 また、管理者のハッシュが流出した場合、ドメインを横断したリレー攻撃によって特権が昇格に繋がる可能性もあります。

Microsoft365などのサービスはNTLM認証を利用していないため、標的になることはありませんが、ドメイン内でNTLM認証を利用している場合は標的になる可能性があります。

Microsoftはこの脆弱性の標的になる可能性があるかどうか確認するためのdocumentとPowerShellスクリプトを提供しています。

検証・調査

検証環境

  • Kali

メールサーバー及び攻撃者の管理するSMBサーバーとして利用

名称 バージョン 備考
Kali 2021.4
IPアドレス 198.51.100.254
dovecot 2.3.18
Postfix 3.6.4
responder 3.0.7.0 SMBサーバーとして動作
名称 バージョンなど 備考
Windows 10 Pro 1919
IPアドレス 198.51.100.9
Microsoft Outlook 2019

Responder

ResponderはHTTP/SMB/MSSQL/FTP/LDAPサーバーを偽装し、認証情報を窃取することができるツールです。
(Pythonには別にresponderというWebアプリケーションフレームワークが存在しますが、別ものです)
GitHubリポジトリ : lgandx/Responder

検証

Powershellスクリプトを用いて、Outlookでログインしているメールアドレスにカレンダーへの招待・リマインダーメールを送信します。
このメールは、Message Application Program Interface(MAPI)を用いて、リマインダーサウンドのUNCパスが攻撃者のSMBサーバーを指すように設定されています。

メールを受信したタイミングで、OutlookクライアントがSMBサーバーにサウンドを取得するために認証を試みるため、下記のようにResponderのログにHashが記録されました。

Outlookクライアントから見ると、以下のようにスケジュールが表示されます。

受信したスケジュールのリマインダー音の設定を確認すると、攻撃者のSMBサーバーのアドレスが設定されています。

Hashのクラック

Hash化されていますが、辞書攻撃や、十分に短いパスワードである場合はブルートフォースアタックによって元のパスワードを復号することが可能な場合があります。
今回はOSSのパスワードクラッカーであるHashcatを用いて、取得したNTLMv2 のハッシュ値を辞書を元にクラックします。
ワードリストにはKali Linuxに標準で用意されているパスワード辞書ファイルであるrockyou.txtを利用しました。

.\hashcat.exe -m 5600  .\hash.txt .\rockyou.txt -o cracked.txt

  • cracked.txt

元のパスワードであるP@ssw0rd!が取得できています。
また、Pass the Hash攻撃によってハッシュの状態で悪用され、不正にアクセスされる可能性もあります。
ハッシュ化されているので安全、というわけではないことが分かります。

最後に

今回は2023/03/14に公開された、CVE-2023-23397についての検証を行いました。
ユーザーの操作なしに認証情報を取得することができるうえに、ハッシュ化されていても悪用される可能性があり非常に危険です。

Microsoftは2023年3月にセキュリティ更新プログラムをリリースしており、これを適用することで悪用を防ぐことができます*1
また、それ以前に攻撃を受けていないかを確認することのできるPowerShellスクリプトも提供しています*2。該当スクリプトは、関連する項目をスキャンし、その中にプロパティPidLidReminderFileParameterが存在するかを確認・削除します。

自分が管理するサーバー以外では絶対に試さないでください。 また、検証は自己責任で行ってください。 この情報を悪用することは絶対に行わないでください。