PermissionWhat It Lets You DoWhat You Can’t Do
GenericAllFull control over the object — add/remove members, reset passwords, modify ACLsN/A — this is the highest possible permission
GenericWriteModify most properties (e.g., member, description, servicePrincipalName)Can’t edit the object’s DACL or owner
WriteOwnerChange the owner of the object → then grant yourself full control via new ACEsCan’t directly modify the ACL — must combine with WriteDACL to get full control
WriteDACLModify the object’s ACL (DACL), i.e., add yourself to the permissions listCan’t change ownership
AddMemberAdd members to a groupOnly works for groups; can’t remove members or do anything else
AllExtendedRightsGrants special control rights (e.g., reset password, enable account)Doesn’t let you modify group membership, ACLs, or execute commands
User-Force-Change-PasswordReset someone’s password without knowing the old oneCan’t read the user’s password; only sets a new one
SelfAllows changes to certain self-modifiable attributes (like servicePrincipalName)Highly limited — only useful for certain abuses like RBCD (Resource-Based Constrained Delegation)
ReadPropertyRead attributes of an object (e.g., group membership, SPNs, description)No write access; can’t modify anything
WritePropertyModify specific attributes (depends on property-specific rights granted)Can’t change ownership or ACL unless specifically allowed for those attributes
Owns Object (ObjectOwner)The object’s owner always has implicit full rights (even if ACLs say otherwise)Only relevant if you’re already the owner (or gain ownership using WriteOwner)
If you have this…You can…
GenericAllLiterally anything: reset password, add to groups, set SPNs, RBCD, ACL abuse, etc.
GenericWriteAdd yourself to groups (member), set SPNs, backdoor accounts, lateral/priv esc.
WriteOwnerMake yourself the owner → then edit ACL (if you also have WriteDACL)
WriteDACLAdd your user to the object’s DACL to give yourself GenericAll or other privileges
AllExtendedRightsUse Set-DomainUserPassword to reset someone’s password without needing old password
AddMember (on Group)Add a low-priv account to privileged group (e.g., Domain Admins, local admin group)
WriteProperty (SPN)Set SPNs for Kerberoasting, or setup for RBCD abuse
Self (on computer)Abuse RBCD by setting msDS-AllowedToActOnBehalfOfOtherIdentity
PermissionYou Cannot…
GenericWriteChange the ACL or ownership of the object
WriteOwnerDirectly change the ACL unless you also have WriteDACL
WriteDACLChange the object’s owner (that’s WriteOwner)
AddMemberRemove users, modify anything else, or use this on non-group objects
AllExtendedRightsChange group membership, ownership, or ACLs
SelfOnly modifies specific attributes (like SPNs); not general write access
ReadPropertyYou’re just reading — no write, no escalation
User-Force-Change-PasswordYou can’t extract passwords — you can only overwrite/reset them
BloodHound EdgeUnderlying PermissionWhat to Check
AddMemberAddMember on groupDoes it target a privileged group (e.g., Domain Admins)?
ForceChangePasswordAllExtendedRights / User-Force-Change-PasswordCan you reset and take over a privileged user?
GenericWriteGenericWrite on objectCan you backdoor the object or add to group?
Owns + WriteDACLCombo → full control over the objectSet yourself to have GenericAll
CanRDP, CanPSRemoteOften a result of group membership or ACL configCan you lateral move via WinRM, RDP, or DCOM?

Let’s say:

  • You get GenericWrite over DOMAIN ADMINS
  • You use PowerView:
Add-DomainGroupMember -Identity "DOMAIN ADMINS" -Members backdoor.user

You’re now Domain Admin. Game over.

Scroll to Top