AD LDAP Privileges, Attributes, and Attack Paths
- Use as a reference for relationships discovered using Bloodhound
GenericAll (User/Computer)
msDS-KeyCredentialLink
(User/Computer)
servicePrincipalName
(User/Computer)
userAccountControl
(User)
- AS‑REP roast - set
DONT_REQ_PREAUTH
(note: some delegation flags require SeEnableDelegationPrivilege
)
msDS-AllowedToActOnBehalfOfOtherIdentity
(Computer)
GenericWrite
(User/Computer)
msDS-KeyCredentialLink
(User/Computer)
servicePrincipalName
(User/Computer)
userAccountControl
(User)
- AS‑REP roast - flip preauth off (delegation flags typically need
SeEnableDelegationPrivilege
)
msDS-AllowedToActOnBehalfOfOtherIdentity
(Computer)
msDS-SupportedEncryptionTypes
(User/Computer)
mS-DS-ConsistencyGuid
(User)
- Potential Entra ID account link hijack (if used as sourceAnchor)
altSecurityIdentities
(User)
WriteProperty: All properties
(User/Computer)
msDS-KeyCredentialLink
(User/Computer)
servicePrincipalName
(User/Computer)
userAccountControl
(User)
- AS‑REP roast - flip preauth off (delegation flags typically need
SeEnableDelegationPrivilege
)
msDS-AllowedToActOnBehalfOfOtherIdentity
(Computer)
msDS-SupportedEncryptionTypes
(User/Computer)
WriteProperty(msDS-KeyCredentialLink)
(User/Computer)
msDS-KeyCredentialLink
(User/Computer)
WriteDACL
(aka WriteDacl
) (User/Computer/Group/GPO/OU/Domain)
User/Computer object
Domain naming context (domainDNS object)
- Grant DS‑Replication Get‑Changes* → DCSync (hash dump, Golden)
Group object
- Grant
WriteProperty(member)
→ add self/others to privileged groups
GPO / OU
- Grant GPO edit or
gPLink
write → code exec via GPO / link malicious GPO
CN=AdminSDHolder,CN=System,<domain>
(container)
- Backdoor ACEs to persist control over protected accounts/groups
WriteOwner
(User/Computer/Group/GPO/OU/Domain)
Any object (take ownership first)
- Take ownership → add
WriteDACL
/GenericWrite
→ perform abuses above
- Persistence by planting backdoor ACEs after ownership
WriteProperty(member)
(Group)
member
(Group)
- Add self to
Domain Admins
/ server admin groups (immediate elevation)
- Add backdoor members for persistence
Replication rights (Domain NC)
DS‑Replication‑Get‑Changes
/ ...‑All
/ ...‑In‑Filtered‑Set
(Domain)
GPO control (GPO object) / WriteProperty(gPLink)
(OU/Site)
GPO (GenericWrite
/WriteDACL
) or OU/Site (gPLink
)
- Code execution via startup/logon scripts or scheduled tasks (GPO)
- Link malicious GPO to targeted OUs
CreateChild(Computer)
(OU)
OU (CreateChild: Computer
) (+ optional DeleteChild
/WriteProperty
on child)
Validated write: servicePrincipalName
(User/Computer)
servicePrincipalName
(User/Computer)
- Kerberoast within validation constraints
- SPN hijack (within validated rules)
Control access: ResetPassword
(AllExtendedRights
) (User)
resetPassword
(User)
- Force password change → account takeover
- (Not sufficient for Shadow Credentials by itself)
Control access: Read LAPS / gMSA secrets
ms‑Mcs‑AdmPwd
(Computer; classic LAPS)
- Read local admin password → lateral movement
msDS‑ManagedPassword
(gMSA object)
- Read managed password blob (requires specific control access right) → run as gMSA
msDS‑GroupMSAMembership
/ PrincipalsAllowedToRetrieveManagedPassword
(gMSA)
- Identify who can retrieve gMSA password → expand/prioritize targets
Special attribute (domain policy)
ms‑DS‑MachineAccountQuota
(Domain)
- If
> 0
, any authenticated user can AddComputer (within quota)
- Combine new machine with RBCD or relay to pivot
Additional notable privileges / attributes
WriteProperty(SIDHistory)
(User)
- Add privileged SIDs to self (rare/misconfig) → instant elevation
DNSAdmins / DNS server control
- Malicious DNS plugin or AD‑integrated DNS poisoning → credential capture/relay; potential DC code exec
Notes
- Scope matters: RBCD targets computer objects; Shadow Creds apply to user or computer objects.
- Delegation flags: Setting unconstrained or
TrustedToAuthForDelegation
typically requires SeEnableDelegationPrivilege
; object write alone may fail.
- Inheritance: Rights on a parent OU applying to descendant User/Computer objects affect all children (mass abuse potential).
- Attribute names:
msDS-*
and ms‑DS-*
are distinct ldapDisplayNames; use exact spelling (LDAP is case‑insensitive, but names differ).