
Exploit pour CVE-2020-1472 (Zerologon) qui réinitialise le mot de passe du compte du contrôleur de domaine, permettant DCSync, avec des étapes de restauration pour annuler les modifications.
Nécessite la dernière version d'impacket depuis GitHub avec des 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 aussi la communication avec les autres contrôleurs de domaine, soyez donc prudents !
Plus d'informations et recherche originale ici
Fonctionne uniquement 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 d'abord toutes les installations existantes. Si vous obtenez 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 DC-just-dc et -no-pass ou des hashs 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 machine en texte clair (encodé en hexadécimal) lors du vidage des secrets du registre local. Notez que cela est différent du DCSync, car DCSync utilise le compte machine, alors que vider le 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 hashs Kerberos).
Avec ce mot de passe en texte clair, vous pouvez exécuter restorepassword.py avec le paramètre -hexpass. Cela s'authentifiera d'abord avec le mot de passe vide auprès du même DC, puis définira le mot de passe sur l'original. 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