Puppy
Executive summary — Puppy is a Medium Active Directory box in assume-breach mode (
levi.james:KingofAkron2025!) with a very instructive ACL chain. BloodHound reveals levi has WriteMember over the DEVELOPERS group: we add ourselves and theDEVshare (previously NO ACCESS) becomes readable, holding a KeePass KDBX4 database cracked withkeepass4brute. Inside there are 5 saved passwords; a spray confirmsant.edwards, who has GenericAll overadam.silver— resetting its password leaves the account disabled, requiring manual re-enabling via LDAP. Fromadam.silverwe reach a backup holdingsteph.cooper's credentials (a dead end in BloodHound) and two DPAPI blobs that, decrypted with that account's real password, revealsteph.cooper_adm— an account with DCSync rights that lets us dump Administrator's hash and perform Pass-the-Hash.
| Platform | Hack The Box |
| Operating system | Windows |
| Difficulty | Medium |
| Status | Retired |
| Target IP | 10.10.11.70 |
Attack map
[assume-breach] levi.james : KingofAkron2025!
|
[BloodHound] levi.james -- WriteMember -- DEVELOPERS (DEV share: NO ACCESS)
+-> bloodyAD add groupMember DEVELOPERS levi.james -> DEV readable
|
[DEV] recovery.kdbx (KeePass KDBX4) -- keepass2john does not support KDBX4
+-> keepass4brute + rockyou.txt -> "liverpool"
+-> KeePassXC reveals 5 passwords -> netexec spray -> ant.edwards:Antman2025!
|
[BloodHound] ant.edwards -- GenericAll -- adam.silver
+-> bloodyAD set password Abc123456! (account ends up disabled, UAC 66050)
+-> ldapsearch confirms UAC=66050 -> ldapmodify UAC=66048 -> re-enabled
|
[adam.silver] C:\Backups\site-backup-2024-12-30.zip -> nms-auth-config.xml.bak
+-> steph.cooper:ChefSteph2025! -- BloodHound: no exploitable ACLs (dead end)
+-> DPAPI masterkey blob (adam.silver desktop) + credential blob (steph.cooper profile)
+-> exfiltrated via impacket-smbserver -> impacket-dpapi (with steph.cooper key)
|
[steph.cooper_adm] FivethChipOnItsWay2025! -- DCSync (BloodHound)
+-> impacket-secretsdump -> Administrator NTLM hash
+-> evil-winrm Pass-the-Hash
|
[DOMAIN ADMIN] root.txt
1. Reconnaissance and enumeration
nmap -sC -sV 10.10.11.70
53/tcp open domain
88/tcp open kerberos-sec
135/tcp open msrpc
139/tcp open netbios-ssn
389/tcp open ldap
445/tcp open microsoft-ds
464/tcp open kpasswd5
593/tcp open ncacn_http
636/tcp open ldaps
3268/tcp open ldap
5985/tcp open http (WinRM)
That specific handful of ports (Kerberos, LDAP/LDAPS, SMB, WinRM) is the fingerprint of a Domain Controller — the domain is PUPPY.HTB. The challenge starts in assume-breach mode, with the credential levi.james:KingofAkron2025! already provided, so we skip straight to authenticated enumeration. Before touching Kerberos we sync the clock against the DC (ntpdate puppy.htb) and add the domain to /etc/hosts — clock drift alone is enough to break Kerberos authentication.
rpcclient -U levi.james%KingofAkron2025! 10.10.11.70 -c enumdomusers
Administrator
Guest
krbtgt
levi.james
ant.edwards
adam.silver
jamie.williams
steph.cooper
steph.cooper_adm
RPC enumeration reveals the full list of domain accounts — including ant.edwards, adam.silver, steph.cooper, and steph.cooper_adm, all of which show up later in the chain.
smbmap -H 10.10.11.70 -u levi.james -p 'KingofAkron2025!'
ADMIN$ NO ACCESS
C$ NO ACCESS
DEV NO ACCESS
IPC$ READ ONLY
NETLOGON READ ONLY
SYSVOL READ ONLY
DEV is the only non-standard share name — and precisely the one listed as NO ACCESS: we need additional permissions, which we go look for in the domain's relationship graph.
Resumen ejecutivo — Puppy es un Medium de Active Directory en modo assume-breach (
levi.james:KingofAkron2025!) con una cadena de ACLs muy didáctica. BloodHound revela que levi tiene WriteMember sobre el grupo DEVELOPERS: nos auto-añadimos y el shareDEV(antes NO ACCESS) se vuelve legible, donde hay un KeePass KDBX4 quekeepass4brutecrackea. Dentro hay 5 contraseñas guardadas; un spray confirmaant.edwards, que tiene GenericAll sobreadam.silver— al resetear su contraseña la cuenta queda deshabilitada y hay que reactivarla manualmente vía LDAP. Desdeadam.silverllegamos a un backup con credenciales desteph.cooper(un callejón sin salida en BloodHound) y a dos blobs DPAPI que, descifrados con la contraseña real de esa cuenta, revelansteph.cooper_adm— cuenta con DCSync que permite volcar el hash de Administrator y hacer Pass-the-Hash.
| Plataforma | Hack The Box |
| Sistema operativo | Windows |
| Dificultad | Medium |
| Estado | Retired |
| IP objetivo | 10.10.11.70 |
Mapa del ataque
[assume-breach] levi.james : KingofAkron2025!
|
[BloodHound] levi.james -- WriteMember -- DEVELOPERS (share DEV: NO ACCESS)
+-> bloodyAD add groupMember DEVELOPERS levi.james -> DEV legible
|
[DEV] recovery.kdbx (KeePass KDBX4) -- keepass2john no soporta KDBX4
+-> keepass4brute + rockyou.txt -> "liverpool"
+-> KeePassXC revela 5 contraseñas -> netexec spray -> ant.edwards:Antman2025!
|
[BloodHound] ant.edwards -- GenericAll -- adam.silver
+-> bloodyAD set password Abc123456! (cuenta queda deshabilitada, UAC 66050)
+-> ldapsearch confirma UAC=66050 -> ldapmodify UAC=66048 -> reactivada
|
[adam.silver] C:\Backups\site-backup-2024-12-30.zip -> nms-auth-config.xml.bak
+-> steph.cooper:ChefSteph2025! -- BloodHound: sin ACLs explotables (dead end)
+-> blob DPAPI masterkey (escritorio adam.silver) + credential (perfil steph.cooper)
+-> exfiltrados via impacket-smbserver -> impacket-dpapi (con la clave de steph.cooper)
|
[steph.cooper_adm] FivethChipOnItsWay2025! -- DCSync (BloodHound)
+-> impacket-secretsdump -> hash NTLM de Administrator
+-> evil-winrm Pass-the-Hash
|
[DOMAIN ADMIN] root.txt
1. Reconocimiento y enumeración
nmap -sC -sV 10.10.11.70
53/tcp open domain
88/tcp open kerberos-sec
135/tcp open msrpc
139/tcp open netbios-ssn
389/tcp open ldap
445/tcp open microsoft-ds
464/tcp open kpasswd5
593/tcp open ncacn_http
636/tcp open ldaps
3268/tcp open ldap
5985/tcp open http (WinRM)
El puñado de puertos (Kerberos, LDAP/LDAPS, SMB, WinRM) es la huella dactilar de un Domain Controller — el dominio es PUPPY.HTB. El reto empieza en modo assume-breach, con la credencial levi.james:KingofAkron2025! ya proporcionada, así que saltamos directos a la enumeración autenticada. Antes de tocar Kerberos sincronizamos la hora con el DC (ntpdate puppy.htb) y añadimos el dominio a /etc/hosts — un desfase de reloj hace fallar cualquier autenticación Kerberos por sí solo.
rpcclient -U levi.james%KingofAkron2025! 10.10.11.70 -c enumdomusers
Administrator
Guest
krbtgt
levi.james
ant.edwards
adam.silver
jamie.williams
steph.cooper
steph.cooper_adm
La enumeración por RPC revela el listado completo de cuentas de dominio — entre ellas ant.edwards, adam.silver, steph.cooper y steph.cooper_adm, que irán apareciendo a lo largo de la cadena.
smbmap -H 10.10.11.70 -u levi.james -p 'KingofAkron2025!'
ADMIN$ NO ACCESS
C$ NO ACCESS
DEV NO ACCESS
IPC$ READ ONLY
NETLOGON READ ONLY
SYSVOL READ ONLY
El share DEV es el único con nombre no estándar — y justo el que aparece como NO ACCESS: necesitamos permisos adicionales, que buscamos en el grafo de relaciones del dominio.
This content is Root Access only. Everything else on the site — the free tier, the whole public library — stays open.
See Root Access plansNo account? Create one free then upgrade from your console.
Este contenido es solo para Root Access. Todo lo demás del sitio — el nivel gratuito, toda la biblioteca pública — sigue abierto.
Ver planes de Root Access¿Sin cuenta? Crea una gratis y luego mejora desde tu consola.