Abuso de privilegios y tokens
En Windows, lo que un proceso puede hacer no lo decide solo “ser admin”: lo decide su token de acceso, que lleva el SID del usuario, sus grupos y una lista de privilegios (SeXxxPrivilege). Varios de esos privilegios, aunque no te hagan administrador sobre el papel, permiten llegar a SYSTEM de forma directa. Enumerar whoami /priv y saber qué hace cada privilegio es, muchas veces, toda la escalada.
Modelo de amenaza
Sección titulada «Modelo de amenaza»El error de diseño que explota el atacante es que ciertos privilegios son equivalentes a SYSTEM aunque Windows los conceda a cuentas de servicio “normales” (IIS, MSSQL, tareas). El sistema confía en que solo código legítimo los usará; el atacante que hereda ese token los convierte en control total. No hay que romper nada: el privilegio ya está concedido.
Privilegios peligrosos y qué permiten
Sección titulada «Privilegios peligrosos y qué permiten»SeImpersonatePrivilege / SeAssignPrimaryTokenPrivilege
Sección titulada «SeImpersonatePrivilege / SeAssignPrimaryTokenPrivilege»El más común en cuentas de servicio. Permite suplantar el token de un cliente que se conecte. La familia Potato fuerza a un servicio SYSTEM (spooler, RPC, DCOM) a autenticarse contra el atacante, que roba y suplanta su token:
PrintSpoofer.exe -i -c "cmd.exe" # SeImpersonate -> SYSTEMGodPotato.exe -cmd "cmd /c whoami"RoguePotato.exe -r <ip> -e "cmd.exe" -l 9999SeDebugPrivilege
Sección titulada «SeDebugPrivilege»Abrir cualquier proceso, incluido LSASS. Permite volcar credenciales (procdump lsass, mimikatz sekurlsa) o inyectar código en procesos SYSTEM.
mimikatz # privilege::debugmimikatz # sekurlsa::logonpasswordsSeBackupPrivilege / SeRestorePrivilege
Sección titulada «SeBackupPrivilege / SeRestorePrivilege»SeBackup ignora las ACLs en lectura: copiar los hives SAM, SYSTEM, SECURITY o NTDS.dit aunque estén protegidos. SeRestore ignora las ACLs en escritura: sobrescribir binarios protegidos o claves de servicio.
reg save HKLM\SAM sam.hive # con SeBackupreg save HKLM\SYSTEM system.hive# luego: secretsdump.py -sam sam.hive -system system.hive LOCALSeTakeOwnershipPrivilege
Sección titulada «SeTakeOwnershipPrivilege»Apropiarte de cualquier objeto (fichero, clave, servicio) para luego reescribir su DACL y modificarlo → control de un binario/servicio privilegiado.
SeLoadDriverPrivilege
Sección titulada «SeLoadDriverPrivilege»Cargar drivers → BYOVD (Bring Your Own Vulnerable Driver): cargas un driver firmado pero vulnerable y lo explotas para ejecutar en kernel (p. ej. Capcom.sys).
SeManageVolumePrivilege, SeTcbPrivilege, SeCreateToken…
Sección titulada «SeManageVolumePrivilege, SeTcbPrivilege, SeCreateToken…»Otros privilegios de alto impacto; SeTcb/SeCreateToken permiten forjar tokens arbitrarios (actuar como parte del SO).
Red Team — integridad y UAC
Sección titulada «Red Team — integridad y UAC»El token también lleva un nivel de integridad (Low/Medium/High/System). Elevar de Medium a High es UAC bypass (ver Bypass de UAC); de High a System es, típicamente, impersonation o servicios.
Herramientas
Sección titulada «Herramientas»- PrintSpoofer / GodPotato / JuicyPotato / RoguePotato — explotación de SeImpersonate.
- mimikatz (
token::elevate,privilege::debug,sekurlsa) — manipulación de tokens y volcado. - incognito (Metasploit
list_tokens/impersonate_token) — robar y suplantar tokens de usuarios logueados. - SeBackupPrivilege / SeRestore PoCs y
reg save; secretsdump para procesar hives.
Impacto
Sección titulada «Impacto»SYSTEM local directo (impersonation), volcado de todas las credenciales del host (debug/backup), ejecución en kernel (load driver). En un DC, SeBackup sobre NTDS.dit = todos los hashes del dominio.
Blue Team
Sección titulada «Blue Team»Detección
Sección titulada «Detección»- Cuentas de servicio con shells SYSTEM tras actividad de named pipes (Potato).
- Acceso a LSASS (Sysmon event 10 con
GrantedAccesssospechoso) → SeDebug/dump. reg savede SAM/SYSTEM/SECURITY; carga de drivers no habituales (event 6 Sysmon, service 7045 de tipo kernel).- Uso de
SeBackupPrivilegepara abrir ficheros protegidos.
Telemetría
Sección titulada «Telemetría»Audita asignación de privilegios especiales (event 4672 en logon, 4673/4674 uso de privilegio sensible), Sysmon 1/6/10, y creación de servicios/drivers.
Hardening
Sección titulada «Hardening»- Mínimo privilegio en cuentas de servicio: quita SeImpersonate/SeDebug/SeBackup si no son imprescindibles; usa gMSA con derechos acotados.
- Credential Guard y protección de LSASS (RunAsPPL) contra volcado por SeDebug.
- Driver Blocklist de Microsoft / WDAC para frenar BYOVD; HVCI.
- Restringe quién tiene SeBackup/SeRestore (operadores de backup reales, no cuentas de app).
Respuesta
Sección titulada «Respuesta»Si un privilegio llevó a SYSTEM/credenciales, trata el host como comprometido: rota secretos, revisa qué se volcó, y elimina el privilegio sobrante de la cuenta afectada.
CVEs y casos reales
Sección titulada «CVEs y casos reales»- La familia Potato (SeImpersonate) es TTP estándar contra IIS/MSSQL (MITRE T1134.001/.002).
- BYOVD: campañas de ransomware y APT cargan drivers vulnerables (RTCore64, Capcom, Dell dbutil CVE-2021-21551) para desactivar EDR.
- SeBackupPrivilege → NTDS.dit es técnica habitual de post-explotación en DCs (MITRE T1003.003).
- mimikatz
sekurlsavía SeDebug: uno de los TTPs más documentados en brechas reales.
Checklist de prueba
Sección titulada «Checklist de prueba»-
whoami /priv— listar todos los privilegios habilitados/deshabilitados - SeImpersonate/SeAssignPrimaryToken → Potato a SYSTEM
- SeDebug → volcado de LSASS (mimikatz/procdump)
- SeBackup →
reg savede SAM/SYSTEM o lectura de NTDS.dit - SeRestore/SeTakeOwnership → reescribir binario/servicio protegido
- SeLoadDriver → BYOVD (driver vulnerable firmado)
- Tokens de otros usuarios logueados suplantables (incognito)
- ¿LSASS protegido (RunAsPPL/Credential Guard)?