Viele Admins berichten derzeit von ein einem erfolgreichen Angriff auf ihren Exchange Server. Viele finden Hinweise auf unbefugte Zugriffe oder sogar eine installierte Webshell. Viele sind nun verunsichert, was nun zu tun ist oder wie weiter vorgegangen werden soll. Manche implementieren nun beispielsweise IIS-Rewrite Rules oder deaktivieren die UM-Dienste, wie es in diesem Artikel von Microsoft empfohlen wird:
Hier gibt es allerdings etwas zu beachten: Der Artikel beschreibt Maßnahmen die getroffen werden können, wenn der verfügbare Patch nicht installiert werden kann. Der Artikel geht davon aus, dass der Exchange nicht bereits erfolgreich angegriffen wurde. Die beschriebenen Maßnahmen sind also “Workarounds” für Umgebungen die den Patch nicht installieren können und bisher nicht angegriffen wurden. Wenn sich also bereits Hinweise finden lassen, dass der oder die Exchange Server angegriffen wurden, gilt oder oben verlinkte Artikel so nicht mehr.
Wenn Ihr also bereits durch die zahlreichen verfügbaren Scripts, Hinweisen in den Logs oder komische .js / .aspx Dateien in Verzeichnissen davon ausgehen könnt, dass der Exchange Server erfolgreich angegriffen wurde, dann müsst ihr jetzt schnell reagieren. Das Kind ist jetzt bereits in den Brunnen gefallen, eine erfolgreich installierte Webshell ermöglicht es dem Angreifer Zugriff auf weite Teile des Netzwerks. Macht euch bewusst, dass Exchange Server weitreichende Berechtigungen im Active Directory haben und der Angreifer mittels Webshell nun möglicherweise weitreichenden Zugriff auf das Netzwerk haben.
Bevor man sich aber nun auf eine möglicherweise langwierige Analyse des Vorfalls begibt und versucht den erfolgten Angriff rückgängig zu machen, indem beispielsweise die angelegten Dateien oder ähnliches gelöscht wird, könnte man auch über eine Recovery Installation des Exchange Servers nachdenken. Nach einer Recovery Installation hat man sowohl eine frische Installation des Betriebssystems und auch des Exchange Servers. Nur wenige Einstellungen für die Exchange Konfiguration müssen erneut durchgeführt werden (Beispielsweise Empfangsconnectoren). Eine Recovery Installation ist zudem auch noch recht schnell durchgeführt, nach etwa 2 – 3 Stunden ist das Betriebssystem inkl. Exchange wiederhergestellt. Ein weiterer Vorteil: Eine aktuelle Datensicherung wird bei diesem Vorgehen nicht benötigt.
Kleine Vorwarnung: Dieser Artikel ist recht schnell entstanden und mit Exchange 2019 getestet worden, ich kann hier natürlich nicht alle Umgebungen nachstellen und im Hinblick auf Zeit auch nicht auf jedes Detail eingehen. Wenn etwas unklar, bitte ich um Hinweise, dann kann ich den Artikel überarbeiten.
Exchange Server sofort vom Netz nehmen
Wenn es bereits Hinweise auf eine Kompromittierung des Exchange Servers gibt, dann muss der Server sofort vom Netzwerk getrennt werden. Natürlich bedeutet dies Downtime für die Benutzer, es geht nun aber darum mehr Schaden abzuwenden. Der Exchange Server gehört also vom Netz, bei einer VM könnt ihr die virtuelle Netzwerkkarte beispielsweise in VMware oder Hyper-V deaktivieren. Bei einem physikalischem Server lässt sich der Switch Port deaktivieren oder zur Not die Netzwerkkabel ziehen. Hauptsache der Server kommt vom Netz. Damit wird erst einmal weiterer Schaden verhindert. Wer nicht gleich “das Kabel ziehen möchte”, muss mindestens die Portfreigeben und / oder den Zugriff vom Internet auf den Exchange Server blockieren. Für welche Möglichkeit ihr euch auch entscheidet, die weiteren Maßnahmen werden Downtime erfordern (zumindest wenn ihr keine DAG betreibt).
Passwörter zurücksetzen
Nachdem der Exchange Server vom Netz genommen wurde, werden mindestens die Passwörter für den Benutzer “Administrator” und dem Benutzer mit dem Ihr ihr Exchange administriert zurückgesetzt. Wenn ihr euch also mit dem Konto “Administrator” am Exchange Server anmeldet (via RDP oder EAC usw) dann wird dieses Passwort nun geändert. Alle weiteren Passwörter für administrative Benutzer müssen ebenfalls geändert werden. Dies ist das Minimum!
Wichtige Einstellungen sichern
Ihr könnt jetzt anfangen die Neuinstallation von Exchange vorzubereiten. Dazu sichert ihr euch am besten ein paar wichtige Einstellungen vom kompromittierten Server. Am besten geht ihr einmal die Konfiguration des Servers durch, viele der Einstellungen werden im Active Directory gespeichert und sind auch nach der Neuinstallation entsprechend eingestellt. Sichern sollte man sich aber in jedem Fall die Einstellungen der virtuellen Verzeichnisse. Hier muss jedes Verzeichnis einmal durchgegangen werden und Werte für Interne- und Externe URL, sowie die Einstellungen zur Authentifizierung gesichert werden:
Die entsprechenden Werte lassen sich beispielsweise einfach in eine TXT Datei kopieren. Ebenfalls wichtig sind die Einstellungen der Empfangsconnectoren:
Sichert euch auch hier die entsprechenden Einstellungen.
Zertifikat sichern
Damit die Neuinstallation des Exchange Servern möglichst einfach verläuft, sichert ihr euch am besten das aktuelle Zertifikat. Wenn ihr den Exchange Server nur vom Internet getrennt habt, könnt ihr das Zertifikat noch via EAC exportieren:
Wenn ihr den Server komplett vom Netzwerk getrennt habt, dann lässt sich das Zertifikat via MMC exportieren:
Datenbank sichern
Bevor die Datenbank gesichert wird, müssen die Exchange Dienste gestoppt werden. Mit dem folgenden Befehl lassen sich alle Exchange Dienste deaktivieren:
Get-Service *exchange* | Set-Service -StartupType Disabled
Danach können die Exchange Dienste gestoppt werden. Tipp: Durch das beenden des Dienstes “Microsoft Exchange Active Directory Topology” werden auch die meisten anderen Exchange Dienste gestoppt:
Sichert euch nun die die Exchange Datenbanken. Wenn die Datenbank(en) auf anderen Laufwerken als C: gespeichert wurden, habt ihr hier einfaches Spiel. In diesem Fall muss nichts gesichert werden. Wenn die Datenbanken allerdings auf auf Laufwerk C: gespeichert werden, dann müssen alle Datenbank Dateien zunächst an einen sicheren Ort kopiert werden:
Wenn die Datenbanken auf einem separaten Laufwerk gespeichert werden, müssen die Daten nicht extra gesichert werden.
Server neu installieren
Im Active Directory wird jetzt das Computer Konto des Exchange Servers zurückgesetzt:
Wichtig: Das Konto wird nur zurückgesetzt, aber NICHT gelöscht.
Nachdem das Konto zurückgesetzt wurde, wird der Server neu installiert.
Falls ihr die Datenbanken auf einer anderen Partition oder Laufwerk gespeichert hattet, achtet darauf, dass die Daten bei der Neuinstallation nicht verloren gehen. Also lieber doppelt die Einstellungen kontrollieren.
Für die Neuinstallation muss die gleiche Betriebssystem Version verwendet werden, welches auch vorher im Einsatz war. Nach der Installation des Betriebssystems bekommt der neue Server den gleichen Namen und die gleiche IP wieder der alte Server, danach wird der neue Server in das Active Directory aufgenommen.
Ihr solltet nun also eine frische Windows Installation mit dem gleichen Computernamen haben, welche auch bereits zum AD hinzugefügt wurde. Jetzt fehlt noch Exchange.
Exchange neuinstallieren
Auf dem frischen Windows Server müssen zunächst die Voraussetzungen für Exchange installiert werden. Die Voraussetzungen für Exchange 2016 und 2019 finden sich hier:
Nachdem die erforderlichen IIS-Rollen, .NET-Framework und UCMA-API installiert wurden, kann die Exchange Wiederherstellung mit dem folgenden Befehl gestartet werden:
Setup.exe /IAcceptExchangeServerLicenseTerms /Mode:RecoverServer
Falls Exchange nicht im Standardverzeichnis installiert wurde, muss noch der Parameter “TargetDir” angegeben werden:
Setup.exe /IAcceptExchangeServerLicenseTerms /Mode:RecoverServer /TargetDir:"D:\Program Files\Exchange"
Nach etwas Zeit ist Exchange wieder installiert. Der Server sollte nun neu gestartet werden.
Datenbank wiederherstellen
Damit die Datenbank wiederhergestellt werden kann, muss zunächst das Restore erlaubt werden, dies geschieht mit dem folgenden Befehl auf der Exchange Management Shell:
Get-MailboxDatabase -Server EX1 | Set-MailboxDatabase -AllowFileRestore $true
Jetzt wird die der gesamte Ordner mit der Datenbank vom alten Server wieder zurück an seinen Bestimmungsort kopiert:
Sobald die Daten kopiert wurden, kann die Datenbank gemountet werden:
Wenn die Datenbank auf einem anderen Laufwerk als C: gespeichert wurde, sind die Daten ja noch am gleichen Ort verfügbar. Stellt dann sicher, dass die Laufwerksbuchstaben passen. Ihr solltest in diesem Fall direkt in der Lage sein die Datenbank zu mounten.
Zur Sicherheit sollte nun kontrolliert werden, ob alle Exchange Dienste gestartet sind, falls noch nicht alle Dienste laufen, einfach starten.
Einstellungen der virtuellen Verzeichnisse wiederherstellen
Die Anmeldung an Exchange via EAC ist jetzt bereits wieder möglich. Ihr könnt jetzt die Einstellungen der virtuellen Verzeichnisse korrigieren und wieder auf die vorigen Werte einstellen:
Wie schon bei der Sicherung müsst ihr hier jedes Verzeichnis durchgehen.
Zertifikat importieren
Das zuvor gesicherte Zertifikat kann nun also wieder bequem per Exchange Administrative Center importiert und den Diensten zugeordnet werden:
Der Pfad zur gesicherten PFX Datei muss via UNC Pfad angegeben werden:
Im nächsten Schritt muss nur noch der Server für den Import angegeben werden:
Jetzt muss das importierte Zertifikat nur noch an die Exchange Services gebunden werden:
Jetzt könnt ihr die Benutzer wieder auf Exchange loslassen. Parallel dazu solltet ihr noch einmal alle Einstellungen kontrollieren und ggf. nachbessern. Beispielsweise wäre es jetzt an der Zeit die Empfangsconnectoren wieder entsprechend zu konfigurieren.