Intermediothreat-huntingcredencialeswindowskerberosATT&CKactive-directory

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.

MalwareIntel Research··8 min lectura
Serie: Threat Hunting — Parte 10

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

  1. El adversario enumera cuentas con SPNs (LDAP query)
  2. Solicita un TGS para cada cuenta de servicio
  3. Extrae el hash del ticket
  4. 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-Changes
  • 1131f6ad...: DS-Replication-Get-Changes-All
  • 89e95b76...: 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

  1. Acceso a LSASS (mayor impacto: todas las credenciales de sesiones activas)
  2. DCSync (mayor impacto si tiene exito: todas las cuentas del dominio)
  3. Kerberoasting (alto impacto: cuentas de servicio, frecuentemente con contraseñas debiles)
  4. Password spraying (ruidoso pero efectivo contra contraseñas comunes)
  5. 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

IndicadorConfianzaAccion
Acceso a LSASS desde proceso no legitimnoAltaInvestigar inmediatamente
DCSync desde host que no es DCMuy altaEscalar a IR
Mas de 20 TGS requests RC4 en 5 minutosMedia-AltaInvestigar Kerberoasting
Mas de 50 cuentas con fallo de password en 30 minutos desde 1 IPAltaInvestigar spraying
Ejecucion de Mimikatz (por hash o nombre)Muy altaEscalar 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

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.