Antes de ayer se cumplió un año del momento en el que saltó la alarma por la propagación del famoso ransomware Wannacry.
Vamos a tratar de conocer mas de cerca a este ransomware.

Todo comenzó el 12 de mayo del año pasado cuando empezaron a correr noticias sobre ataques a grandes empresas, Telefónica, Nissan y FedEx son algunas de ellas.
Otras empresas empujadas por el miedo se vieron obligadas a apagar sus ordenadores.
A las pocas horas de la propagación de WannaCry España ya había contabilizado 600 ataques y Europa aseguraba mas de 200.000 afectados, pero se dice que el objetivo real de este ataque eran países como Rusia, Ucrania y Taiwan.

WannaCry, que ha infectado a más de 230 000 de equipos Windows de todo el mundo, muchos de ellos pertenecientes a instituciones del gobierno y hospitales, es el ataque de ransomware más extendido en la actualidad. Pero, ¿Cómo funciona?

Primero vamos a ver cómo se iniciaba el ataque. El primer paso es la distribución del malware.

Este ransomware en un principio se pensó que era transmitido a través de correos de phising y por medio de la distribución de malware en paginas de descarga pero se ha concluido que el ataque se iniciaba con el escaneo de la vulnerabilidad Eternal Blue en puertos expuestos a internet.
Algo llamativo de este ataque también es la velocidad con la que se transmitió, ya que el momento en el que se infectaba el primer equipo, este comenzaba a infectar al resto de la red local. Esto es debido a que en si mismo WannaCry explota la vulnerabilidad de Eternal Blue en los equipos de su red local y posteriormente los infecta.

Eternal Blue (MS17-010)

Para tener una mejor visión de este ataque explotaremos Eternal Blue en una máquina ejemplo.

Obtenemos la ip de nuestra máquina objetivo que será la 10.10.10.40 y lo primero que hacemos sera escanear los puertos disponibles:

nmap -sV -T5 10.10.10.40



El nmap revela el puerto SMB (445) abierto entre muchas cosas. Este puerto es el que interesa para el Eternal Blue.
Analizamos mas a fondo este puerto con Metasploit:

Con la información recabada podemos saber que esta corriendo un SMB V1 Windows 7, por lo que es un posible candidato para el exploit.

Para explotarlo utilizaremos Metasploit:



Ahora ya explotado el Eternal Blue tendríamos acceso a una shell con permisos de administrador.

Encriptación

Una vez el equipo ha sido infectado el ransomware WannaCry procederá al cifrado de los datos.
Los datos son cifrados por medio de una clave con el algoritmo AES para luego plantear un rescate. La clave para descifrar los datos no está en el ordenador local, sino almacenada en la máquina desde la que se realiza el ataque.
Lo primero que hace el ransomware WannaCry es la creación de los archivos con los que va a trabajar, entre los que se encuentran las alertas sobre la encriptación de tus archivos, la iniciación de los servicios que usará posteriormente y además también modifica las claves de registro.
Por ejemplo ejecuta este comando para cambiar el fondo de pantalla desde las claves de registro:

reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d "<malware working directory>\@[email protected]" /f

Despues comenzara a buscar archivos por una lista de extensiones y procederá a encriptarlos, creando también un archivo de aviso en cada directorio donde ha encriptado.

Con el objetivo de tener mas claro como funciona este tipo de cifrado realizaremos una prueba local con algún archivo.

Este cifrado funciona con una clave aleatoria para cada infección con la que se cifra el archivo mediante el algoritmo AES, para generar esta clave en esta muestra usaré OpenSSL.
Posteriormente generaremos una clave PEM de 2048 bits y extraemos la clave pública de esta para cifrar la clave aleatoria generada.
Finalmente se cifra el archivo elegido

openssl rand -base64 48 > key.txt
openssl genrsa -out key.pem 2048 
openssl rsa -in key.pem -out key.pub.pem -outform PEM -pubout
openssl rsautl -encrypt -in key.txt -out key.enc -inkey key.pub.pem -pubin
openssl enc -aes-256-cbc -pass file:key.txt -in "ironHackerstest.txt" -out "$ironHackerstest.txt.WNCRY "

Tras estos comandos tendriamos el fichero ironHackerstest.txt cifrado, para descifrarlo necesitariamos tanto el fichero key.enc como la clave key.pem.

He realizado un script sencillo que automatiza el proceso de cifrado de un archivo(link), aqui podeis verlo en acción:



Despues de encriptar todos estos archivos procederá al borrado de los shadow disks para evitar la restauración desde estos.
Para ello utilizará el comando:

cmd.exe /c vssadmin delete shadows /all /quiet & wmic shadowcopy delete & bcdedit /set {default} bootstatuspolicy ignoreallfailures & bcdedit /set {default} recoveryenabled no & wbadmin delete catalog -quiet

Después lanzara un ejecutable WannaDecryptor.exe que es la famosa pantalla conocida por todo el mundo.



Una vez encriptados todos los ficheros objetivos, el ransomware WannaCry continuará su camino intentando explotar el resto de equipos de la red.
Si se analiza el trafico de la red se observara al equipo infectado enviar peticiones a los puertos 445 del resto de equipos.

El pago

Cuando nuestro equipo queda infectado y se ejecute el WannaDecryptor.exe nos pedirá que transfiramos cierta cantidad de dinero en criptomonedas para que nos entreguen la clave.

Pero, ¿Cómo se ocultan los ciberdelincuentes para recibir el dinero?

Para ello utilizan las criptomonedas, ya que son un sistema financiero descentralizado, muy dinámico y anonimizado. A esto hay que añadir que los rescates no suelen ser públicos y no son cantidades demasiado elevadas de dinero por lo que si se distribuyen los beneficios en diferentes monederos y se van moviendo para luego juntarlos puede llegar a ser imposible de rastrear.

Todas las comunicaciones de WannaCry viajan a través de la red tor. Los ciberdelincuentes gestionan los pagos y datos a través de dominios .onion e incluso algunos portales para el pago están ubicados en la Dark Net

Solución

La solución es la prevención.
El ransomware WannaCry este diseñado para explotar una vulnerabilidad que existe para Windows XP, Windows 7 y Windows Server 2008. Existe un parche para esta vulnerabilidad MS17-010 que esta disponible desde el 14 de Marzo de 2017 por lo que es importante aplicar el parche de seguridad.
También es importante guardar copia de seguridad de todos los archivos importantes, así en caso de infección podremos restaurar los datos para que todo quede en un susto.

En caso de que el equipo ya este infectado algunos optan por pagar, pero nadie asegura que tus datos se van a restaurar. Además al realizar estos pagos se financian las bandas de cibercriminales que hay detrás.
Ya se han liberado herramientas que pueden ayudar a desencriptar tus archivos y eliminar la infección. Telefónica liberó una guía que encontrarás aquí y también aquí puedes encontrar una herramienta de software libre que intenta deshacerse de WannaCry

Herramientas:
Metasploit, OpenSSL, WannaKey

Referencias:

¿Me ayudas a compatirlo?