1. Descripción técnica
Windows utiliza tokens de acceso para describir la identidad, los grupos y los privilegios de procesos e hilos. Un proceso tiene un token primario; un hilo también puede adoptar un token de suplantación para acceder a recursos en el contexto de un cliente.
SeImpersonatePrivilege existe para que servicios actúen en nombre de clientes autenticados. La escalada aparece cuando un proceso poco privilegiado con ese derecho consigue provocar una autenticación de una identidad superior, capturar el token resultante y utilizarlo para ejecutar una acción fuera de su función prevista.
1.1. Mecanismo
// renderizando diagrama…
El privilegio no convierte por sí solo el proceso en SYSTEM. Hace falta una cadena que entregue un token útil y permita usarlo o duplicarlo con los derechos necesarios.
2. Impacto
Una cadena exitosa puede crear un proceso como NT AUTHORITY\SYSTEM, la identidad local con mayor capacidad habitual. El alcance sigue limitado al host y a las credenciales o recursos disponibles desde ese contexto.
3. Condiciones necesarias
- El proceso comprometido posee un privilegio de suplantación adecuado.
- Existe una ruta de autenticación local alcanzable.
- La identidad obtenida es más privilegiada.
- La versión del sistema y del runtime es compatible con la técnica empleada.
4. Validación y detección
whoami /priv permite inventariar privilegios del token actual. La confirmación final debe comprobar la identidad del nuevo proceso con whoami y no inferirla sólo desde el mensaje de una herramienta.
Defensivamente se correlacionan procesos de servicio, creación de tuberías o RPC inusual, duplicación de tokens y procesos hijos con una identidad superior a la del padre lógico.
5. Explotación documentada en los writeups
5.1. 001-simple
Una webshell bajo IIS ejecuta GodPotato. La herramienta informa un token con nivel Impersonation, localiza un token de SYSTEM y la salida de whoami confirma la nueva identidad. La variante para .NET 4 coincide con el runtime disponible.
6. Mitigación
- Ejecutar aplicaciones web y servicios con cuentas dedicadas y el mínimo de privilegios.
- Retirar derechos de suplantación a identidades que no los necesiten.
- Mantener Windows y componentes RPC actualizados.
- Restringir carga y ejecución de binarios en directorios publicados.
- Supervisar procesos hijos anómalos creados por servicios de IIS y otras cuentas técnicas.
7. Clasificación
- CWE relacionada: CWE-269, Improper Privilege Management
- Plataforma: Windows
- Vector: uso indebido de un token de suplantación obtenido mediante autenticación local