
Python exploit pour CVE-2020-1472 (Zerologon) qui modifie le mot de passe du compte machine d'un contrôleur de domaine, permettant DCSync et la compromission totale du domaine. Inclut un script de restauration pour annuler le mot de passe.
Nécessite la dernière version d'impacket depuis GitHub avec les structures netlogon ajoutées.
Notez que par défaut, cela change le mot de passe du compte du contrôleur de domaine. Oui, cela vous permet de faire un DCSync, mais cela casse également la communication avec les autres contrôleurs de domaine, soyez donc prudent !
Plus d'informations et recherche originale ici
Ne fonctionne qu'avec Python 3.6 et plus récent ! Si votre système d'exploitation est livré avec impacket installé (comme Kali), assurez-vous de supprimer toutes les installations existantes d'abord. Si vous rencontrez encore des erreurs d'importation après cela, exécutez-le depuis un virtualenv ou pipenv.
cve-2020-1472-exploit.py avec l'IP et le nom NetBIOS du contrôleur de domaine-just-dc et -no-pass ou des hachages vides et le compte DCHOSTNAME$Si vous installez une version d'impacket depuis GitHub qui a été mise à jour le 15 septembre 2020 ou après, secretsdump videra automatiquement le mot de passe de la machine en texte clair (codé en hexadécimal) lors du vidage des secrets du registre local. Notez que cela est différent du DCSync, car DCSync utilise le compte de la machine, alors que le vidage du registre nécessite d'exécuter secretsdump contre le contrôleur de domaine en tant qu'Administrateur de domaine (comme le compte Administrateur intégré).
Alternativement, sur des versions légèrement plus anciennes de secretsdump, vous pouvez vider ce même mot de passe en extrayant d'abord les ruches du registre, puis en exécutant secretsdump hors ligne (il affichera alors toujours la clé en texte clair car il ne peut pas calculer les hachages Kerberos).
Avec ce mot de passe en texte clair, vous pouvez exécuter restorepassword.py avec le paramètre -hexpass. Cela permettra d'abord de s'authentifier avec le mot de passe vide sur le même contrôleur de domaine, puis de rétablir le mot de passe d'origine. Assurez-vous de fournir à nouveau le nom NetBIOS et l'IP comme cible, par exemple :
python restorepassword.py testsegment/s2016dc@s2016dc -target-ip 192.168.222.113 -hexpass e6ad4c4f64e71cf8c8020aa44bbd70ee711b8dce2adecd7e0d7fd1d76d70a848c987450c5be97b230bd144f3c3...etc