¿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?
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:
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:
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:
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):
Y si quieres todo detallado y bonito:
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.
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).
gpresult /R
Y si quieres todo detallado y bonito:
gpresult /H resultado.html