Explotando Eternalblue, una vulnerabilidad con mas de 7 años

diciembre 6, 2024

Eternalblue es una vulnerabilidad descubierta en el 2017 que afecta a los sistemas operativos Windows, propiamente al servicio SMB en la versión 1, utilizado para compartir recursos como directorios e impresoras en una red de datos, ya sea por grupo de trabajo o directorio activo. Esta vulnerabilidad tiene una criticidad de 8.8 en base al CVSSv3.1, se la encuentra bajo los identificadores CVE-2017-0144 o MS17-010 y permite una ejecución remota de código. Afecta a las versiones de Microsoft Windows Vista SP2; Windows Server 2008 SP2 y R2 SP1; Windows 7 SP1; Windows 8.1; Windows Server 2012 Gold y R2; Windows RT 8.1; y Windows 10 Gold, 1511, y 1607; y Windows Server 2016.

Esta vulnerabilidad se hizo famosa en su tiempo debido a la explotación masiva utilizada por la campaña de ramsomware WannaCry, que se aprovechaba de la presencia de la misma para maximizar el impacto del ataque, no afectando únicamente al equipo de computo que haya descargado y ejecutado el software malicioso sino que con la posibilidad de afectar a mas equipos dentro del mismo entorno de red.

Pero, ¿Por qué seguimos hablando de Eternalblue después de tantos años? A pesar de ser una vulnerabilidad ya con bastantes años, es una vulnerabilidad de fácil explotación debido a la cantidad de exploits públicos funcionales encontrados en internet y frameworks como Metasploit y brinda un escenario apropiado para aprender y repasar técnicas de explotación, además, actualmente aun encontramos equipos de computo vulnerables en entornos productivos, como podemos apreciar en el resultado del buscador shodan, encontrando mas de 400.000 servidores con acceso publico que podrian ser vulnerables a Eternalblue.

Explotando Eternalblue

Para la prueba y demostración trabajaremos en un entorno de laboratorio compuesto por una maquina virtual con Windows 7 SP1 y otra con sistema operativo Kali Linux, estas dos maquinas virtuales están conectada en la misma red para que tengan comunicación entre si.

Lo primero que debemos realizar desde Kali Linux será identificar si nuestro objetivo tiene habilitado la compartición de recursos, para ello podemos usar el escáner de puertos y servicios nmap, específicamente al puerto TCP 445 usado por el protocolo SMB.

nmap -sV -sC -p445 10.0.2.8

Como se aprecia en la anterior imagen, se evidencia que el puerto TCP 445 esta abierto y nos da información sobre el sistema operativo del objetivo, siendo específicamente Windows 7 Professional 7601 Service Pack 1, además, indica que esta trabajando con el grupo de trabajo WORKGROUP. Esta información permite deducir que tiene habilitado la compartición de archivos y recursos.

A continuación, usaremos el framework de explotación Metasploit, para ello desde Kali Linux ejecutamos el comando msfconsole.

Dentro de Metasploit buscamos los módulos asociados a eternalblue, para ello ejecutamos desde prompt search eternalblue.

En la anterior imagen se listan 3 exploits correspondientes a las líneas 0, 10 y 27, y dos módulos auxiliares en las líneas 19 y 24, antes de la explotación y obtener acceso a la maquina objetivo, vamos a verificar si nuestra maquina virtual con Windows 7 en verdad es vulnerable a eternalblue, para ello cargamos el modulo auxiliar auxiliary/scanner/smb/smb_ms17_010 con el comando use y configuramos el objetivo con el comando set rhosts.

Después de configurar el módulo, ejecutamos el mismo mediante el comando run y comprobamos el resultado obtenido.

Del resultado de la ejecución del módulo auxiliar, se aprecia que al parecer el objetivo es vulnerable, además, nos indica la arquitectura del sistema operativo del objetivo, lo cual nos servira para especificar el payload a utilizar. Ya confirmado que es vulnerable cargamos el exploit exploit/windows/smb/ms17_010_eternalblue con el comando use, cambiamos el payload windows/x64/meterpreter/reverse_tcp con el comando set payload, configuramos el objetivo con el comando set rhosts y la maquina atacante para la conexión reversa del payload con el comando set lhost

Lanzamos el exploit con el comando exploit y esperamos la conexión reversa establecida con el payload meterpreter.

Como se puede apreciar en la anterior captura de pantalla, se ha obtenido una sesión remota con privilegios elevados en la maquina objetivo mediante la explotación de la vulnerabilidad eternalblue.