TL; TR
Este privilegio se puede usar para crear y ejecutar procesos bajo otro usuario (incluido SYSTEM
) si se asignan tokens de acceso adecuados para ese usuario.
SeTcbPrivilege
Los Servicios de Windows son programas que se ejecutan en segundo plano para realizar las operaciones necesarias para que el sistema operativo funcione. Cuando diga, "cuando se utiliza una cuenta que no sea Sistema Local para ejecutar el servicio, el SCM otorga automáticamente ciertos privilegios de seguridad a la cuenta" , se debe tener en cuenta que los servicios solo pueden iniciarse a través de los siguientes tres Cuentas de usuario de servicio :
- sistema
- Servicio de red
- Servicio local
Esto significa que para ejecutar un Servicio de Windows ya debe tener los privilegios de uno de esos tres "usuarios". System
es esencialmente un administrador, y los otros dos son grupos de usuarios de nivel bastante alto.
Desde MSDN:
Constante de C ++: SE_TCB_NAME cadena: SeTcbPrivilege
Nombre corto de la secuencia de comandos: Tcb
Se requiere para actuar como parte del sistema operativo. El titular es parte de la base de computadoras de confianza.
Los servicios son extensiones del sistema operativo, por lo que no es realmente sorprendente que el SCM otorgue este privilegio de forma predeterminada a los servicios. El Trusted Computer Base Privilege permite el acceso a los controladores de dispositivos de hardware y / o componentes de software que se consideran la "base" de la seguridad de la computadora (es decir, el sistema operativo).
Otro extracto de Microsoft:
Permite que un proceso se autentique como un usuario y así pueda acceder a
Los mismos recursos que un usuario. Sólo servicios de autenticación de bajo nivel.
debe requerir este privilegio.
En otras palabras, esto permite que un proceso se haga pasar por un usuario. Esto significa que puedes ejecutar las cosas como SYSTEM
. Sé que la suplantación de sonidos suena terrible, pero hay un mecanismo incorporado en Windows para "hacerse pasar por los usuarios". Así es como Run as Administrator
realiza sus tareas. Sin embargo, para otorgar este privilegio, debe proporcionar las credenciales de administrador de alguna manera. Si el malware ya está al punto de poder asignarse este permiso / privilegio, entonces ya estás en un gran problema.
Los tokens de acceso son una forma de Windows de permitir que los subprocesos / procesos / usuarios accedan a ciertas partes del sistema operativo. Los tokens de seguridad se pasan a casi todas las funciones de nivel inferior utilizadas en Windows. Debido a que los servicios generalmente se ejecutan con privilegios más altos, se les otorgan privilegios para crear tokens de acceso. Al interactuar con el escritorio, es probable que interactúen con objetos de nivel de usuario. Deberán acceder, modificar y crear tokens para esto.
Todo este comportamiento no es fuera de lo común. Los servicios son programas de bajo nivel con altos privilegios de sistema. Los privilegios que menciona son todos los privilegios estándar para que los servicios tengan. Una gran cantidad de malware intentará suplantar o utilizar servicios para obtener acceso al sistema debido a esto. Vea mi respuesta aquí para obtener un poco más de información sobre ese tema.