Otorgar acceso remoto en SCManager a usuarios que no son administradores

Consideremos las peculiaridades de otorgar permiso de acceso remoto para enumerar la lista de servicios que se ejecutan en un servidor remoto a usuarios de dominio sin derechos de administradores locales. De hecho, la tarea se reduce a proporcionar una conexión remota al Gerente de control de servicios (SCManager).

Así es como se ve el problema. Supongamos que queremos que un usuario remoto o un sistema de monitoreo pueda consultar el estado de los servicios en algún servidor. Por razones obvias, este usuario remoto no tiene derechos administrativos ni privilegios para acceder al servidor localmente.

Al intentar conectarse y obtener la lista de servicios en la computadora remota usando la consola services.msc, el usuario ve el siguiente error:

Windows no pudo abrir la base de datos del administrador de control de servicios en computer_name

Error 5: acceso denegado.

Si intenta obtener la lista de servicios en un servidor remoto usando sc.exe, el error es el siguiente:

C:Windowssystem32>sc \lonts-01 query

[SC] OpenSCManager FALLÓ 5:
Acceso denegado.

El acceso a la lista de servicios está controlado por el descriptor de seguridad de la base de datos de Service Control Manager, para lo cual el acceso remoto de los usuarios de los “Usuarios autenticados” ya estaba restringido en Windows 2003 SP1 (eso es bastante lógico). Solo los miembros del grupo de administradores locales tienen derecho a acceder a este servicio de forma remota.

Consideremos cómo otorgar acceso remoto al Administrador de control de servicios para obtener la lista de servicios en un servidor y cómo los usuarios comunes (sin derechos administrativos) pueden obtener estados de estos servicios en Windows Server 2012 R2.

Los permisos actuales de Service Control Manager (SCM) se pueden obtener utilizando sc.exe ejecutando el siguiente comando en el símbolo del sistema, ejecute con privilegios de administrador:

sc sdshow scmanager

El comando devuelve una cadena SDDL similar:

D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CC;;;AC)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)

sc sdshow scmanager

En este caso, puede ver que, de forma predeterminada, el grupo Usuarios autenticados (AU) solo puede conectarse mediante SCM, pero no sondear (LC) los servicios. Copie esta cadena en cualquier editor de texto.

El siguiente paso es obtener un SID de un usuario o grupo al que queremos otorgar el derecho de acceso remoto a SCM (Cómo obtener un SID de usuario por nombre de usuario). Por ejemplo, obtengamos un SID del grupo AD lon-hd:

Get-ADgroup -Identity lon-hd | select SID
SID
---
S-1-5-21-2470146451-39123456388-2999995117-23338978

Copie el bloque (A ;; CCLCRPRC ;;; IU) – (IU significa Usuarios interactivos) de la cadena SDDL en su editor de texto, reemplace IU en el bloque copiado con el SID de un usuario / grupo y pegue la cadena que obtiene antes S:

En nuestro caso tenemos la siguiente cadena:

D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CC;;;AC)(A;;CCLCRPRC;;;S-1-5-21-2470146451-39123456388-2999995117-23338978)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)

Ahora cambiemos los parámetros del descriptor de seguridad de Service Control Manager:

sc sdset scmanager “D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CC;;;AC)(A;;CCLCRPRC;;;S-1-5-21-2470146451-39123456388-2999995117-23338978)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)“

sc sdset scmanager

La cuerda [SC] SetServiceObjectSecurity ÉXITO indica que los nuevos parámetros de seguridad se han aplicado correctamente y que el usuario tiene privilegios similares a los de los usuarios autenticados localmente: SC_MANAGER_CONNECT, SC_MANAGER_ENUMERATE_SERVICE, SC_MANAGER_QUERY_LOCK_STATUS y STANDARD_RIGHTS_READ.

Asegúrese de que un usuario remoto pueda obtener la lista de servicios y su estado desde la consola services.msc usando la consulta sc \ srv-name1

consulta sc en computadora remota

Naturalmente, no tiene ningún privilegio para administrar los servicios, ya que el acceso a cada servicio está controlado por una ACL individual. Para otorgar privilegios para iniciar / detener servicios de servidor a un usuario, siga las instrucciones del artículo Cómo otorgar permisos para administrar (iniciar, detener o reiniciar) los servicios de Windows a un usuario.

Consejo. Si asigna derechos de SCManager diferentes de los típicos, se guardan en HKLM SYSTEM CurrentControlSet Control ServiceGroupOrder Security rama del registro. Si cometió un error al preparar una cadena SDDL, puede eliminar esta rama y reiniciar su computadora para restablecer los permisos actuales a los predeterminados.HKLM  SYSTEM  CurrentControlSet  Control  ServiceGroupOrder  Security

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *