Skip to main content
Active Directory objects have Access Control Lists that define who can read or modify them. Misconfigured ACEs on user, group, computer, or domain objects are a reliable path to privilege escalation: often set by admins who don’t understand the implications of “GenericAll”.

Finding Misconfigs

Start with BloodHound’s graph, then sweep with PowerView and bloodyAD to catch what BloodHound misses on granular attributes.

ACL Attack Map

ACL abuse mindmap

ACL abuse mindmap

DACL abuse mindmap showing attack paths for GenericAll, GenericWrite, WriteDACL, AllExtendedRights, and WriteOwner across Group, User, Computer, Domain Object, AdminSD Holder, Group Policy, and Security Descriptor

DACL abuse attack paths by right and object type

GenericAll on User

Full control over the object: three viable exploitation paths depending on what’s noisiest or most reliable.

GenericAll on Group

Add any account to the group directly: domain admin group membership being the obvious endgame.

GenericAll on Computer → RBCD

Set the msDS-AllowedToActOnBehalfOfOtherIdentity attribute on the target computer to configure Resource-Based Constrained Delegation. Full attack chain is in Delegation → RBCD.

GenericWrite on User

Can’t reset the password directly, but can modify writable attributes: SPN for Kerberoasting or msDS-KeyCredentialLink for shadow creds.

GenericWrite on Computer → RBCD

Same as GenericAll on Computer: set the msDS-AllowedToActOnBehalfOfOtherIdentity attribute on the target.

WriteDACL

Rewrite the DACL on the target object: grant yourself GenericAll or DCSync rights and escalate from there.

WriteOwner

Take ownership of the object first, then use that ownership to grant yourself WriteDACL: from there, escalate as above.

ForceChangePassword

Reset the target user’s password without knowing the current one: useful when you need access to the account but don’t want to enumerate further.
Add a certificate key credential to the target account: authenticates via PKINIT without changing the password, leaving no obvious event log trail.