[Quick Memo] Auditer les mots de passe de comptes Active Directory

Bonjour,

Aujourd’hui un mémo rapide présentant une méthode parmis tant d’autres pour auditer les mots de passes des comptes d’un domaine AD.

La logique est simple : on pompe le fichier NDTS d’un DC, on crack un max de hashes avec un outil tel que Hashcat (ou John) et on utilise l’outil Domain Password Audit Tool (DPAT) afin de générer un rapport statistiques.

Utile notamment pour monitorer l’application ou un changement effectué sur la Password Policy.

Sources de l’idée : https://www.blackhillsinfosec.com/webcast-demo-domain-password-audit-tool/ et https://www.blackhillsinfosec.com/domain-password-audit-tool/

  1. Les prérequis

– Posséder un compte ‘Domain Admin’ afin de pouvoir exporter le NTDS.dit d’un DC.

Avoir accès à une machine Windows, si possible dotée d’un GPU NVIDIA(CUDA) pour un crackage rapide des hashes avec Hashcat.

Avoir accès à une machine Kali Linux, physique ou virtuelle.

Si réalisé sur une infra de prod, vous devez disposer des permissions nécéssaire de la part de votre management/employeur, pour cet audit.

  1. Les outils nécessaires

SecretsDump : https://github.com/SecureAuthCorp/impacket/blob/master/examples/secretsdump.py

Hashcat : https://hashcat.net/hashcat/

Un fichier dictionnaire comme par exemple le fameux ‘Rockyou’ : https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt

Domain Password Audit Tool : https://github.com/clr2of8/DPAT

  1. La méthodologie

  • Créer un dump de l’Active Directory en utilisant l’outil NTDSUTL depuis un Controlleur de Domaine (DC)

Faire tourner cette commande en tant qu’admin du domaine (command prompt as admin) afin de créer un dump complet vers un dossier existant c:\ifm. Créer manuellement le dossier s’il n’existe pas encore.

ntdsutil "activate instance ntds" ifm "create full c:\ifm" quit quit

 

Les 2 dossiers suivants ont été créés :

  • Copier le dump sur une machine Kali Linux et utiliser le script Python SecretsDump pour en extraire les hashes des mots de passe

Copier le dossier ‘ifm’ sur la machine Kali Linux et utilser le script SecretsDump pour extraire les hashes, grâce à la commande suivante :

./secretsdump.py -ntds ifm/Active\ Directory/ntds.dit -system ifm/registry/SYSTEM LOCAL -outputfile hashes.txt

Attention à l’emplacement de votre dossier, adapter la ligne ci-dessus si nécessaire.

Plusieurs fichiers devraient avoir été générés, donc celui qui nous intéresse : hashes.txt.ntds

  • Cracker les hashes sur une machine Windows (GPU NVIDIA) avec l’outil Hashcat

Copier le fichier hashes.txt.ntds sur la machine Windows disposant de l’outil Hashcat et si possible d’une carte graphgique CUDA. Utiliser Hashcat comme suit afin de cracker les mots de passe. Répéter l’opération avec d’autres règles (rules), et d’autres fichier dictionnaire (Crackstation, etc…) afin de cracker un max de mots de passe. Adapter la ligne ci-dessous en fonction de l’emplacement de vos fichiers.

hashcat64.exe -m 1000 -a 0 ..\hashes.txt.ntds ..\wordlists\rockyou.txt -r .\rules\best64.rule

Une fois l’opération répétée suffisament, exporter le résutat vers un fichier texte avec la commande suivante :

hashcat64.exe -m 1000 -a 0 ..\hashes.txt.ntds ..\wordlists\rockyou.txt -r .\rules\best64.rule --show >> cracked.txt

Veillez, en utilisant par exemple notepad, à ce que l’encodage du fichier texte soit en UTF-8 (important pour l’usage plus tard avec DPAT).

  • Utiliser l’outil Domain Password Audit Tool (DPAT) pour produire un rapport statistique des mots de passe

Copier le fichier texte cracked.txt sur la machine Kali Linux, et utiliser DPAT pour en produire un rapport statistique, avec la commande suivante (où le fichier précédement généré par SecretsDump est à nouveau référencé) :

./dpat.py -n ../hashes.txt.ntds -c ../cracked.txt

Une fois le rapport généré, appuyer sur ENTER afin de le visualiser :

 

Laisser un commentaire