Gabriel Tello

Máquina Eternal (EternalBlue)

Fecha de publicación: | 1100 palabras | 6 mins

Esta es una guía paso a paso presentada en formato de reporte profesional sobre una prueba de penetración realizada en una máquina Windows 7.

Resumen ejecutivo

Durante la prueba de penetración se descubrió que la máquina Eternal (Windows 7) era vulnerable al exploit EternalBlue (CVE-2017-0144). Este exploit permite a un atacante no autenticado ejecutar código arbitrario de forma remota y obtener control total del sistema. La vulnerabilidad fue utilizada para comprometer la máquina Eternal, lo que permitió acceso a datos sensibles y a otros sistemas en la red. Este informe detalla el proceso de explotación, los hallazgos y las recomendaciones para mitigar esta vulnerabilidad.

Reconocimiento

Se realizó un escaneo de red utilizando la herramienta nmap para identificar puertos y servicios abiertos en la máquina.

comando nmap

Figura 1: Comando nmap y resultados

Resultado del reconocimiento

Sistema Operativo Dirección IP Puertos Abiertos
Windows 7 x64 SP 1 192.168.1.167 135, 139, 445, 49152-49158

Verificación de vulnerabilidad

El servicio SMB ejecutándose en el puerto 445 en una máquina Windows 7 indica una potencial vulnerabilidad al exploit EternalBlue. Un escaneo adicional con un script de nmap reveló que el sistema era efectivamente vulnerable a CVE-2017-0144 (EternalBlue).

confirmación de nmap

Figura 2: Confirmación de vulnerabilidad EternalBlue

Explotación

Para explotar la vulnerabilidad se utilizó el framework Metasploit. Se seleccionó y configuró el módulo EternalBlue.

configuración de exploit

Figura 3: Configuración del exploit

Se configuró un payload de tipo reverse shell, lo que permitió obtener una conexión remota con control total del sistema. El exploit proporcionó privilegios SYSTEM, por lo que no fue necesaria una elevación adicional.

ejecución de exploit

Figura 4: Resultado de la ejecución del exploit

Post-Explotación

Una vez establecida la sesión de meterpreter, se procedió a realizar actividades de post-explotación.

enumeración de usuarios

Figura 5: Enumeración de usuarios

Extracción de credenciales

Se utilizó la herramienta Mimikatz mediante el módulo kiwi para extraer credenciales como contraseñas y hashes del sistema operativo Windows.

ejecución de mimikatz

Figura 6: Ejecución de Mimikatz

El archivo SAM (Security Account Manager) almacena los hashes de contraseñas de usuarios locales en un sistema Windows. Utilizando el comando kiwi_cmd lsadump::sam en meterpreter, se extrajo el archivo SAM que contiene los hashes NTLM de las contraseñas de los usuarios locales.

dump de hashes de usuarios locales

Figura 7: Dump de hashes de usuarios locales

Uso de credenciales cifradas

Una vez obtenidos los hashes de contraseñas, se utilizó la técnica de Pass The Hash (PTH) para acceder a otros recursos del sistema sin necesidad de conocer las contraseñas en texto plano. Este método permite autenticarse y moverse lateralmente entre sistemas Windows, utilizando únicamente el hash de la contraseña. Se utilizó la herramienta crackmapexec para autenticarse remotamente en otros sistemas o servicios de la red usando el hash de un usuario.

ejecución de crackmapexec

Figura 8: Ejecución de CrackMapExec

Persistencia

A través de la persistencia, se puede mantener el acceso a un sistema comprometido incluso si este se reinicia, lo cual permite restablecer una conexión en el futuro sin tener que repetir el proceso inicial de explotación. En este caso, se configuró un script de persistencia con el módulo windows/local/persistence_service, el cual genera y carga un ejecutable en el host remoto y luego lo convertirá en un servicio persistente.

ejecución de persistencia

Figura 9: Ejecución de servicio de persistencia.

Al ejecutar este módulo, meterpreter instala un servicio en el sistema comprometido que establece una conexión saliente de tipo reverse shell cada vez que se reinicia el sistema. Esto significa que, incluso si un atacante pierde la conexión inicial, este puede recuperar el acceso sin realizar de nuevo el exploit, siempre que el sistema esté encendido y el atacante esté escuchando en el puerto configurado.

