UAC y servicios de Windows

7

Un usuario tiene un script de PowerShell que hace algunas cosas que requieren acceso administrativo en Windows Server 2012 con UAC habilitado.

Cuando ejecutan el script como administrador local, falla con acceso denegado. Pero si elevan sus permisos y ejecutan el script como administrador, funciona. Hasta ahora tan bueno.

Ahora, tienen un Servicio de Windows personalizado que ejecuta el script de PowerShell. El servicio de Windows está configurado para ejecutarse bajo la misma cuenta de administrador local (es decir, no es el sistema local / servicio de red / etc). El script falla con acceso denegado, como si la cuenta no fuera un administrador. En versiones anteriores de Windows, el script funciona bien.

¿Cómo se aplica UAC en el mundo de los servicios de Windows? Asumí que un servicio de Windows que se ejecutaba bajo una cuenta de administrador local personalizado siempre sería "elevado", pero en este caso parece que no es cierto.

    
pregunta Paul Stovell 28.02.2013 - 12:21
fuente

4 respuestas

6
  

Cuando ejecutan el script como administrador local, falla con acceso denegado.

Entonces, esto significa que ser un "Administrador local" no es suficiente para ejecutar el script. Esto demuestra que "Administrador local" no cubre el conjunto completo de derechos en la máquina. En el contexto de UAC , un "Administrador local" hace no tiene los derechos completos de un "administrador" (como lo ve el sistema operativo), pero cuando solicita hacer algo que requiere derechos administrativos, el UAC intercepta la llamada y, en lugar de simplemente rechazar la solicitud con un código de error, solicita al usuario . Si el usuario dice "sí, continúa", entonces se otorga derechos elevados al proceso. Desde el punto de vista del proceso, todo funciona como si hubiera sido un "verdadero administrador" todo el tiempo.

Los servicios no se ejecutan en una sesión, sino "como un servicio". Esto significa que no hay usuario para preguntar. Por lo tanto, UAC, tal como está configurado de forma predeterminada, no puede otorgar derechos de "administrador verdadero" a pedido.

Aparentemente, puede configurar UAC para que nunca pregunte y, en cambio, otorgar los derechos (que básicamente anula los beneficios de seguridad, si los hay, de UAC); ver, por ejemplo, esta publicación de blog ) . Una mejor solución sería ejecutar el servicio como una cuenta que ya es un verdadero administrador, y no la imitación barata que aparece bajo el nombre pomposo de "Administrador local".

    
respondido por el Thomas Pornin 28.02.2013 - 19:57
fuente
0

Si hubiera un acceso directo para obtener acceso administrativo, sería una vulnerabilidad. Un servicio de Windows requiere acceso administrativo para la configuración. Una vez en Windows, todo el proceso se ejecutó con derechos administrativos y nadie debería usar estos sistemas antiguos. Un sistema NT4 "completamente parcheado" puede ser propiedad remota . ¡Así que incluso los usuarios remotos no autenticados tienen derechos administrativos en los sistemas Windows anteriores!     

respondido por el rook 28.02.2013 - 19:41
fuente
0

Cuando pertenece a un grupo de administradores locales en Windows Server o Windows 7 0r 8 de manera predeterminada, no se le otorga el token de administrador completo, por ejemplo, incluso como administrador en la máquina cuando ejecuta cmd.exe y hace clic en Ejecutar como administrador. tiene que pasar UAC (escritorio seguro) cuando dice sí al indicador de UAC, se le entrega un token de administración completo para el proceso. Incluso, el explorer.exe en Windows no se ejecuta con todos los derechos de administrador, si no cree en el símbolo del sistema administrativo abierto y en el administrador de tareas, mate a explorer.exe y use este comando psexec -h explorer.exe en el shell de administración (cmd.exe), luego, al hacer clic en cmd en este nuevo explorer.exe, se ejecutará automáticamente con derechos de administrador sin la participación de UAC. En este ejemplo, la pregunta anterior se puede resolver simplemente ejecutando el servicio en la cuenta del sistema local, ya que esta cuenta no pertenece a ningún subsistema de seguridad y UAC nunca le solicitará, pero hará que su servicio no sea interactivo y se ejecuta en Service-0x0-3e7 $ estación de windows, es t hat winstation, que es propietario de cualquier servicio que se carga bajo el Sistema Local y no es interactivo, por lo que está a salvo de la manipulación del usuario

    
respondido por el Mudasir 30.07.2014 - 12:40
fuente
0

UAC no debería afectar los servicios del sistema. Aparte de esta pregunta, no puedo encontrar pruebas de que alguna vez lo haga, y he probado en Windows 7, Windows 10v1607 y Windows 10v1803 sin poder reproducir el problema.

Concluyo que o hay algo inusual en su máquina en particular que está causando que esto suceda, o que su problema está siendo causado por otra cosa, por ejemplo, el tipo de SID del servicio está configurado como restringido, o se está ejecutando en una ACL que otorga acceso solo a INTERACTIVO.

Cualquier futuro lector que esté experimentando este problema puede enviarme un correo electrónico si desea ayuda para solucionar el problema. Mi dirección de correo electrónico está en mi perfil.

    
respondido por el Harry Johnston 16.07.2018 - 23:31
fuente

Lea otras preguntas en las etiquetas