Nota ética y legal: Este artículo tiene fines exclusivamente educativos y defensivos. Las técnicas aquí descritas deben aplicarse únicamente en sistemas bajo tu propiedad, en entornos de laboratorio aislados, o durante auditorías de seguridad autorizadas por escrito. Acceder a sistemas ajenos sin consentimiento es un delito informático en la mayoría de las jurisdicciones.
Extracción y análisis de hashes de contraseña en Windows: Técnicas de auditoría, forense y defensas
De dónde venimos: por qué el método antiguo ya no sirve
El tutorial original que circula por los foros data de la época de Windows XP y Windows Server 2003. En aquel entonces, el sistema operativo almacenaba hashes LM (Lan Manager) junto a los NTLM, el proceso lsass.exe no tenía protecciones contra lectura externa, y herramientas como pwdump2 o Cain & Abel podían extraer la base de datos de contraseñas con relativa facilidad.
Hoy, en 2026, ese escenario ha cambiado radicalmente:
- Windows 11 24H2 activa LSA Protection (
RunAsPPL) de forma predeterminada en ediciones Pro y superiores. - Credential Guard aísla el subsistema de autenticación en un entorno virtualizado seguro.
- Los hashes LM han sido eliminados por completo desde Windows Vista; solo persisten NTLM (y en dominios, Kerberos).
- Cain & Abel está abandonado desde 2013 y no funciona en arquitecturas x64 modernas.
- pwdump2 no supera las protecciones del kernel actuales.
Entender cómo funcionaban los ataques antiguos es útil para comprender la evolución de las defensas. Pero si tu objetivo es auditar un sistema moderno, necesitas herramientas y técnicas actualizadas.
Cómo se almacenan las credenciales hoy
La base de datos SAM (Security Accounts Manager)
En equipos locales (no unidos a dominio), Windows almacena los hashes de las contraseñas de usuarios locales en el archivo C:\Windows\System32\config\SAM. Este archivo está permanentemente bloqueado por el sistema operativo; ni siquiera el administrador puede copiarlo en caliente.
Para acceder a él se necesita:
- Privilegios SYSTEM (superiores a Administrador).
- Una técnica de lectura fuera de banda: copia desde un Volume Shadow Copy (instantánea de volumen), arranque desde un disco externo, o extracción directa de la memoria RAM.
NTDS.dit (Active Directory)
En entornos de dominio, los hashes de todos los usuarios del dominio residen en el archivo NTDS.dit, ubicado en los controladores de dominio. Su extracción requiere acceso al controlador con privilegios de Domain Admin o SYSTEM, y herramientas como ntdsutil o impacket-secretsdump.
LSASS (Local Security Authority Subsystem Service)
El proceso lsass.exe sigue siendo el guardián de las sesiones activas. Cuando un usuario inicia sesión, sus credenciales (hashes, tickets Kerberos, contraseñas en texto plano en algunos casos) residen en la memoria de este proceso. En Windows moderno, acceder a esta memoria está severamente restringido.
Técnicas modernas de extracción (auditoría autorizada)
1. Extracción de SAM local
Herramienta recomendada: impacket-secretsdump.py (Python, multiplataforma) o Mimikatz (Windows).
Desde un entorno con privilegios SYSTEM, la forma más limpia es:
# Crear un shadow copy para acceder a SAM sin bloqueos
vssadmin create shadow /for=C:
# Luego copiar SAM y SYSTEM desde el shadow copyPosteriormente, desde otra máquina:
secretsdump.py LOCAL -system SYSTEM -sam SAMEsto volcará los hashes NTLM de todas las cuentas locales.
2. Volcado de LSASS (con protecciones activas)
En sistemas sin LSA Protection ni Credential Guard, un volcado de memoria de lsass.exe puede analizarse con:
# Crear el dump (requiere privilegios de depuración)
rundll32.exe comsvcs.dll, MiniDump <PID_de_lsass> C:\lsass.dmp fullLuego, con Mimikatz:
sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswordsPero en Windows 11 moderno, esto fallará por diseño:
- LSA Protection (
RunAsPPL) impide que procesos no firmados inyecten código o lean la memoria de LSASS. - Credential Guard utiliza virtualización basada en hipervisor (VBS) para aislar LSASS en un entorno seguro (
LSAIso.exe). Incluso con SYSTEM, el hash no es accesible desde el sistema operativo principal.
3. Active Directory: NTDS.dit
Desde un controlador de dominio con privilegios elevados:
# Método nativo de Windows
ntdsutil "ac i ntds" "ifm" "create full C:\temp\ntds" q qEsto genera una copia de la base de datos que puede analizarse offline con impacket-secretsdump o dsinternals.
Crackeo de hashes: de Cain & Abel a Hashcat
Una vez extraídos los hashes NTLM (formato: usuario:rid:lmhash:ntlmhash:::), el paso siguiente en una auditoría es evaluar la robustez de las contraseñas.
Herramientas modernas
| Herramienta | Uso | Plataforma |
|---|---|---|
| Hashcat | Crackeo GPU-acelerado. Soporta NTLM (modo 1000), Kerberos, etc. | Windows/Linux |
| John the Ripper | Alternativa CPU/GPU, muy efectiva para reglas de transformación. | Multiplataforma |
| CrackStation | Base de datos online de hashes precalculados (solo para auditoría con permiso). | Web |
Ejemplo práctico con Hashcat
# Modo 1000 = NTLM
hashcat -m 1000 -a 0 hashes.txt /ruta/a/wordlist.txtPara contraseñas más complejas, se usan ataques de reglas o máscaras:
# Ataque híbrido: wordlist + reglas de transformación
hashcat -m 1000 -a 0 hashes.txt wordlist.txt -r rules/best64.rule
# Ataque por máscara (fuerza bruta inteligente)
hashcat -m 1000 -a 3 hashes.txt?u?l?l?l?d?d?d?sNota importante: Un hash NTLM de una contraseña compleja (16+ caracteres, aleatoria) puede requerir siglos para ser crackeado por fuerza bruta. El crackeo solo es viable contra contraseñas débiles o predecibles.
Protecciones modernas: cómo defenderse
Si eres administrador de sistemas, estas son las contramedidas que neutralizan los ataques descritos:
1. LSA Protection (RunAsPPL)
Activa la protección del proceso LSASS. En Windows 11 Pro+ ya viene activada por defecto, pero verifícala:
# Verificar estado
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "RunAsPPL"
# Habilitar si es necesario
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "RunAsPPL" -Value 1 -PropertyType DWord2. Credential Guard
Aísla LSASS en un entorno virtualizado. Disponible en ediciones Enterprise y Education, y configurable en Pro mediante directivas de grupo o Intune.
# Verificar estado
Get-ComputerInfo | Select CsDeviceGuardSecurityServicesRunning3. Windows Defender Application Control (WDAC)
Impide la ejecución de herramientas no autorizadas como Mimikatz mediante políticas de integridad de código.
4. Políticas de contraseñas modernas
Microsoft y el NIST ya no recomiendan caducidad periódica ni complejidad arbitraria. La regla de oro es:
- Longitud mínima: 14-16 caracteres.
- Sin caducidad forzada para contraseñas robustas.
- Autenticación multifactor (MFA) siempre que sea posible.
- Contraseñas de administrador locales únicas (LAPS) para evitar el movimiento lateral.
5. Auditoría y detección
- Activa la auditoría de acceso a
lsass.exemediante Microsoft Defender for Endpoint o Sysmon. - Detecta intentos de Volume Shadow Copy sospechosos (
vssadmin,wmic shadowcopy). - Monitorea la ejecución de herramientas conocidas (
mimikatz.exe,procdumpcontra LSASS).
6. Eliminación progresiva de NTLM
Microsoft está desactivando NTLM por defecto en Windows 11 24H2 y Server 2025. Fomenta el uso de Kerberos con autenticación más fuerte y el protocolo Negotiate con preferencia por Kerberos.
Comparativa: antes y ahora
| Aspecto | Windows XP/2003 (era original) | Windows 11 / Server 2025 (actual) |
|---|---|---|
| Hashes almacenados | LM + NTLM | Solo NTLM (LM eliminado) |
| Protección de LSASS | Ninguna | LSA Protection + Credential Guard |
| Extracción SAM | pwdump2 directamente | Requiere SYSTEM + shadow copy |
| Herramientas de crackeo | Cain & Abel | Hashcat, John the Ripper |
| Defensa principal | Contraseñas «complejas» | MFA, Credential Guard, VBS, LAPS |
Conclusión
El truco de extraer hashes con pwdump2 y crackearlos con Cain & Abel pertenece a la historia de la ciberseguridad. En los sistemas operativos modernos, la extracción de credenciales ha pasado de ser un ejercicio de script-kiddie a un desafío técnico que requiere privilegios elevados, evasión de múltiples protecciones del kernel y herramientas profesionales.
Para un administrador o un profesional de seguridad, el valor de entender estos ataques no está en ejecutarlos, sino en configurar las defensas que los hacen inviables: Credential Guard, LSA Protection, contraseñas largas, MFA y una correcta segmentación de privilegios.
El atacante moderno ya no busca crackear hashes por fuerza bruta; busca by-passar las protecciones o moverse lateralmente con técnicas como Pass-the-Hash o Pass-the-Ticket. Por eso, más importante que saber extraer un hash, es saber hacer que ese hash sea inútil para quien lo robe.
