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.

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

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

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.

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.