Zerologon: Von der Null zum Administrator

Vergangenen Dienstag war wieder “Patch Tuesday”, an diesem Tag veröffentlichen einmal im Monat viele Hersteller Ihre Updates, häufig auch um bekannt gewordene Schwachstellen zu beheben. Eine dieser Schwachstellen wird “Zerologon” genannt da sie darauf beruht Nullen als Parameter zu nutzen. Diese ist besonders brisant, daher sollten Updates umgehend eingespielt werden.

Sie ermöglicht es einem Angreifer, der lediglich eine Netzwerkverbindung in Ihr Unternehmensnetz hat jeden Client oder Server vollständig zu übernehmen, einschließlich des sogenannten Domaincontrollers der für die Rechteverwaltung und Administration Ihres Netzwerks essenziell ist.

Damit ist die einzige Voraussetzung ein Zugang zum Netzwerk, entweder durch das Einschleusen eines Gerätes oder durch Kontrolle über ein Gerät, das sich bereits dort befindet, beides ist leicht umzusetzen.

Die Schwachstelle lässt sich einfach und schnell ausnutzen und gehört daher zu den gefährlichsten im Jahr 2020. Das von Microsoft veröffentlichte Update behebt die Probleme aber es können weitere Schritte notwendig sein.

Für alle die es genauer interessiert wie diese Schwachstelle zustande kam und wie sie ausgenutzt wird, folgen hier weitere Details (Achtung Fachjargon!)

Die Schwachstelle mit der Kennung CVE-2020-1472 wurde entdeckt durch Tom Tervoor von Secura und erhielt die höchstmöglichen Kritikalitätsbewertung CVSSv3 10.0.

Der Angriff basiert auf dem Netlogon Remote Protocol (MS-NRPC), welches auf Domaincontrollern eine RPC-Schnittstelle zur Authentifizierung anbietet. Es wird außerdem zwischen Client und Server genutzt, um die Domainzugehörigkeit zu steuern, aber auch zwischen Domaincontrollern wird es für Synchronisierung und Vertrauensstellung genutzt. Erreichbar ist die RPC-Schnittstelle über einen Dynamischen Port, oder durch SMB über Port 445.

Es handelt sich dabei um eine Challenge-Response Authentifizierung, wobei der Server bzw. Domaincontrolller, welcher das Passwort des Computerkontos kennt, dem Client einen Zufallswert zukommen lässt. Der Client verschlüsselt diesen Zufallswert durch das Ihm ebenfalls bekannt Passwort. Der Server vergleicht dann die Antwort mit dem selbst errechneten Wert und bei Übereinstimmung ist die Authentifizierung erfolgreich.

Die wesentliche Schwachstelle des Netlogon Remote Protocols ist die Nutzung des AES-CFB8 Chiffres in einer abweichenden Form durch die Funktion ComputeNetlogonCredential. Es handelt sich dabei um einen sehr selten verwendeten Betriebsmodus des “Advanced Encryption Standards”. Ein bestimmter Parameter, der Initialization Vector, sollte laut Spezifikation zufällig erzeugt und jeweils einzigartig sein. In der Microsoftimplementierung allerdings ist er vorgegeben und wird wiederverwendet. Tatsächlich besteht er nur aus Nullen und wenn man nun den Klartext ebenfalls auf Null setzt besteht bei einem von 256 zufälligen Schlüsseln auch der Geheimtext nur aus Nullen.

Dieser Umstand lässt sich im Challenge Response Verfahren ausnutzen. In maximal 256 Authentifizierungsversuchen, was nicht mehr als 3 Sekunden dauert, können wir uns jetzt als Computeraccount anmelden. Der Umstand, dass Computerkonten bei fehlgeschlagenen Anmeldeversuchen nicht blockiert werden ist damit schon der zweite Designfehler. In allen aktuellen Windows Betriebssystemen nutzt MS-NRPC zusätzlich noch eine Transportverschlüsselung namens “RPC Signing and Sealing”. Doch durch einen weiteren Designfehler lässt sich diese einfach umgehen.

Noch kennen wir das tatsächliche Passwort des Computerkontos nicht sind aber in der Lage es zu einem leeren Password zu ändern, ein weiterer Designfehler. Anschließend melden wir uns erneut an, diesmal aber ohne “Tricks” da wir nun das Passwort, welches leer ist, kennen.

Das geänderte Passwort wird im Active Directory gespeichert, der Host selbst hat jedoch lokal noch das alte Passwort gespeichert. Durch diesen Unterschied ist der betreffende Host nicht mehr in der Lage mit den Domaincontrollern zu kommunizieren und ist effektiv aus der Domäne “ausgesperrt”. Greifen wir dadurch den Domaincontroller selbst an kann es zu unvorhersehbaren Fehlern kommen. Tun wir das dennoch, können wir nun alle gespeicherten Passworthashes des Domaincontrollers auslesen und uns mit diesen durch Pass-the-Hash als Domainadministrator anmelden. Anschließend lässt sich noch der Unterschied, zwischen dem im AD gespeichertem und dem lokalen Passwort beheben und wir haben Rechte als Domainadministrator.

Microsoft hat am 11.09.2020 bereit einen ersten Patch veröffentlicht. Dieser behebt die Schwachstelle für aktuell unterstützte Windows Server und Clients. Er ermöglicht es außerdem zu erkennen ob die unsichere Authentifizierung genutzt wird.

Ein zweites Update wird im Februar 2021 folgen welches die Schwachstelle vollständig behebt, auch für Drittanbieter Software und Betriebssysteme. Bis dahin müssen diese erkannt und gewhitelisted werden, da sie sonst aus der Domäne “ausgeschlossen” werden.
Ein Proof of Concept liegt bereits vor. Angriffe sind also wahrscheinlich.

Weiterführende Links:

Zerologon Whitepaper
Microsoft Hinweise
Microsoft Update
Testscript

Vernetz dich!
Vernetz dich!
Nach oben