domingo, 14 de mayo de 2017

WannaCry - Kill Switch o No Kill Switch?


Sin dudas, este fue un fin de semana muy particular. Tal como dije en este Tweet, cuando todo ocurrió, me encontraba dando una charla en CharruaCon, un evento en la ciudad de Montevideo – Uruguay.
Desde allí, no había mucho que pudiera hacer… esa misma noche regresé a Buenos Aires pero acarreando una gripe que no me ha dejado dedicarle el tiempo que me hubiese gustado a este tema.

Sin embargo, mi amiga Gaby (@rove4ever) ha estado aquel viernes aquí y escribió una nota muy interesante sobre este asunto. Esta vez, escribo yo algunas cosas más, de lo que pude analizar sobre los samples de WannaCry que estuve mirando. Aunque tal como mencioné, debido a la gripe bastante molesta que tengo, no es mucho lo que he podido ver.

Cuando en el día de ayer por fin pude meterme en el tema, las discusiones giraban entorno al Kill-Switch de WannaCry. Tal como se explicó en la nota anterior, “Kill-Switch” es una medida anti-sandbox, donde el ejecutable se basa en la respuesta del intento de conexión a una URL para determinar si se encuentra dentro de un sandbox o no. Esto es porque, en un entorno de sandbox, todas las URLs responden como si estuvieran registradas; entonces, si el ejecutable intenta conectarse a un dominio que sabe que realmente no existe, y sin embargo la respuesta es positiva, sabrá que se encuentra en un sandbox y evitará ejecutar su código malicioso.

Los primeros samples de WannaCry que se propagaron, realizaban el kill-switch consultando la siguiente URL: iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com
Claramente, una URL que para ese entonces, nadie había registrado. Si el ejecutable recibía una respuesta positiva al intentar conectarse, entonces, definitivamente se encontraba dentro de un sandbox y el código del ransomware nunca se ejecutaba.

Para ver esto, podemos abrir uno de los primeros samples, por ejemplo el 6a1da955b2eb6be429b2e3b4b515436f5f76fd62802d4e2aa79dc63770d80be0 y dirigirnos a la RVA 004313D0.



Allí se puede identificar la URL utilizada para el “Kill-Switch”.
Como bien ya se comentó en numerosas publicaciones, dicha URL fue finalmente registrada, evitando que una gran cantidad de otros equipos fueran infectados. Ante esta situación, un nuevo sample empezó a circular, en donde se modificaron 2 bytes de ese dominio, ahora la URL era: ifferfsodp9ifjaposdfjhgosurijfaewrwergwea.com

Si consultamos el sample 32f24601153be0885f11d62e0a8a2f0280a2034fc981d8184180c5d3b1b9e8cf y nos dirigimos a la RVA 004313D0 podemos ver dicha modificación.


Después de esto, se comenzó a hablar sobre una variante que no realizaba un Kill-Switch, fue Costin de Kaspersky el primero en decir que tenía samples sin este mecanismo; y sobre eso, “thehackernews” escribió un artículo titulado “WannaCry 2.0 arrives”. Sin embargo, algunas horas después Costin se retractó llegando a la conclusión de que aún no había versiones de WCry sin Kill-Switch.

Pasadas algunas horas más, el investigador Matthieu Suiche muestra un sample con hash 07c44729e2c570b37db695323249474831f5861d45318bf49ccf5d2f5c8ea1cd que se encuentra patcheado para no ejecutar un kill-switch.

Al conseguir dicho sample, consulté la RVA 004313D0 y efectivamente el código del Kill-Switch se había "patcheado" reemplazando su código por 0’s.



Sin embargo, esta versión patcheada de WannaCry funciona parcialmente. Por lo tanto, al menos hasta este momento (noche del domingo), podríamos decir que no se ha encontrado una versión sin Kill-Switch de WannaCry que esté funcionando y propagándose correctamente.

Veremos como continua la novela, por el momento, quería arrojar aclaraciones sobre el asunto del Kill-Switch :-) Saludos!

Author: Sheila A. Berta.
Tw: @UnaPibaGeek
Web: www.semecayounexploit.com.

No hay comentarios.:

Publicar un comentario