Comprobación de persistencia

Para comprobar que la persistencia fue ejecutada correctamente, se cerraron las sesiones de meterpreter abiertas.

cierre de sesiones

Figura 10: Cierre de sesiones

Se creó un resource script para automatizar tareas repetitivas en Metasploit, facilitando la reconexión a la máquina comprometida con tan solo ejecutar el script.

resource script para metasploit

Figura 11: Resource script para Metasploit

Una vez ejecutado el script, se observa cómo se configura el payload y el módulo automáticamente para consecuentemente conectarse a la máquina, comprobando que la persistencia funciona correctamente.

ejecución del resource script

Figura 12: Ejecución del resource script

Limpieza de la persistencia

Para realizar la limpieza del sistema atacado, se cerró y eliminó el servicio creado llamado lsass1 mediante comandos sc.exe, lo que garantiza la eliminación del servicio de persistencia en el sistema. Además, se utilizó taskkill.exe para terminar a la fuerza el proceso asociado sdvj.exe, que estaba vinculado al payload de persistencia.

limpieza de persistencia

Figura 13: Limpieza de persistencia

Después de completar estos pasos, la sesión de Meterpreter se cerró de forma segura, lo que confirmó la finalización de la conexión. De esta manera se eliminaron todos los artefactos del mecanismo de persistencia, sin dejar puntos de acceso no autorizados en el sistema.

Banderas

Se procedió a realizar la búsqueda de las banderas con el comando search en meterpreter y se usó el comando type para mostrar su contenido.

ejecución de comando type

Figura 14: Ejecución del comando type

De esa manera se encontraron las dos banderas, las cuales son:

Bandera Hash
bandera1.txt 0ef3b7d488b11e3e800f547a0765da8e
bandera2.txt a63c1c39c0c7fd570053343451667939

Herramientas utilizadas

Herramienta Descripción
Nmap Utilizado para el escaneo inicial del sistema y para identificar puertos y servicios abiertos en el objetivo.
Metasploit Empleado para explotar la vulnerabilidad EternalBlue (CVE-2017-0144) con un payload de tipo reverse shell.
Mimikatz/kiwi Usado dentro de Meterpreter para la extracción del hash de credenciales del sistema Windows.
CrackMapExec y PTH Permitió movimiento lateral en la máquina sin necesidad de contraseñas en texto plano, usando solo hashes.
Persistencia con Metasploit Configuración de persistencia mediante módulo windows/local/persistence_service para garantizar acceso continuo.

Conclusión

La vulnerabilidad EternalBlue explotada en la máquina Eternal muestra serios problemas de seguridad en su infraestructura, permitiendo a un atacante no autenticado obtener un control total del sistema. Una vez comprometido el sistema, se logró capturar credenciales, obtener acceso a recursos adicionales y configurar persistencia, demostrando así la facilidad con la que se pueden realizar movimientos laterales y mantener acceso prolongado sin detección.

Recomendaciones

Para mitigar esta vulnerabilidad, se recomienda desactivar el protocolo SMBv1, para prevenir futuras explotaciones de tipo EternalBlue. En casos como este, es importante aislar los sistemas críticos en segmentos de red protegidos mediante VLANs y configuraciones robustas de firewall, además de restringir el tráfico SMB en el puerto 445 solo a lo necesario, monitorizando continuamente las conexiones sospechosas.

Para lograr una defensa a profundidad, se sugiere implementar soluciones IDS/IPS que detecten intentos de explotación y utilizar un SIEM para consolidar y analizar logs, facilitando así la detección temprana de amenazas.

Finalmente, se recomienda migrar de Windows 7 a una versión más actual, como Windows 10, para beneficiarse de mejoras de seguridad y soporte continuo, lo que reforzará la protección de la infraestructura.

#Eternalblue   #Windows   #Metasploit   #Mimikatz   #Reverse-Shell   #Persistence   #Pentesting   #Writeup  

Responder a este post por correo ↪