martes, 4 de julio de 2017

Hackear Windows 7 & 2008 R2 con Eternalblue y Doublepulsar

El viernes 14 de Abril - The Shadow Brokers publicó una gran cantidad de herramientas pertenecientes al Arsenal de la NSA. Se puede encontrar dichas herramientas en el repositorio de Github de misterch0c.

Por qué Eternalblue & Doublepulsar? La respuesta es sencilla, ya que entre los exploits que se publicaron, Eternalblue es el único que se puede utilizar para atacar sistemas Windows 7 y Windows Server 2008 R2 sin necesidad de autenticación. Por lo que, Eternalblue es el exploit que nos permitirá aprovecharnos de un fallo de seguridad en el protocolo SMB para que, posteriormente, Doublepulsar pueda inyectar remotamente, por ejemplo, una DLL, ya que existen otras posibilidades.


Figura 3: Lista de exploits para Windows publicados por Shadowbroker

FuzzBunch: Loader de binarios

Analizando FuzzBunch te das cuenta que se genera una serie de ficheros XML asociados a un proyecto en curso y que esos ficheros XML son los que tienen los parámetros y opciones con las que se lanzan los binarios, en este caso, exploits o payloads. El primer objetivo es entender bien los archivos XML, ver qué era lo necesario y poder ejecutar el binario sin utilizar FuzzBunch.

De los tres ficheros XML que se generan, vemos que el importante es el de InConfig o configuración de entrada, ya que es el que el exploit lee para poder ejecutarse. En la imagen siguiente puede verse como, al lanzar el binario por sí solo, no se encuentra el fichero XML de configuración y el exploit no es lanzado. Sin embargo, cuando le ponemos el fichero XML correctamente, el binario es lanzado con la configuración indicada en el archivo de configuración InConfig.


Figura 4: Ejemplo sn y con el fichero InConfig.xml

En la siguiente imagen, se puede ver el contenido del fichero InConfig.XML para Eternalblue. En él se indican los tipos de datos, las posibilidades y los valores que tienen los atributos o variables.

Figura 5: Contenido de InConfig.XML

Analizando esto se llega a una conclusión: Podríamos hacer un módulo de Metasploit que implemente la configuración del XML de Eternalblue, posteriormente el de Doublepulsar que será muy similar, generar una DLL con el Payload que el usuario elija en Metasploit y lanzar ambos binarios, el exploit y el paylaod.


Otro problema: ¿Windows?

Por el camino surgió otro problema, y es que el exploit Eternalblue y Doublepulsar son binarios para Windows. ¿Quién utiliza Metaspoit en Windows?. Generalmente Metasploit se utiliza en sistemas Linux.

La respuesta aquí no se hizo esperar, nos toca tener Wine para que el módulo de Metasploit lo utilice y pueda lanzar los binarios con sus configuraciones. Hay que tener en cuenta que para que el módulo funcione correctamente debemos tener instalado Wine con compatibilidad para binarios de 32 bits. 


Detectar víctimas vulnerables a Eternalblue

El pasado martes 17 de Abril se publicó un módulo auxiliary de Metasploit que permite detectar en una red si alguno de los equipos es vulnerable al CVE-2017-010, es decir, a Eternalblue. Decidimos probar el módulo y ver un poco cómo estaba hecho y la sensación es que la liberación del código del exploit está muy cerca.

Figura 6:  Uso del modulo auxiliary (cve-2017-010) en Metasploit

Si eres administrador de redes te recomendamos que apliques los parches de seguridad para esta vulnerabilidad lo antes posible en las máquinas de tu empresa o dominio, ya que es una vulnerabilidad crítica que podría ser explotada por cualquiera, al no requerir la interacción por parte del usuario, solamente disponer de conectividad con la máquina.


Módulo para Metasploit: eternalblue_doublepulsar o eternal11

El algoritmo utilizado para este caso os lo dejo aquí en un sencillo pseudocódigo:
• Disponemos de un SKELETON del fichero XML de Eternalblue. Este SKELETON contiene una serie de palabras clave, por ejemplo %RPORT%, %RHOST%, %TIMEOUT%.
Figura 7: Skeleton.XML de Eternalblue
• Cada vez que invocamos la función exploit este fichero es copiado con el nombre Eternalblue-2.2.0.xml, el cual es el que utiliza el binario para leer los valores.
• Una vez copiado el fichero con el nombre original, se sustituye en el fichero las palabras clave por los valores que el usuario introduzca en los atributos de Metasploit. Por ejemplo, si el usuario configura RHOST apuntando a la dirección 10.0.0.10, el campo %RHOST% del fichero XML será sustituido por la dirección IP real. Así ocurre con todos los campos. 
• Ocurre igual con el XML de Doublepulsar. Tenemos un SKELETON dónde se irán sustituyendo los valores, en este caso los valores personalizables son: %RHOST%, %RPORT%, %TIMEOUT%, %TARGETARCHITECTURE%, %DLLPAY%, %PROCESSINJECT%. 
• A continuación, se genera una DLL con el Payload que se haya setteado con Set PAYLOAD. La DLL se almacenará dónde se indique en el atributo PathDLLInjection del módulo. 
• Después, se lanzan los binarios: primero Eternalblue y después Doublepulsar.
El módulo desarrollado tiene las siguientes opciones avanzadas:
• TargetArchitecture: Podrá elegirse entre x86 y x64. Le indica a Doublepulsar la arquitectura dónde inyectará la DLL. 
• PathEternalBlue: Indica la ruta dónde se encuentra el binario de Eternalblue. Hay que recordar que el sistema, si estamos en Linux, debe contar con Wine. Por otro lado, hay que tener cuidado con las dependencias que tiene el binario, librerías en x86 o x64, tienen que ser accesibles por el binario, y por Wine en el caso de Linux. 
• PathDoublePulsar: Indica la ruta dónde se encuentra el binario de Doublepulsar. 
• PathDLLInjection: Indica la ruta dónde se almacenará la DLL. Además, este path se incluirá en el XML de Doublepulsar para que el binario sepa de dónde cargarla. • NameDLL. Nombre que se le dará a la DLL. Por defecto es eternal11.dll. 
• ProcessInject: Proceso en el que se hará la inyección de la DLL.
Y por fin, cuando lancemos el módulo contra un sistema vulnerable al CVE-2017-010 de Windows 7 o Windows Server 2008R2 veremos algo parecido a esto que puedes ver en la imagen siguiente.

Figura 8: Explotación con éxito del módulo de eternal11 sobre un Windows vulnerable

Este módulo que pueda ayudar a auditar los sistemas Microsoft dónde Eternalblue sigue presente. En el siguiente vídeo tienes una demostración de este módulo funcionando.



Figura 9: PoC de explotación de Eternalblue y Doublepulsar con Metasploit

Y también la tienes disponible la PoC para los equipos Windows 7 y Windows Server 2008 R2 en versiones x64, que también funciona, como puedes ver en este vídeo.





Figura 10: PoC de explotación de Eternalblue y Doublepulsar con Metasploit
sobre Windows 7 y Windows Server 2008 R2 en versiones x64.

Actualiza lo antes posible todos tus sistemas Microsoft Windows vulnerables y protégete de las amenazas que han surgido con este leak de exploits.