Website-Icon Frankys Web

Outlook CVE-2023-23397: Was ist zu tun?

Die Outlook Schwachstelle CVE-2023-23397 wird derzeit aktiv ausgenutzt, besonders kritisch ist dies, da die Ausnutzung ohne Interaktion des Benutzers möglich ist. Angreifer können durch Ausnutzung der Schwachstelle an NTLM Hashes des Benutzers kommen und diese möglicherweise für folgende Angriffe verwenden. Zum Ausnutzen der Schwachstelle reicht es eine präparierte E-Mail oder eine Kalendereinladung an den Benutzer zu schicken, welche eine Erinnerung hervorruft und einen benutzerdefinierten Ton für die Erinnerung abspielen soll. Hier mal ein Beispiel:

Für die Erinnerung wird nun aber nicht eine lokale WAV-Datei angegeben, welche Outlook abspielen soll, sondern ein Pfad zu einem Server des Angreifers aus dem Internet, beispielsweise so:

Zum Erinnerungszeitpunkt (bei 0 Minuten sofort) versucht Outlook nun den Server per SMB im Internet zu erreichen. Antwortet nun der Server des Angreifers und fordert die Authentifizierung des Clients an, sendet Outlook den NTLM Hash an den Angreifer. Hier gibt es dazu weitere Details und auch eine Demonstration:

Wie bereits eingangs erwähnt, wird diese Schwachstelle aktiv ausgenutzt, daher muss möglichst schnell gehandelt werden, folgendes ist nun zu tun:

Port 445 (SMB) an der Perimeter Firewall blocken

Eigentlich sollten ja alle ungenutzten Ports an der Perimeter Firewall geschlossen sein, aber leider gibt es häufig die Konfiguration, dass zwar von Außen nach Innen nur die nötigen Ports geöffnet werden, aber von Innen nach Außen alle Ports und Protokolle zugelassen werden. Oft ist dies bei günstigen Routern der Fall, welche oft im HomeOffice eingesetzt werden. An der Perimeter Firewall des Unternehmens ist also hoffentlich der Port 445 in Richtung Internet schon blockiert, wenn nicht dann unbedingt umsetzen.

Zusätzlich muss man nun aber auch die vielen Home Office Nutzer denken. Wenn möglich sollte auch hier Port 445 in Richtung Internet gesperrt werden. Wenn es hier aber keine zentrale Verwaltung für die Home Office Firewalls oder Router gibt, dann sollte hier jetzt nicht zu viel Zeit investiert werden, sondern lieber das verfügbare Sicherheitsupdate installiert werden oder die Benutzerkonten zur Gruppe „Protected Users“ hinzugefügt werden.

Benutzerkonten im HomeOffice zur Gruppe „Protected Users“ hinzufügen

Damit der Client erst gar nicht versucht eine NTLM Authentifizierung durchzuführen, können die Benutzeraccounts in die Active Directory Gruppe „Protected Users“ aufgenommen werden. Durch diese Gruppe wird NTLM als Authentifizierungsmethode abgeschaltet. In den meisten Fällen wird es hier aber zu Problemen mit anderen Anwendungen kommen, welche NTLM benutzen. In der aktuellen Situation ist es aber ein gutes Pflaster, bis das Sicherheitsupdate installiert wurde. Den Port 445 an der Firewall zu schließen und die Benutzer in die Gruppe „Protected Users“ aufzunehmen geht schnell und hilft erst einmal gegen die Ausnutzung der Schwachstelle.

Sicherheitsupdate für Outlook installieren

Microsoft hat für Outlook ein Sicherheitsupdate veröffentlicht, welche die Schwachstelle schließt. Die verfügbaren Sicherheitsupdates sollten daher möglichst schnell installiert werden. In diesem Artikel finden sich die Download Links für die Updates:

An dieser Stelle kann man erst einmal aufhören zu lesen und alle Outlook Installationen aktualisieren. Wenn die Updates erledigt sind, kann weiter gemacht werden.

CVE-2023-23397 Script ausführen

Microsoft hat ein PowerShell Script veröffentlicht, welches die Postfächer nach Mails und weiteren Elementen durchsucht und diese schädlichen Elemente auch löschen kann. Das Script kann hier runtergeladen werden:

Je nach Anzahl und Größe der Postfächer, kann die Suche nach den Elementen aber recht lange dauern. Außerdem muss bei einem Treffer davon ausgegangen werden, dass die Schwachstelle erfolgreich ausgenutzt wurde. Auch wenn der Port 445 an der Perimeter Firewall im Unternehmen blockiert war, könnte sich der betreffende Benutzer zum Zeitpunkt der Ausnutzung im Home Office oder unterwegs beim Kunden befunden haben, wo möglicherweise kein Schutz bestand. Bevor das Script ausgeführt wird und nach betroffenen Benutzern gesucht wird, sollten daher unbedingt die ersten drei beschriebenen Schritte durchgeführt werden.

Das Script lässt sich meiner Meinung nach am schnellsten direkt auf den Exchange Servern ausführen. Bei mehreren Exchange Servern und mehreren Datenbanken lässt sich das Script auch parallel auf mehreren Servern ausführen und spart somit Zeit. Um das Script auf den Exchange Servern auszuführen, können die folgenden Schritte durchgeführt werden („BENUTZER“ durch das Konto ersetzen, welches das Script ausführt):

