Page cover

📘Server Operators

El grupo Operadores de servidoresarrow-up-right permite a los miembros administrar servidores Windows sin necesidad de que se les asignen privilegios de administrador de dominio. Es un grupo con muchos privilegios que puede iniciar sesión localmente en servidores, incluidos los controladores de dominio.

La pertenencia a este grupo confiere poder SeBackupPrivilegey SeRestorePrivilegeprivilegios y la capacidad de controlar los servicios locales.

Consulta del servicio AppReadiness

Examinemos el servicio AppReadiness. Podemos confirmar que este servicio se inicia como SYSTEM mediante la utilidad sc.exe.

C:\htb> sc qc AppReadiness

[SC] QueryServiceConfig SUCCESS

SERVICE_NAME: AppReadiness
        TYPE               : 20  WIN32_SHARE_PROCESS
        START_TYPE         : 3   DEMAND_START
        ERROR_CONTROL      : 1   NORMAL
        BINARY_PATH_NAME   : C:\Windows\System32\svchost.exe -k AppReadiness -p
        LOAD_ORDER_GROUP   :
        TAG                : 0
        DISPLAY_NAME       : App Readiness
        DEPENDENCIES       :
        SERVICE_START_NAME : LocalSystem

Comprobación de permisos de servicio con PsService

Podemos utilizar el visor/controlador de servicios PsServicearrow-up-right , que es parte de la suite Sysinternals, para verificar los permisos del servicio. PsService funciona de manera muy similar a la utilidad sc y puede mostrar el estado y las configuraciones del servicio y también le permite iniciar, detener, pausar, reanudar y reiniciar servicios tanto localmente como en hosts remotos.

Esto confirma que el grupo Server Operators tiene el derecho de acceso SERVICE_ALL_ACCESSarrow-up-right , lo que nos da control total sobre este servicio.

Comprobar la pertenencia al grupo de administradores locales

Echemos un vistazo a los miembros actuales del grupo de administradores locales y confirmemos que nuestra cuenta de destino no está presente.

Modificación de la ruta binaria del servicio

Cambiemos la ruta binaria para ejecutar un comando que agregue nuestro usuario actual al grupo de administradores locales predeterminado.

Iniciando el servicio

El inicio del servicio falla, lo cual es lo esperado.

Confirmar la membresía del grupo de administradores locales

Si verificamos la membresía del grupo de administradores, vemos que el comando se ejecutó exitosamente.

Confirmar el acceso de administrador local en el controlador de dominio

Desde aquí, tenemos control total sobre el controlador de dominio y podemos recuperar todas las credenciales de la base de datos NTDS y acceder a otros sistemas y realizar tareas posteriores a la explotación.

Extracción de hashes NTLM del controlador de dominio


Caso práctico

Escale los privilegios utilizando los métodos que se muestran en esta sección y envíe el contenido de la flag ubicada en c:\Users\Administrator\Desktop\ServerOperators\flag.txt

Herramientas

Comprobación de permisos de servicio con PsService

Esto confirma que el grupo Server Operators tiene el derecho de acceso SERVICE_ALL_ACCESSarrow-up-right , lo que nos da control total sobre este servicio.

Comprobación de administradores locales

Al comprobar los administradores locales vemos que el usuario server_adm no está en el grupo Administrators:

Modificación de la ruta binaria del servicio

Desde una CMD ejecutamos lo siguiente:

Iniciar el servicio

El inicio del servicio falla, lo cual es lo esperado.

Confirmar la membresía del grupo de administradores locales

Vemos que ya estamos dentro del grupo de administradores locales.

En este punto podríamos acceder al Domain Controller y extraer todos los hashes de los usuarios de Active Directory, lo que nos daría la contraseña del usuario Administrator (que necesitamos para acceder a la flag).

Un escaneo de Nmap nos confirma que la máquina en la que estamos es el Controlador de Dominio:

Confirmación de acceso como administrador en el DC

Bingo! Vamos a por los hashes.

Extracción de hashes NTLM del DC

Buuuum! Obtenemos todos los hashes de los usuarios de Active Directory. También podríamos hacer el volcado del usuario Administrator (más dirigido):

Acceso a la flag

Con el hash del usuario administrator vamos a hacer un Pass the Hash para acceder a través de RDP:

Al intentar acceder por Pass the Hash nos salta este mensaje:

👾Ataques a RDPchevron-right

Es un mensaje típico de seguridad al intentar hacer un Pass the Hash, ya que no proporcionamos ninguna contraseña. Para evitar esto vamos a loguearnos de nuevo con el usuario server_adm.

Vamos a habilitarlo agregando una nueva clave de registro DisableRestrictedAdmin(REG_DWORD) en HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa.

Se puede hacer usando el siguiente comando:

A pesar de ser Administrador no podemos ejecutarlo, por lo que no podemos hacer Pass the Hash:

Impacket-PsExec

Si la técnica anterior falla podemos hacer el Pass the Hash con PsExec para ganar una shell:

Acceso a la flag

Última actualización