Has conseguido una shell con pocos privilegios en un host Windows. ¿Cómo escalas privilegios?
Respuesta breve
Enumera los privilegios de la cuenta y las malas configuraciones del host: privilegios de token como SeImpersonate, rutas de servicio sin comillas, permisos de servicio débiles, AlwaysInstallElevated y credenciales almacenadas. Luego abusa del más fiable — la suplantación de token (ataques Potato) es una vía común a SYSTEM.
En Windows, el objetivo suele ser NT AUTHORITY\SYSTEM, y la vía casi siempre pasa por un privilegio o una mala configuración de servicio en lugar de un exploit de corrupción de memoria. Como en Linux, la enumeración va primero.
Enumera la cuenta y el host
- Privilegios de token:
whoami /priv. Privilegios como SeImpersonate, SeAssignPrimaryToken, SeBackup o SeDebug son primitivas de escalada disfrazadas. Las cuentas de servicio (IIS, MSSQL) a menudo poseen SeImpersonate. - Malas configuraciones de servicio:
- Rutas de servicio sin comillas — una ruta de servicio como
C:\Program Files\My App\svc.exesin comillas te permite soltarC:\Program.exesi el directorio es escribible. - Permisos de servicio débiles — si puedes reconfigurar la ruta del binario de un servicio (
sc config), ejecutas código como su cuenta al reiniciar. - Binarios de servicio escribibles u oportunidades de secuestro de DLL.
- Rutas de servicio sin comillas — una ruta de servicio como
- AlwaysInstallElevated: si ambas claves del registro están establecidas, cualquier MSI que instales se ejecuta como SYSTEM.
- Credenciales almacenadas: unattend.xml, autologon en el registro, secretos guardados de RDP/administrador de credenciales, scripts.
Herramientas como WinPEAS, PowerUp y Seatbelt automatizan el barrido.
Explota la primitiva más fuerte
- SeImpersonate es la victoria clásica en las cuentas de servicio. La familia Potato (JuicyPotato, PrintSpoofer, RoguePotato, GodPotato) coacciona a un proceso SYSTEM para que se autentique, y luego suplanta ese token para ejecutarse como SYSTEM — fiable y silencioso.
- Una ruta sin comillas o una configuración de servicio escribible te da la cuenta de servicio, que en máquinas más antiguas suele ser LocalSystem directamente.
- AlwaysInstallElevated está a un MSI malicioso de distancia de SYSTEM.
¿Por qué no simplemente exploits de corrupción de memoria?
Existen, pero son específicos de la versión y arriesgan tumbar el host. El abuso de configuración y de token es más fiable y mucho menos probable que cause una caída que tendrás que explicar.
Qué buscan los entrevistadores
Una metodología repetible, el instinto del whoami /priv, el reconocimiento de que SeImpersonate más un ataque Potato es un recurso habitual para SYSTEM, y la misma conciencia de estabilidad que te hace preferir las malas configuraciones a los exploits frágiles.
Posibles preguntas de seguimiento
- ¿Por qué es tan valioso el SeImpersonatePrivilege para un atacante?
- ¿Cómo lleva una ruta de servicio sin comillas a la ejecución de código como la cuenta de servicio?
- ¿Qué es AlwaysInstallElevated y por qué es semejante regalo?