Saltearse al contenido

Volcado de credenciales

Una vez con privilegios locales (admin/SYSTEM) en un host, el objetivo es cosechar credenciales para moverse lateralmente y escalar en el dominio. Windows guarda secretos en varios sitios: la base SAM local, la memoria del proceso LSASS, cachés de dominio, el LSA Secrets, DPAPI, navegadores y, en un DC, la base de datos NTDS.dit con todos los hashes del dominio. Volcar credenciales es el motor del movimiento lateral: un hash robado aquí es la sesión de alguien en el host de al lado.

Windows mantiene credenciales en memoria para el Single Sign-On: mientras un usuario tiene sesión, su material de autenticación (hash NTLM, a veces contraseña en claro vía WDigest, tickets Kerberos) vive en LSASS. Quien es SYSTEM puede leer esa memoria. El atacante convierte “admin en un host” en “las credenciales de todos los que iniciaron sesión ahí”, incluidos admins de dominio que pasaron por esa máquina.

# remoto con credenciales de admin local
secretsdump.py dominio/admin:pass@<host>
nxc smb <host> -u admin -p pass --sam --lsa
# local con los hives (requiere SeBackup o SYSTEM)
reg save HKLM\SAM sam & reg save HKLM\SYSTEM sys & reg save HKLM\SECURITY sec
secretsdump.py -sam sam -system sys -security sec LOCAL

SAM da hashes de cuentas locales; LSA Secrets guarda contraseñas de servicios, tareas, cuentas de máquina y a veces credenciales en claro.

El premio gordo: hashes y tickets de todos los usuarios con sesión activa.

# mimikatz (Windows)
privilege::debug
sekurlsa::logonpasswords
sekurlsa::tickets /export
# volcar el proceso y procesarlo offline (más sigiloso)
procdump -ma lsass.exe lsass.dmp # luego: pypykatz lsa minidump lsass.dmp
# nanodump / comsvcs.dll como LOLBin para el dump

La base de datos de AD contiene los hashes de todos los usuarios del dominio.

# DCSync: pide la replicación sin tocar el disco del DC (requiere DS-Replication rights)
secretsdump.py dominio/admin:pass@<DC> # usa DRSUAPI (DCSync)
mimikatz # lsadump::dcsync /user:krbtgt
# o copiar NTDS.dit + SYSTEM (SeBackup / ntdsutil / VSS) y procesar offline

DCSync es la técnica clave: con derechos de replicación (los tienen DA/EA y cuentas mal delegadas) pides los hashes como si fueras otro DC, incluido krbtgt (→ Golden Ticket, ver Persistencia en Active Directory).

  • DPAPI: credenciales de navegadores, Wi-Fi, RDP, Credential Manager (mimikatz dpapi::, SharpDPAPI).
  • Cached domain credentials (MSCache/DCC2): hashes de logons previos (crackeo lento, hashcat 2100).
  • Navegadores: cookies/contraseñas (SharpChrome). LSA protected (RunAsPPL): requiere bypass.
  • mimikatz — el estándar (sekurlsa, lsadump, dpapi).
  • impacket secretsdump.py — SAM/LSA/NTDS/DCSync remoto desde Linux.
  • NetExec (nxc) --sam --lsa --ntds — volcado masivo multi-host.
  • pypykatz / nanodump / procdump / comsvcs — dump de LSASS y parseo offline.
  • SharpDPAPI / LaZagne — DPAPI y credenciales de apps.

De admin local a credenciales reutilizables en toda la red; de un DC, a todos los hashes del dominio (incluido krbtgt) → control total y persistente. Es el paso que convierte un host comprometido en compromiso de dominio.

  • Acceso a LSASS: Sysmon event 10 con TargetImage lsass.exe y GrantedAccess de lectura de memoria (0x1010/0x1410…) → firma de dump.
  • DCSync: 4662 con el GUID de replicación (DS-Replication-Get-Changes) desde un principal que no es un DC → altísima fidelidad.
  • reg save de SAM/SECURITY/SYSTEM; lecturas de NTDS.dit vía VSS; ejecución de mimikatz/procdump sobre lsass.

Sysmon 10 (process access a lsass), 11 (dump a disco), auditoría de replicación en el DC (4662 con GUIDs DRSUAPI), creación de shadow copies (VSS).

  • Credential Guard (aísla LSASS en VBS) y RunAsPPL (LSASS como proceso protegido) → frenan el dump directo.
  • Deshabilita WDigest (no más contraseñas en claro en memoria).
  • Restringe derechos de replicación (DCSync) a los DCs; audítalos en BloodHound.
  • Tiering/PAW: que los DA no inicien sesión en estaciones (no dejes sus credenciales en LSASS de hosts de usuario); Protected Users.
  • LAPS (admin local único por host → un hash robado no abre toda la red).

Si un DC o credenciales de dominio cayeron: rota krbtgt dos veces, resetea las cuentas expuestas y las de máquina afectadas, reconstruye hosts comprometidos y revisa persistencia (Golden Ticket, DCShadow).

  • El volcado de LSASS/NTDS es TTP omnipresente (MITRE T1003: .001 LSASS, .002 SAM, .003 NTDS, .006 DCSync).
  • mimikatz (Benjamin Delpy) es, probablemente, la herramienta ofensiva más usada de la historia de AD.
  • NotPetya, Conti, BlackCat y casi todo ransomware moderno volca LSASS y hace DCSync para llegar a DA.
  • CVE-2021-36934 (HiveNightmare) permitió leer SAM como usuario sin privilegios.
  • SAM + LSA Secrets del host (secretsdump/nxc)
  • LSASS dump (mimikatz/procdump/pypykatz) — ¿contraseñas en claro (WDigest)?
  • Credenciales en caché de dominio (DCC2) crackeables
  • DPAPI: navegadores, Credential Manager, RDP
  • ¿Derechos de replicación para DCSync? → krbtgt
  • En DC: NTDS.dit completo (DCSync o VSS)
  • ¿LSASS protegido (RunAsPPL/Credential Guard)? ¿bypass necesario?
  • Blue: ¿detección de acceso a LSASS y de DCSync no-DC?