
CVE-2020-1472
CVE-2020-1472 - Implémentation Python de la vulnérabilité Zero Logon
Description
- Un script Python utilisant la bibliothèque Impacket pour tester la vulnérabilité CVE-2020-1472 - Zerologon (crédits à la recherche Secura).
- Le défaut provient du protocole Netlogon Remote Protocol, disponible sur les contrôleurs de domaine Windows, qui est utilisé pour diverses tâches liées à l'authentification des utilisateurs et des machines.
- Plus précisément, le problème existe dans l'utilisation du chiffrement AES-CFB8 pour les sessions Netlogon. La norme AES-CFB8 exige que chaque « octet » de texte en clair ait un vecteur d'initialisation (IV) aléatoire, empêchant les attaquants de deviner les mots de passe. Cependant, la fonction ComputeNetlogonCredential de Netlogon définit l'IV sur 16 bits fixes – non aléatoires – ce qui signifie qu'un attaquant pourrait contrôler le texte déchiffré.
- « En raison d'une utilisation incorrecte d'un mode de fonctionnement AES, il est possible d'usurper l'identité de n'importe quel compte informatique (y compris celui du [contrôleur de domaine] lui-même) et de définir un mot de passe vide pour ce compte dans le domaine », selon les chercheurs de Secura.

- Le script tente d'effectuer un contournement de l'authentification Netlogon. Le script se terminera lorsqu'il réussira le contournement.
- Lorsqu'un contrôleur de domaine est patché, le script s'arrêtera après l'envoi de 2000 paires d'appels RPC (la cible n'est pas vulnérable avec une probabilité de faux négatif de 0,04 %).
- Notez que par défaut, cela modifie le mot de passe du compte du contrôleur de domaine. Cela permet de faire du DCSync, mais cela rompt également la communication avec les autres DC.
- Plus d'informations et recherche originale ici
Prérequis
pip install impacket
ou téléchargez la version d'Impacket ici. Décompressez-la, et dans le répertoire où vous l'avez placée, exécutez :
pip install .
Utilisation
Étant donné un contrôleur de domaine nommé DC-NAME avec l'adresse IP X.X.X.X, exécutez le script comme suit :
python cve-2020-1472.py DC-NAME X.X.X.X
Le nom du DC est le nom d'ordinateur NetBIOS. Si ce nom n'est pas correct, le script échouera avec une erreur STATUS_INVALID_COMPUTER_NAME.