CVE-2020-1472 alias Zerologon Exploit POC

De quoi s'agit-il ?
NetLogon (MS-NRPC) peut établir un canal de sécurité vulnérable pour le contrôle inter-domaines.
Il est possible de mettre à zéro le mot de passe du compte machine sur les contrôleurs de domaine.
Remarques :
- Le DC sera semi-cassé tant que le mot de passe est mis à zéro ; cependant, ce programme remet le mot de passe une fois son travail terminé.
- Peut causer des problèmes DNS avec le DC (résolu par un redémarrage)
- Les tickets Kerberos ont une durée de vie de 10 heures avant expiration
- Nécessite la dernière version d'impacket depuis GitHub avec les structures netlogon ajoutées.
- Notez que par défaut, ce script change le mot de passe du compte système du contrôleur de domaine puis le rétablit. Oui, cela permet de faire un DCSync, mais cela rompt aussi la communication avec les autres contrôleurs de domaine dans ce court laps de temps, soyez donc prudent !
Recherche :
Dépendances requises
- Nécessite la dernière version d'impacket depuis GitHub avec les structures netlogon ajoutées.
Vérifier si le système est vulnérable :
- Le comportement par défaut du script est de vérifier si la vulnérabilité est présente et de ne rien modifier !
Utilisation de zerologon.py
- Lisez le blog/livre blanc ci-dessus pour savoir ce que vous faites
- Ce script vérifie si les contrôleurs de domaine sont vulnérables à CVE-2020-1472.
- Si l'option -exploit est fournie, il :
- Met à zéro le mot de passe système des contrôleurs de domaine
- Appelle le module DRSUAPI de secretsdump avec le mot de passe zéro pour obtenir les hashes ntds
- Analyse les données extraites pour obtenir le compte administrateur de domaine avec le rid :500: et appelle de nouveau secretsdump pour obtenir les secrets LSA
- Analyse le second dump pour obtenir la valeur plain_password_hex
- Appelle le script de restauration avec la valeur hexadécimale pour restaurer le mot de passe système du DC à sa valeur d'origine
python zerologon.py
usage: zerologon.py [-h] [-exploit] dc_name dc_ip
Tests whether a domain controller is vulnerable to the Zerologon attack. Resets the DC account password to an empty string
when vulnerable.
positional arguments:
dc_name The (NetBIOS) computer name of the domain controller.
dc_ip IP Address of the domain controller.
optional arguments:
-h, --help show this help message and exit
-exploit Zero out the computer's hash
Détection :
- Événement 4661 avec demande de privilège pour SetPassword (sans connaissance de l'ancien mot de passe) (capture d'écran jointe)
- Événement 4723 pour une tentative de modification du mot de passe d'un compte
- Événement 4738 pour un compte utilisateur dont la valeur Password Last Set a été modifiée
Correctif :
Systèmes affectés :
- Windows Server 2008 R2 pour systèmes basés sur x64 Service Pack 1
- Windows Server 2008 R2 pour systèmes basés sur x64 Service Pack 1 (installation Server Core)
- Windows Server 2012
- Windows Server 2012 (installation Server Core)
- Windows Server 2012 R2
- Windows Server 2012 R2 (installation Server Core)
- Windows Server 2016
- Windows Server 2016 (installation Server Core)
- Windows Server 2019
- Windows Server 2019 (installation Server Core)
- Windows Server, version 1903 (installation Server Core)
- Windows Server, version 1909 (installation Server Core)
- Windows Server, version 2004 (installation Server Core)