
Introduction au Lab ZeroLogon
Un environnement de laboratoire pour tester une vulnérabilité de l'exploit ZeroLogon (CVE-2020-1472). Il contient un script Python qui utilise la bibliothèque Impacket pour tester la vulnérabilité, ainsi qu'une machine virtuelle (VM) avec Windows Server 2019 configuré en tant que contrôleur de domaine (DC).
Le script tente d'effectuer le contournement de l'authentification Netlogon. Il se termine immédiatement lorsque le contournement est réussi et n'effectue aucune opération Netlogon. Lorsque le DC est corrigé, le script de détection abandonne après avoir envoyé un certain nombre de paires d'appels RPC et conclut que la cible n'est pas vulnérable (avec une probabilité de faux négatif de 0,04 %).
Optionnel
Tapez simplement vagrant up pour charger une version vulnérable de Windows Server 2019 en tant que VM.
Ensuite, configurez la VM en tant que contrôleur de domaine en suivant ce tutoriel.
Enfin, lancez l'attaque sur le DC (zerologon_tester.py).
Il est recommandé d'utiliser la version dockerisée de cette attaque ou d'utiliser un environnement virtuel.
Option Docker. Exécutez :
# NOTE: On Windows, you may need to enable the `Hyper-V` Wiwndows feature.
# NOTE2: On Windows, you may need to switch to `Linux Containers`.
$ docker build -f Dockerfile . -t zerologon
# This command run the zerologon test on the DC with domain VAGRANT in the address 192.168.33.10
$ docker run zerologon VAGRANT 192.168.33.10
Option VirtualEnv. Exécutez :
$ python3 -m virtualenv zerologon
$ zerologon/Scripts/Activate.ps1
# NOTE: This may give you some issues with your firewall!!
$ pip install git+https://github.com/SecureAuthCorp/impacket
$ pip install -r requirements.txt
$ python zerologon_tester.py VAGRANT 192.168.33.10
La sortie de cette attaque devrait ressembler à ceci :

Ce script est uniquement destiné à tester la viabilité de l'attaque ; il n'exploite pas le serveur d'une autre manière. Le script n'apporte aucune modification au DC. Si vous êtes curieux de savoir comment implémenter une attaque PoC, consultez cet article ou un article similaire.
Les cibles du script peuvent être utilisées pour cibler un DC ou un DC de sauvegarde. Il fonctionne probablement aussi contre un DC en lecture seule, mais cela n'a pas été testé. Le nom du DC doit être son nom d'ordinateur NetBIOS. Si ce nom n'est pas correct, le script échouera probablement avec une erreur STATUS_INVALID_COMPUTER_NAME. Un livre blanc sur cette vulnérabilité sera publié ici.
REMARQUE : Si quelque chose tourne mal et que vous recevez une erreur
STATUS_INVALID_COMPUTER_NAME, exécuteznbtstat -A 192.168.33.10, cela vous donnera un aperçu de ce qui se passe sur cette adresse. Sinon, vous pouvez toujours tester si la machine est accessible depuis votre hôte en envoyant une requête ping (ping 192.168.33.10).REMARQUE2 : Si l'attaque échoue, il est possible que la machine ait été mise à jour avec des correctifs de sécurité. Vérifiez les mises à jour et supprimez tout ce qui ressemble à des
correctifs de sécuritéà partir de 2020.