New-ThrottlingPolicy "CVE-2023-23397-Script"
Set-ThrottlingPolicy "CVE-2023-23397-Script" -EWSMaxConcurrency Unlimited -EWSMaxSubscriptions Unlimited -CPAMaxConcurrency Unlimited -EwsCutoffBalance Unlimited -EwsMaxBurst Unlimited -EwsRechargeRate Unlimited
Set-Mailbox -Identity "BENUTZER" -ThrottlingPolicy "CVE-2023-23397-Script"

New-RoleGroup -Name "CVE-2023-23397-Script" -Roles "ApplicationImpersonation" -Description "Permission to run the CVE-2023-23397"
New-ManagementRoleAssignment -name:CVE-2023-23397-Script -Role:ApplicationImpersonation -User:BENUTZER

Danach muss die EWS Schnittstelle runtergeladen werden. Es handelt sich bei dem Paket eigentlich um ein NuGet Paket mit der Dateiendung NUPKG, die Endung kann aber einfach zu ZIP umbenannt werden. Der Ordner „lib“ aus dem ZIP Archiv kann nun in den gleichen Ordner wie das Script auf dem Exchange Server kopiert werden:

Das Script lässt sich nun starten. Alle Postfächer lassen sich beispielsweise mit dem folgenden Befehl nach schädlichen Elementen durchsuchen:

Get-Mailbox -ResultSize Unlimited | .\CVE-2023-23397.ps1 -Environment Onprem -EWSServerURL https://localhost/EWS/Exchange.asmx -IgnoreCertificateMismatch -DLLPath C:\Scripts\CVE-2023-23397\lib\40\Microsoft.Exchange.WebServices.dll

Der Befehl muss in der Exchange Management Shell ausgeführt und der Pfad zur Microsoft.Exchange.WebServices.dll entsprechend angepasst werden.

Bei mehreren Datenbanken und Exchange Servern könnte man das Script auf jeden Exchange Server immer eine Datenbank durchsuchen lassen, so kann man das Script parallel auf mehreren Servern ausführen und Zeit sparen. Hier mal ein Beispiel:

Get-Mailbox -Database "MEINEDB1" -ResultSize Unlimited | .\CVE-2023-23397.ps1 -Environment Onprem -EWSServerURL https://localhost/EWS/Exchange.asmx -IgnoreCertificateMismatch -DLLPath C:\Scripts\CVE-2023-23397\lib\40\Microsoft.Exchange.WebServices.dll

In großen Umgebungen braucht das Script unter Umständen ewig bis es durchgelaufen ist, es kann daher Sinn machen den Zeitrahmen einzuschränken, hier mal das Beispiel von oben, welches nur die letzten 14 Tage durchsucht:

Get-Mailbox -Database "MEINEDB1" -ResultSize Unlimited | .\CVE-2023-23397.ps1 -Environment Onprem -EWSServerURL https://localhost/EWS/Exchange.asmx -IgnoreCertificateMismatch -StartTimeFilter ((get-date).AddDays(-14)) -EndTimeFilter (get-date) -DLLPath C:\Scripts\CVE-2023-23397\lib\40\Microsoft.Exchange.WebServices.dll

Es gibt allerdings Hinweise dass die CVE-2023-23397 schon seit April 2022 ausgenutzt wird, daher wiegt die Suche innerhalb eines kurzen Zeitraums möglicherweise in trügerischer Sicherheit und es sollte mindestens das letzte Jahr durchsucht werden.

Wenn es Treffer gibt, erstellt das Script eine CSV Datei mit den gefunden Elementen. Diese CSV Datei sollte man sich einmal anschauen, ich hatte da ein paar False Positive drin. Die schädlichen Elemente lassen sich nun mit dem folgenden Befehl löschen:

.\CVE-2023-23397.ps1 -Environment Onprem -CleanupAction ClearItem -EWSServerURL https://localhost/EWS/Exchange.asmx -IgnoreCertificateMismatch -CleanupInfoFilePath "PFADZURCSV"

Kennwörter betroffener Benutzer zurücksetzen

Wenn das Script Treffer findet, sollte erst einmal davon ausgegangen werden, dass die Ausnutzung der Schwachstelle erfolgreich war. Möglicherweise befand sich der Benutzer gerade nicht im Einzugsbereich der Firewall des Unternehmens. Es ist daher ratsam das Passwort des Benutzers zu ändern und den Benutzer in die Gruppe „Protected Users“ aufzunehmen. Auch sollte dann überwacht werden, ob es verdächtige Login Versuche dieser Benutzerkonten gibt, beispielsweise via VPN oder OWA.

CVE-2023-23397 und Office 365 / Exchange Online?

Da CVE-2023-23397 eine Schwachstelle in Outlook und nicht in Exchange oder Exchange Online ist, dürfen nun auch Exchange Online Admins ans Werk. Das Test Script von Microsoft lässt sich auch gegen Exchange Online und Office 365 ausführen. Die beschriebenen Schritte gelten also auch, wenn Office 365 eingesetzt wird.

Die mobile Version verlassen