🤑 Usando GPOs para escalar privilegios 🤑


MatarFuma

Miembro muy activo
¿Qué coño es una GPO y por qué te importa?
Una Group Policy Object es básicamente un conjunto de configuraciones que se aplican a usuarios o equipos dentro del dominio. Desde desactivar el firewall hasta lanzar scripts al iniciar sesión.
El problema: muchas veces esas GPOs están mal configuradas, con permisos flojos y rutas que cualquier usuario puede tocar. ¿El resultado? Escalada de privilegios en bandeja.

Escenarios reales que puedes explotar
Vamos a ver ejemplos reales, como los que te puedes encontrar en pentests.

1. GPOs con permisos Write en SYSVOL
Cada GPO tiene una carpeta correspondiente en \\dominio.local\SYSVOL\... con un archivo .xml que define qué hace esa política.
Si puedes escribir en esa carpeta o en ese archivo, puedes modificar la GPO y lanzar scripts maliciosos, cambiar configuraciones o incluso crear nuevos usuarios administradores.

¿Cómo sabes si tienes permisos?
Get-Acl \\dominio.local\SYSVOL\dominio.local\Policies\{ID-DE-GPO}

Si ves que tu usuario tiene Modify o FullControl, ya sabes: estás dentro.
Ejemplo de ataque: añadir un script de inicio que crea un admin.

Modifica el archivo de la GPO para que ejecute algo como:
net user pringado pringado /add
net localgroup administrators pringado /add

2. Abuso de GPOs que aplican scripts de logon/logoff
Muchas veces los scripts de inicio se definen en la GPO, pero los .bat o .ps1 que se ejecutan están en rutas que cualquiera puede editar. Sí, has leído bien.

Ruta típica: \\dominio.local\SYSVOL\dominio.local\scripts\logon.bat
Si puedes modificar ese archivo, puedes meter cualquier comando y se ejecutará con el contexto del usuario afectado (y a veces incluso como SYSTEM si lo pillas bien).

3. GPOs con permisos delegados de manera negligente
Muchos admins delegan sin pensar. Dejan que usuarios random tengan permisos Edit settings, Link GPO, o incluso Create GPOs.

Con eso puedes:
  • Crear una GPO maliciosa.
  • Linkearla a una OU con equipos o usuarios jugosos.
  • Inyectar payloads que te den persistencia o escalada.
Con BloodHound o con este comando lo puedes ver:
Get-GPPermission -Name "Nombre de GPO" -All

Si ves que tu usuario puede editar… pues ya sabes qué hacer.

Para los frikis que van de héroes: ¿Y cómo me defiendo de todo esto?

Si estás en el otro lado (Blue Team):
  • Revisa los permisos en todas las GPOs con Get-GPPermission.
  • No pongas scripts en rutas globales donde todos escriben.
  • Usa Advanced Group Policy Management para tener control de cambios.
  • Monitoriza modificaciones de GPOs (event ID 5136 en el Security log).
Si ya estás en una máquina y quieres ver qué GPOs le aplican, ejecuta:
gpresult /R

Y si quieres todo detallado y bonito:
gpresult /H resultado.html
 

Matamataos

The Anxious Generation
Noderador
Nodero
Noder
Como me alegra ver estos post :giggle: que orgullo!!

para añadir ya que es AD es uno de los temas que mas estudio, un repo con interesantes recursos y alguna técnica AD-Privesc jugando con Permisos.


También puede Importar el maravilloso PowerView.ps1 y jugar con comandos como


Get-DomainGPO |select displayname jugar con confianzas de dominios, bosques, etc..

Sigue así!!
 

4444rrrr

Apaleador de jovenlandeses profesional.
Burgués de Nodo
Noderador
Nodero
Noder
Joder tremendos post este y el anterior. Sube más contenido del estilo la verdad que me mola demasiado todo este tipo de contenido. Mis dieces de nuevo, post de los buenos si señor.