Extracción y análisis de hashes de contraseña en Windows

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:

  1. Privilegios SYSTEM (superiores a Administrador).
  2. 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 copy

Posteriormente, desde otra máquina:

secretsdump.py LOCAL -system SYSTEM -sam SAM

Esto 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 full

Luego, con Mimikatz:

sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords

Pero 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 q

Esto 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

HerramientaUsoPlataforma
HashcatCrackeo GPU-acelerado. Soporta NTLM (modo 1000), Kerberos, etc.Windows/Linux
John the RipperAlternativa CPU/GPU, muy efectiva para reglas de transformación.Multiplataforma
CrackStationBase 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.txt

Para 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?s

Nota 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 DWord

2. 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 CsDeviceGuardSecurityServicesRunning

3. 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.exe mediante 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, procdump contra 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

AspectoWindows XP/2003 (era original)Windows 11 / Server 2025 (actual)
Hashes almacenadosLM + NTLMSolo NTLM (LM eliminado)
Protección de LSASSNingunaLSA Protection + Credential Guard
Extracción SAMpwdump2 directamenteRequiere SYSTEM + shadow copy
Herramientas de crackeoCain & AbelHashcat, John the Ripper
Defensa principalContraseñ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.