Hunting de Acceso a Credenciales: LSASS, Kerberoasting, Password Spraying y DCSync
Tecnicas de threat hunting para detectar robo de credenciales en entornos Windows. Cobertura de dumping de LSASS, Kerberoasting, AS-REP Roasting, password spraying, DCSync y credential harvesting con consultas practicas.
El Acceso a Credenciales en el Ciclo de Ataque
El acceso a credenciales (MITRE ATT&CK Tactic TA0006) es una fase pivotal del ataque. Con credenciales validas, el adversario puede autenticarse legitimamente en otros sistemas, escalar privilegios y acceder a datos protegidos. Muchas de las demas tacticas (movimiento lateral, persistencia, exfiltracion) dependen de tener credenciales adecuadas.
Para el threat hunter, detectar acceso a credenciales es de alta prioridad porque es un indicador de que el adversario esta preparando el terreno para acciones de alto impacto.
Dumping de LSASS (T1003.001)
El proceso LSASS (Local Security Authority Subsystem Service) almacena en memoria las credenciales de los usuarios que han iniciado sesion: hashes NTLM, tickets Kerberos y, en configuraciones inseguras, contraseñas en texto claro. Acceder a la memoria de LSASS es la forma mas directa de obtener credenciales.
Tecnicas de acceso a LSASS
Acceso directo a memoria. Herramientas como Mimikatz, pypykatz o nanodump abren un handle al proceso LSASS y leen su memoria directamente.
Dump del proceso. Crear un dump de memoria del proceso LSASS usando herramientas del sistema (Task Manager, ProcDump, comsvcs.dll) y analizar el dump offline con Mimikatz.
Acceso via driver. Algunos ataques usan un driver de kernel para acceder a la memoria de LSASS evadiendo las protecciones de usermode.
Deteccion con Sysmon
Sysmon Event ID 10 (ProcessAccess):
# Acceso a LSASS con permisos de lectura de memoria
event.code: "10" AND
winlog.event_data.TargetImage: "*\\lsass.exe" AND
winlog.event_data.GrantedAccess: (
"0x1010" OR "0x1410" OR "0x1FFFFF" OR
"0x1F1FFF" OR "0x1F3FFF" OR "0x143A"
) AND
NOT winlog.event_data.SourceImage: (
*\\MsMpEng.exe OR *\\csrss.exe OR
*\\WerFault.exe OR *\\svchost.exe OR
*\\lsass.exe OR *\\MRT.exe
)
Sysmon Event ID 1 (creacion del dump):
# Dump de LSASS via herramientas del sistema
event.code: "1" AND (
(process.name: "procdump*" AND process.command_line: *lsass*) OR
(process.name: "rundll32.exe" AND process.command_line: *comsvcs* AND *MiniDump*) OR
(process.name: "taskmgr.exe" AND process.command_line: *dump*)
)
Dump de LSASS con comsvcs.dll
Una tecnica popular que usa un DLL legitimo de Windows:
rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump
[PID de LSASS] C:\Temp\lsass.dmp full
La deteccion busca rundll32 con comsvcs.dll y MiniDump en los argumentos.
Kerberoasting (T1558.003)
Kerberoasting explota el mecanismo de Kerberos para obtener hashes de contraseñas de cuentas de servicio. Cualquier usuario autenticado del dominio puede solicitar un ticket de servicio (TGS) para cualquier cuenta con un Service Principal Name (SPN) registrado. El ticket esta cifrado con el hash de la contraseña de la cuenta de servicio, que se puede extraer y crackear offline.
Como funciona
- El adversario enumera cuentas con SPNs (LDAP query)
- Solicita un TGS para cada cuenta de servicio
- Extrae el hash del ticket
- Crackea el hash offline (hashcat, john)
Deteccion
Windows Event ID 4769 (Kerberos Service Ticket Request):
# Kerberoasting: multiples TGS requests con cifrado RC4
event.code: "4769" AND
winlog.event_data.TicketEncryptionType: "0x17" AND
winlog.event_data.ServiceName: NOT "krbtgt" AND
winlog.event_data.ServiceName: NOT "$"
| stats count by source.ip, user.name
| where count > 5
Indicadores de Kerberoasting:
Senales de Kerberoasting:
- Un usuario solicita TGS para multiples servicios en poco tiempo
- TicketEncryptionType es 0x17 (RC4, mas facil de crackear)
en lugar de 0x12 (AES-256, mas seguro)
- Las solicitudes son para cuentas de servicio con SPN,
no para servicios normales
- El usuario que solicita no deberia tener necesidad de acceder
a esos servicios
Mitigacion que facilita la deteccion
Configurar las cuentas de servicio para usar AES-256 (etype 0x12) en lugar de RC4 (etype 0x17). Si un adversario solicita tickets con RC4 para cuentas configuradas con AES, la solicitud es anomala y mas facil de detectar.
AS-REP Roasting (T1558.004)
Similar a Kerberoasting, pero explota cuentas que tienen deshabilitada la pre-autenticacion Kerberos. El adversario solicita un AS-REP (Authentication Service Reply) para estas cuentas sin necesidad de conocer la contrasena, y el AS-REP contiene datos cifrados con el hash de la contrasena que se puede crackear offline.
Deteccion
Windows Event ID 4768 (Kerberos Authentication Ticket Request):
# AS-REP Roasting: TGT requests sin pre-autenticacion
event.code: "4768" AND
winlog.event_data.PreAuthType: "0" AND
winlog.event_data.TicketEncryptionType: ("0x17" OR "0x18")
Password Spraying (T1110.003)
El password spraying consiste en probar una misma contrasena comun contra multiples cuentas, en lugar de probar muchas contrasenas contra una sola cuenta. Esto evade los bloqueos de cuenta que se activan tras multiples intentos fallidos.
Patrones detectables
Patron de password spraying:
- Multiples fallos de logon (Event ID 4625) con el mismo
SubStatus (contrasena incorrecta) en poco tiempo
- Los intentos son contra cuentas DIFERENTES
- Todos los intentos provienen del mismo host origen
- El codigo de fallo es 0xC000006A (wrong password)
no 0xC0000064 (user does not exist)
Consulta de hunting
# Password spraying: multiples cuentas con fallo de contrasena
event.code: "4625" AND
winlog.event_data.SubStatus: "0xC000006A"
| stats dc(user.name) as unique_users, count as total_attempts
by source.ip
| where unique_users > 10 AND total_attempts > 20
# Splunk: password spraying
index=wineventlog EventCode=4625 SubStatus=0xC000006A
| bin _time span=30m
| stats dc(TargetUserName) as unique_users, count by _time, IpAddress
| where unique_users > 10
Diferenciar de actividad legitima
Los sistemas de gestion de contrasenas, sincronizacion de AD y cambios de contrasena masivos pueden generar patrones similares. La correlacion con el contexto (horario, host origen, cuentas afectadas) ayuda a diferenciar.
DCSync (T1003.006)
DCSync simula el comportamiento de un Domain Controller para solicitar la replicacion de datos de contrasenas de Active Directory. Usando la funcion DrsGetNCChanges del protocolo MS-DRSR, el adversario puede extraer hashes NTLM de cualquier cuenta, incluyendo krbtgt (lo que permite crear Golden Tickets).
Prerequisitos
DCSync requiere privilegios de replicacion en el dominio. Tipicamente, solo los Domain Controllers, Domain Admins y Enterprise Admins tienen estos privilegios. Un adversario que usa DCSync ya tiene acceso privilegiado.
Deteccion
Windows Event ID 4662 (An operation was performed on an object):
# DCSync: replicacion de directorio desde un host que NO es DC
event.code: "4662" AND
winlog.event_data.Properties: (
*1131f6aa-9c07-11d1-f79f-00c04fc2dcd2* OR
*1131f6ad-9c07-11d1-f79f-00c04fc2dcd2* OR
*89e95b76-444d-4c62-991a-0facbeda640c*
) AND
NOT source.ip: (ip_domain_controller_1 OR ip_domain_controller_2)
Los GUIDs en la consulta corresponden a:
1131f6aa...: DS-Replication-Get-Changes1131f6ad...: DS-Replication-Get-Changes-All89e95b76...: DS-Replication-Get-Changes-In-Filtered-Set
Zeek: trafico DCE/RPC de replicacion
Buscar en la red conexiones al puerto 135 (RPC endpoint mapper)
seguidas de conexiones a puertos dinamicos entre un host
que NO es DC y un DC, usando el protocolo MS-DRSR.
Credential Harvesting via Archivos (T1552)
Los adversarios buscan credenciales almacenadas en archivos:
Archivos de interes
Archivos donde buscan credenciales:
- Archivos de configuracion: web.config, appsettings.json,
.env, config.xml
- Scripts con contrasenas: .ps1, .bat, .sh, .py
- Group Policy Preferences: Groups.xml (cPassword)
- Archivos de conexion: .rdp, .rdg, .ppk
- Bases de datos de contrasenas: .kdbx, .1pux
- Historial de navegadores: Login Data (Chrome), logins.json (Firefox)
- Registro de Windows: LSA Secrets, SAM, SECURITY
Hunting de acceso a archivos de credenciales
# Acceso a archivos tipicos de credenciales
event.code: "1" AND
process.command_line: (
*Groups.xml* OR *web.config* OR *.kdbx* OR
*SAM* OR *SECURITY* OR *SYSTEM* OR
*Login\ Data* OR *logins.json* OR
*.env* OR *credentials*
)
Estrategia de Hunting para Credenciales
Prioridades
- Acceso a LSASS (mayor impacto: todas las credenciales de sesiones activas)
- DCSync (mayor impacto si tiene exito: todas las cuentas del dominio)
- Kerberoasting (alto impacto: cuentas de servicio, frecuentemente con contraseñas debiles)
- Password spraying (ruidoso pero efectivo contra contraseñas comunes)
- Credential files (bajo ruido, alto valor si encuentra credenciales hardcodeadas)
Correlacion con otras fases
El acceso a credenciales raramente ocurre aislado. Correlacionar con:
- Movimiento lateral previo: las credenciales se roban del sistema actual para moverse a otros
- Escalacion de privilegios: credenciales de cuentas admin permiten escalar
- Persistencia posterior: con credenciales de domain admin, el adversario puede crear cuentas o modificar GPOs
Indicadores de alta confianza
| Indicador | Confianza | Accion |
|---|---|---|
| Acceso a LSASS desde proceso no legitimno | Alta | Investigar inmediatamente |
| DCSync desde host que no es DC | Muy alta | Escalar a IR |
| Mas de 20 TGS requests RC4 en 5 minutos | Media-Alta | Investigar Kerberoasting |
| Mas de 50 cuentas con fallo de password en 30 minutos desde 1 IP | Alta | Investigar spraying |
| Ejecucion de Mimikatz (por hash o nombre) | Muy alta | Escalar a IR |
Conclusion
El acceso a credenciales es una de las tacticas donde el hunting tiene mayor impacto. Las tecnicas son bien documentadas, los artefactos son detectables y la ventana de deteccion es amplia (desde la primera solicitud de ticket hasta el uso de las credenciales robadas).
La combinacion de Sysmon Event ID 10 (acceso a LSASS), Windows Security Events 4769 (Kerberoasting), 4625 (spraying) y 4662 (DCSync) proporciona cobertura solida sobre las principales tecnicas de robo de credenciales. Un hunter que monitorice estos eventos activamente puede detectar el robo de credenciales antes de que el adversario las use para escalar o moverse lateralmente.
Preguntas frecuentes
Libros recomendados
Artículos relacionados
Hunting de Movimiento Lateral: Detectar PsExec, WMI, RDP y Pass-the-Hash
Threat Hunting con Sysmon en Windows: Eventos Clave y Consultas Practicas
Hunting de Mecanismos de Persistencia: Registry, Scheduled Tasks, Services y WMI
Hipotesis de Hunting Basadas en ATT&CK: Guia Practica para Construirlas
Cobertura ATT&CK: DeTT&CT, Gap Analysis y Priorización de Detecciones
Construir un Programa de Detection Engineering: De Cero a Producción
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.