Active — HackTheBox Machine Writeup
Anonymous SMB connection to the Replication share exposes policy XML files. Path traversing into SYSVOL policy GUID {31B2F340-016D-11D2-945F-00C04FB984F9} uncovers Groups.xml containing an encrypted cpassword.
Exploiting MS14-025, the Group Policy Preferences AES-256 key (disclosed by Microsoft) decrypts the cpassword in Groups.xml, granting valid credentials for the SVC_TGS service account.
Dumping domain graph metrics with bloodhound-python and processing them through our custom tool pharaohound. It instantly prioritizes Kerberoasting for the Administrator account with zero Neo4j database overhead.
Requesting a TGS ticket for active/CIFS:445 (Administrator SPN) via GetUserSPNs. Offline GPU cracking with hashcat recovers Ticketmaster1968 in 38 seconds, granting Domain Admin access via impacket-psexec.
Tool of Choice: All Active Directory graph parsing and attack-path detection in this walkthrough was executed using pharaohound — our high-performance BloodHound JSON analysis engine & AD collection framework. It eliminates the heavy Neo4j GUI stack and instantly surfaced Kerberoasting as the #1 priority attack vector.
Initial Inspection — Reconnaissance
::Host Discovery & DNS Configuration
Map the domain controller hostname in /etc/hosts:
::Full Port & Service Enumeration
We execute a high-speed full TCP port scan, followed by targeted service version detection:

::Exposed Service Profile
| Port | Service | Role / Significance |
|---|---|---|
| 88 | Kerberos | Authentication server — primary Kerberoasting target |
| 139 / 445 | SMB | Server Message Block — anonymous share access |
| 389 | LDAP | Lightweight Directory Access Protocol (active.htb) |
| 3268 | Global Catalog | Multi-domain AD directory queries |
And we talk about this section in our Active Directory Cheatsheet, detailing standard service signatures for Windows Server 2008 R2 SP1 Domain Controllers.
Extracting the GPP Password (SMB & SYSVOL)
::
Testing null session authentication across SMB shares using smbmap:
Key Observation: The Replication share allows anonymous read access. This share acts as a DFS-R mirror of SYSVOL across domain controllers, hosting Group Policy Objects (GPOs) and preference configurations.
::Locating Groups.xml
We traverse the Replication share for XML configuration files under the Default Domain Policy GUID {31B2F340-016D-11D2-945F-00C04FB984F9}:
Downloading Groups.xml:
::Decrypting cpassword (MS14-025)

The Groups.xml file contains an embedded encrypted cpassword attribute for active.htb\SVC_TGS:
Vulnerability Deep-Dive (MS14-025): Group Policy Preferences stored passwords in SYSVOL encrypted with AES-256-CBC. However, Microsoft published the 32-byte AES key publicly in official documentation. Using gpp-decrypt instantly recovers the plaintext.
Harvested Account Credentials:
::Credential Validation
We verify the credential set against SMB using crackmapexec:
::user.txt Capture
AD Analysis with pharaohound
::Collecting the Domain Graph
With valid service account credentials, we dump the Active Directory graph metrics using bloodhound-python:
::Rapid Analysis via pharaohound
And we now can use our tool pharaohound because of fast execution, zero Neo4j database setup overhead, and instant attack-path prioritization. We pass the generated JSON files directly into pharaohound:

Why pharaohound accelerates AD engagements: Instead of manually querying LDAP or navigating complex Neo4j Cypher graphs, pharaohound parsed all 7 BloodHound JSON files in milliseconds. It automatically identified that the account Administrator had an active SPN (active/CIFS:445) and flagged it as Priority #1 Kerberoasting Target.
Kerberoasting — The TGS Trapdoor
::Ticket Extraction
Any valid domain user can request a Kerberos Ticket Granting Service (TGS) ticket for any account with a Service Principal Name (SPN). Because TGS tickets are encrypted with the target account's NTLM hash, we can crack them offline.
And we talk about this section in our Active Directory Cheatsheet, outlining TGS ticket mechanics and hashcat modes.
We request the TGS ticket for Administrator using impacket-GetUserSPNs:

Captured TGS hash snippet (Kerberos 5 TGS-REP etype 23):
::Offline GPU Cracking
Cracking the hash using hashcat in Kerberos 5 TGS-REP mode (13100):
Recovered Administrator Credentials:
Proof of Verification & Flag Capture
::Domain Admin Validation
We confirm Administrator privileges across SMB:

The (Pwn3d!) indicator confirms local administrative control on the Domain Controller, translating to full Domain Admin authority across active.htb.
::SYSTEM Shell via PsExec
Executing remote code with impacket-psexec:
::Root Flag
References
- ▹pharaohound — BloodHound JSON Analysis Engine & AD Collection Framework
- ▹Active Directory Exploitation & Enumeration Cheatsheet
- ▹BadSuccessor: Active Directory Attack Vectors Log
- ▹Microsoft MS14-025 — GPP cpassword vulnerability
- ▹Kerberoasting — Attack & Defense (SpecterOps)
- ▹HackTheBox — Active machine page

Red Team Consultant · Penetration Tester · Bug Bounty Hunter
Offensive security professional with 250+ vulnerabilities reported across 50+ organizations including Atlassian, Vimeo, and AT&T. Sharing research, tools, and field notes.