
CVE-2020-1472
CVE-2020-1472 – Python-Implementierung der Zero-Logon-Sicherheitslücke
Beschreibung
- Ein Python-Skript, das die Impacket-Bibliothek verwendet, um auf CVE-2020-1472 – die Zerologon-Sicherheitslücke – zu testen (Credits an Secura Research).
- Der Fehler liegt im Netlogon Remote Protocol, das auf Windows-Domänencontrollern verfügbar ist und für verschiedene Aufgaben im Zusammenhang mit Benutzer- und Maschinenauthentifizierung verwendet wird.
- Konkret besteht das Problem in der Verwendung der AES-CFB8-Verschlüsselung für Netlogon-Sitzungen. Der AES-CFB8-Standard erfordert, dass jedes „Byte“ des Klartextes einen randomisierten Initialisierungsvektor (IV) hat, um Angreifer daran zu hindern, Passwörter zu erraten. Allerdings setzt die Funktion ComputeNetlogonCredential von Netlogon den IV auf feste 16 Bits – nicht randomisiert –, sodass ein Angreifer den entschlüsselten Text kontrollieren könnte.
- „Aufgrund der falschen Verwendung eines AES-Betriebsmodus ist es möglich, die Identität eines beliebigen Computerkontos (einschließlich des [Domänencontrollers] selbst) zu fälschen und für dieses Konto ein leeres Passwort in der Domäne zu setzen“, so Secura-Forscher.

- Das Skript versucht, eine Netlogon-Authentifizierungsumgehung durchzuführen. Das Skript wird beendet, wenn die Umgehung erfolgreich durchgeführt wurde.
- Wenn ein Domänencontroller gepatcht ist, stoppt das Skript nach dem Senden von 2000 Paaren von RPC-Aufrufen (Ziel ist nicht anfällig mit einer Wahrscheinlichkeit von 0,04 % für falsch negative Ergebnisse).
- Beachten Sie, dass dies standardmäßig das Passwort des Domänencontroller-Kontos ändert. Dies ermöglicht DCSync, unterbricht aber auch die Kommunikation mit anderen DCs.
- Weitere Informationen und die ursprüngliche Forschung hier
Voraussetzungen
oder laden Sie die Impacket-Version hier herunter. Entpacken Sie sie, und führen Sie in dem Verzeichnis, in das Sie sie gelegt haben, Folgendes aus:
Verwendung
Gegeben sei ein Domänencontroller mit dem Namen DC-NAME und der IP-Adresse X.X.X.X. Führen Sie das Skript wie folgt aus:
python cve-2020-1472.py DC-NAME X.X.X.X
Der DC-Name ist der NetBIOS-Computername. Wenn dieser Name nicht korrekt ist, schlägt das Skript mit einem Fehler STATUS_INVALID_COMPUTER_NAME fehl.