oscp+ prep, hackthebox administrator speedrun
An end-to-end Active Directory speedrun on HackTheBox Administrator. ACL chaining from Olivia all the way to Domain Admin via GenericAll, ForceChangePassword, AS-REP roast, FTP creds, and a final DCSync.
Active Directory is a huge slice of OSCP+. This is a full ACL-chain speedrun on HackTheBox Administrator, where we land as Olivia, walk through GenericAll, ForceChangePassword, WriteOwner-style abuses, an AS-REP roast, an FTP-stashed Password Safe, and finish with a DCSync to dump the domain.
Recon and initial foothold
We're handed credentials, just like in the OSCP, so we skip straight to validation. Run a port scan ahead of time so you don't waste minutes during the exam.
Confirmed. Olivia is also a remote management user, so:
We have a shell as Olivia.
Enumerate ACLs
Pull every LDAP object and relationship into clean HTML:
For ACL hunting, PowerView is faster than BloodHound when you already know what you're looking for. Pull it down to the box:
Then the magic function:
This dumps every ACE set on a non-default object. The chain we care about:
- Ethan has extended rights on the DC (DS-Replication, i.e. DCSync candidate).
- Alesy has
GenericWriteon Ethan. - Michael has extended rights on Benjamin.
- Olivia has
GenericAllon Michael.
Some of those extended rights show up as raw GUIDs. Resolve them:
Olivia → Michael is GenericAll. Michael → Benjamin is User-Force-Change-Password. Ethan has DS-Replication-Get-Changes (DCSync). Now we just need a path from Benjamin to Emily, then Emily to Ethan.
Olivia → Michael (GenericAll)
GenericAll lets us rewrite Michael's LDAP record any way we want. Instead of just resetting his password, we'll do a targeted AS-REP roast: flip the DONT_REQ_PREAUTH flag on the account.
Now request the AS-REP hash:
Crack it (or, if it's not in rockyou, just reset Michael's password):
Mine wasn't crackable, so:
Validate:
Green plus, we own Michael.
Michael → Benjamin (ForceChangePassword)
Same move, different right. User-Force-Change-Password only allows password resets:
Owned.
Benjamin → Emily (Password Safe over FTP)
Looking at Benjamin's group membership, he's in Share Moderators. Combine that with the unusual FTP service on this AD box:
Inside is backup.psafe3, a Password Safe vault. Hashcat has a mode for these:
Master password recovered. Open the vault on Kali:
Inside, Emily Rodriguez's credentials. Validate:
Owned.
Emily → Ethan (GenericWrite, targeted Kerberoast)
Emily has GenericWrite, not GenericAll, so we can't just reset Ethan's password. The trick is to set an SPN on his account, which makes it Kerberoastable.
Now request the TGS:
Crack:
limpbiscuit. Validate:
Owned.
DCSync
Ethan has DS-Replication-Get-Changes and DS-Replication-Get-Changes-All. That's everything we need:
Administrator NT hash drops out. Pass-the-hash and we're done:
whoami → admin\administrator.
Takeaways
- Map the chain before you execute. Drawing the graph makes the rest mechanical.
GenericAllis total control of the LDAP record (password reset, UAC flip, anything).ForceChangePasswordis only password reset.GenericWritelets you write attributes (like SPN) but not reset the password directly.- Targeted AS-REP (set
DONT_REQ_PREAUTH) and targeted Kerberoast (set an SPN) are the two big "use the right write to get a crackable hash" tricks. Keep them in muscle memory. - DCSync is just a pair of replication extended rights. Watch for them in
Find-InterestingDomainAcl.
// share