domingo, 21 de mayo de 2017

Entonces... ¿Se pueden recuperar los archivos o no? - WannaCry


Estamos tan sólo a poco más de una semana de la primera infección de WannaCry, sin embargo, pasaron tantas cosas en el medio, tantos análisis, tantas hipótesis, tantos reversings, que parece haber sido mucho más tiempo… o al menos esa sensación tengo yo. Entre tanto que se habló durante la semana, han salido algunas herramientas para descifrar y/o recuperar los datos de los equipos afectados por WannaCry. La intención de esta nota, es aclarar varias cuestiones sobre estas herramientas, ya que incluso he visto hasta especialistas en TV decir que ya se había encontrado una forma 100% funcional de recuperar los archivos, y tal afirmación hoy por hoy, lamentablemente, no es del todo cierta.

Para poder entender cualquier mecanismo de recuperación que presentan tales herramientas, es necesario primero comprender cómo funciona WannaCry desde el punto de vista criptográfico.
Tras un análisis y esfuerzo de comprender esto, el martes pasado publiqué en twitter un diagrama que explica la implementación de algoritmos criptográficos que realiza WannaCry. A continuación expongo dicho diagrama y aprovecharé que aquí tengo más caracteres para explicarlo mejor :)




Al infectar un equipo, uno de los primeros pasos de WannaCry, es generar un par de claves RSA-2048 para ese sistema. Luego, por cada archivo que se pretende cifrar, el ransomware genera una clave random AES-128 y la utiliza para cifrar su contenido. La clave AES-128 es cifrada a su vez, por la clave pública de las llaves RSA-2048 generadas en un principio para ese equipo.

Entonces, el contenido del archivo original del usuario (sin cifrar) pasa a ser ahora un nuevo archivo con extensión “.WNCRY”, en cuya estructura se encuentra el contenido original cifrado y la clave AES-128 utilizada, cifrada por la RSA pública. Si quisiéramos descifrar cada archivo, necesitaríamos conocer la clave AES-128 random que se ha generado y utilizado para cada uno. Como esa clave está cifrada por la RSA pública, necesitamos la RSA privada de ese par, para finalmente obtener ese preciado dato.

Ahora bien, ese par de llaves RSA-2048 ¿No fue generado en el equipo infectado? Si y de hecho, allí se encuentra. La clave RSA pública es almacenada en un archivo denominado “00000000.pky” y la clave privada se encuentra en otro archivo, llamado “00000000.eky”. El detalle, es que ese archivo con la clave RSA privada, también está cifrado.

Existe un par de llaves RSA “Master”. La clave RSA pública master es utilizada para cifrar el archivo “00000000.eky”, la mala noticia es que la clave RSA privada master, la conocen sólo los autores del ransomware.

Cuando un usuario paga para recuperar sus documentos, el archivo “0000000.eky” es enviado a los autores y ellos lo descifran con la clave RSA master y entregan al usuario un nuevo archivo denominado “00000000.dky” que es la clave RSA-2048 privada, ahora descifrada.
Ese archivo es utilizado por el “@WanaDecryptor@.exe” para descifrar y restaurar los archivos del usuario.

Podríamos decir entonces, que la implementación de los algoritmos se ha utilizado correctamente. No tenemos debilidades de implementación donde por ejemplo, se utilice una misma clave hardcodeada en alguna parte del código del ransomware o algo que permita fácilmente obtener las claves utilizadas y recuperar los archivos. Entonces… ¿Cómo funcionan las herramientas que intentan recuperar los documentos cifrados?...

Una de ellas es “WanaKiwi” de Benjamin Delpy (@gentilkiwi) que busca en memoria los números primos utilizados para generar la clave privada RSA-2048, e intenta recalcularla. Esto se basa en una debilidad detectada al menos en Windows XP sobre la Cripto-Api de Windows. Entonces, si tienes XP y no has reiniciado el equipo luego de ser infectado, dicha tool es una excelente opción para tratar de recuperar tu información.

Algunas horas después los autores han confirmado que funciona también en Windows 7, pero en lo personal no estoy muy segura de eso, no sé qué otras circunstancias son necesarias para que funcione en ese entorno. Lo he probado en mi test lab con diferentes arquitecturas y samples, y no he logrado que funcione. No soy la única que le ha pasado, varios amigos han hecho sus propios test labs y tampoco han logrado que dicha tool les funcione en Windows 7, sin embargo, si ha funcionado en Windows XP (algo es algo :)).

Descarga de WanaKiwi:  https://github.com/gentilkiwi/wanakiwi/releases.

Por otro lado, la empresa para la que trabajo (Eleven Paths) presentó una herramienta llamada WannaCry File Restorer que puede ayudar a recuperar los archivos de un equipo infectado, si el mismo fue reiniciado/apagado/hibernado inmediatamente después de la infección.
¿Cómo funciona? Sencillamente, se aprovecha de un comportamiento “extraño” del ransomware cuando entra a la subrutina de eliminar los archivos originales (no cifrados) del sistema. WannaCry, en primer lugar, cifra todos los archivos de la forma en que explicamos anteriormente. Luego, mueve todos los archivos no cifrados a la carpeta “temp” (el usuario vé que sus archivos ya no están más, solo quedan los cifrados con extensión .WNCRY) y pasado un breve momento (entre 30 segundos y 1 minuto), el ransomware "vacía" la carpeta temp, o sea, elimina permanentemente los archivos originales.

Si el equipo fue reiniciado/apagado/hibernado inmediatamente después de que el ransomware copia todos los archivos originales a la carpeta temp, entonces WannaCry no llegará a tiempo de eliminarlos. Por ende, quedarán todos los archivos no cifrados en esa carpeta y podrán ser recuperados. La herramienta WannaCry File Restorer, automatiza el proceso de buscar los archivos en dicha carpeta y restaurarlos.

Aquí en un tweet, dejé un video que muestra esta herramienta en acción.
Descarga: https://github.com/ElevenPaths/Telefonica-WannaCry-FileRestorer-Desktop/releases.

En conclusión, si has sido infectado y tu equipo usa un Windows XP (y no has reiniciado) tienes grandes posibilidades de recuperar tu información con WanaKiwi. Si por el contrario, tienes un Windows más moderno y has reiniciado inmediatamente después de la infección, puedes utilizar el WannaCry File Restorer.

Si tu caso no se encuentra en ninguno de los anteriores, entonces, busca tu backup más reciente y sigue adelante :) no borres los archivos que te han cifrado, quizás algún día los autores del ransomware sean arrestados y se publiquen las llaves RSA master que pueden descifrar y recuperar la información de todos.

¡Nos leemos pronto!.
Author: Sheila A. Berta.
Tw: @UnaPibaGeek.
Web: www.semecayounexploit.com.

4 comentarios: