Password Attacks and Credential Abuse
With ACL rights on user accounts you can force password changes, read managed passwords, and enable accounts — all without any exploit. This page covers credential-based privilege escalation using BloodyAD and impacket from a position of partial access.
Force password change — ForceChangePassword
If you have ForceChangePassword or GenericAll rights on an account, you can reset its password without knowing the current one. The account continues to function normally — only its password changes.
SMB 10.10.10.10 445 DC01 [+] corp.local\targetuser:NewPassword123! (Pwn3d!)
This modifies the target account's password — the legitimate owner will notice immediately if they try to log in. On exams this is acceptable. On real engagements, document the original password hash before changing it so you can restore it, or use shadow credentials instead which leave the password untouched.
gMSA password extraction
Group Managed Service Accounts store their current password blob in msDS-ManagedPassword. Only accounts listed in msDS-GroupMSAMembership can read it, but that ACL is often misconfigured. BloodyAD reads the blob and outputs the NT hash directly.
svc-backup$:aes256-cts-hmac-sha1-96:... svc-backup$:des-cbc-md5:... svc-backup$:::[NTHASH]:::
LAPS password extraction
LAPS stores auto-rotated local admin passwords in ms-MCS-AdmPwd on computer objects. Over-permissioned ACLs on computer OUs are common — any user with read rights on that attribute gets the current local admin password for that host.
LDAP 10.10.10.10 389 DC01 Computer: WS01$ LAPS Password: xK9#mP2!vL
Enable disabled accounts
Disabled accounts — especially old admin or service accounts — often retain group memberships and permissions from when they were active. Re-enabling them with a known password gives you access to whatever rights they still hold.
DCSync — dump all domain hashes
DCSync replicates the domain controller's password database by abusing DS-Replication rights. You need either Domain Admin, an account with explicit replication rights, or rights granted via the add dcsync BloodyAD command covered in ACL Abuse.
Administrator:500:aad3b435b51404eeaad3b435b51404ee:fc525c9683e8fe067095ba2ddc971889::: krbtgt:502:aad3b435b51404eeaad3b435b51404ee:7b5b518b1c33d1b22c3d0b70e76a6f90:::
The krbtgt hash is needed for Golden Ticket persistence. The Administrator hash can be used directly for Pass-the-Hash. For using these hashes for lateral movement see Pass-the-Hash and Pass-the-Ticket. For Golden Ticket persistence see Golden and Silver Ticket Persistence.
References
-
BloodyAD — GitHubgithub.com/CravateRouge/bloodyAD (opens in new tab)
set password, get object msDS-ManagedPassword, remove uac reference
-
gMSADumper — GitHubgithub.com/micahvandeusen/gMSADumper (opens in new tab)
Parses msDS-ManagedPassword blobs and outputs NT hashes
-
Impacket secretsdump — GitHubgithub.com/fortra/impacket (opens in new tab)
DCSync via DS-Replication rights
Was this helpful?
Your feedback helps improve this page.