lunes, 19 de junio de 2017

Esta semana, nuestro compañeros del laboratorio de ElevenPaths terminaba por publicar su análisis de WannaCry desde el punto de vista de los metadatos. Un enfoque no se había puesto encima de la mesa aún y que él ha querido tocar de forma minuciosa y que, desde el punto de la investigación forense ha dado muchos frutos en el pasado.

Figura 1: Un análisis de WannaCry desde el punto de vista de los metadatos

No quiero en este post repetir el sesudo análisis que han hecho mis compañeros del laboratorio, así que os invito a leerlo completamente para entender todos los detalles - que es donde suele estar el diablo - pero si os voy a hacer un resumen de los datos más importantes para que tengáis una lectura rápida.

Al atacante le gusta Messi

O puede que lo odie, lo cierto es que es analizando los metadatos de los ficheros RTF con los que WannaCry configura los textos en la pantalla en la que informa a la víctima que ha sido infectado, es el usuario que aparece.

Figura 2: Textos multi-idioma en WannaDecryptor
Puedes utilizar cualquier herramienta que extraiga metadatos de documentos RTF como nuestro MetaShield Clean-Up Online y analizar los resultados que se obtienen. En las cadenas se puede ver el nombre del usuario que es Messi.

Figura 3: Messi en el análisis de metadatos de los textos RTF de WannaCry con MetaShield Clean-Up Online

Este nombre de usuario es el que el atacante utilizó para crear o modificar con su editor de textos los ficheros RTF.

Utilización de Microsoft Word

Averiguar que el atacante utiliza Microsoft Word para crear los documentos RTF no es demasiado complejo, ya que, como sucede con muchas otras herramientas, Microsoft Word deja "Información Oculta" en los ficheros RTF. En las versiones más antiguas de Microsoft Office, es fácil localizar esta versión en el atributo \generator, pero no siempre aparece cuando son versiones modernas.

Figura 4: Especificación RTF para el campo Generator

Sin embargo, analizando cómo implementa las especificaciones RTF se puede ver que el Internal Version Number - donde se guarda información de la versión del documento -sigue el estilo de Microsoft Office. Generalmente es un campo de 5 dígitos, no muy bien documentado, y que otras herramientas utilizan de forma distinta. Para analizar los RTF utilizamos nuestra nueva herramienta MetaShield Clean-Up Online, donde se puede subir un documento en este formato y ver qué metadatos tiene.

Utiliza Microsoft Word en Coreano

El indicio que nos lleva a pensar a que con gran probabilidad es Microsoft Office y con idioma en Coreano es, precisamente, la forma en que se comporta Microsoft Word con los idiomas cuando se hace esa configuración.

Figura 5: Idiomas en el documento RTF de WannaCry

En los documentos RTF usados en WannaCry salen tres idiomas, como se puede ver en la siguiente imagen que son Coreano, Inglés y Árabe. El primero de ellos aparece en la etiqueta del metadato \deflang con el control \plain, lo que indica que es el de por defecto.  La cadena de metadatos exacta es:
\rtf1\adeflang1025\ansi\ansicpg1252\uc2\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe1042\
El que se utilice el inglés es porque si se configurar una versión de Microsoft Word con el idioma Coreano, éste software siempre añade el idioma inglés - es el comportamiento de Microsoft Office y podéis comprobarlo -. Además, el que aparezca el idioma árabe es porque existen versiones de Microsoft Office "EMEA" en que el idioma por defecto para versiones asiáticas, y se mete en el metadato \adeflangfe.

Figura 6: Selección de idioma por defecto en Microsoft Office

En definitiva, analizando el comportamiento de Microsoft Word con este tipo de documentos hace pensar en que el idioma por defecto es Corenao, a pesar de que los documentos estén escritos en Chino o Letón.

Tiempos de edición y número de revisiones

Una cosa interesante es que se puede analizar cuánto es el tiempo que ha tardado en editar cada uno de los ficheros RTF que se usa para todos los idiomas, y parece que se tomó mucho más tiempo para la versión de Chino Simplificado, y luego un poco menos para Inglés y Búlgaro, mientras que para el resto de los idiomas casi no dedica tiempo.

Figura 7: Tiempo de edición por tipo de fichero de idioma

En el caso de las revisiones sucede lo mismo. Chino es la que más revisiones cuenta, lo que parece que le pudo llevar a matizar más el texto de ese idioma.

Figura 8: Número de revisiones por tipo de documento

¿Esto quiere decir algo? Pues lo que quieras interpretar, pero está claro que el que escribió esos documentos parecía tener más interés - o conocimiento - del Chino tradicional que de otros idiomas.

Las posibles zonas GMT

Esta parte del análisis es de las más curiosas, ya que no solo tenemos la información de los metadatos de RTF y contamos también con los metadatos de los ficheros ZIP. En las versiones de WannaCry se utiliza un fichero ZIP para descargar el ransomware, y en él se almacena la fecha del último acceso con su propia zona horaria. Analizando las fechas del ZIP se puede concluir que:
2017-04-27 17:25 (hora local del atacante): El atacante crea b.wnry, un fichero BMP en segundo plano y el r.wnry, que contiene el fichero "readme". 
2017-05-09 16:57: El atacante crea otro zip con herramientas para conectarse a la red Tor y negociar el rescate. Se descargaron en el sistema de archivos del atacante a las 16:57, 09/05/2017, hora local del atacante, y son empaquetados e introducidos en un nuevo zip, s.wnry. 
2017-05-10 01:16: El atacante crea en su sistema c.wnry, que contiene dominios onion de la red Tor y una cartera para bitcoins. 
2017-05-11 15:59: Crea r.wnry que contiene instrucciones de borrado. 
2017-05-11 16:47: Edita b.wnry. 
2017-05-11 20:11: Edita c.wnry de nuevo. 
2017-05-11 20:13: Introduce b.wnry en el zip y lo comprime con contraseña. 
2017-05-12 02:22: Añade los ficheros EXE: u.wnry y t.wnry. El atacante empaqueta y establece una contraseña. El payload de gusano está listo.
Teniendo en cuenta que cada vez que se infecta un equipo se accede al fichero ZIP para extraer el ransomware, y que las primeras infecciones fueron descubiertas en la zona de Tailandia sobre las UTC 00:00, entonces podemos asumir cuales serían las zonas GMT posibles, es decir, que dentro de ese mismo día fueran posteriores a la fecha de creación del ramsonware.

Figura 9: Zonas horarias válidas con las fechas de los archivos ZIP

Podría ser coreano (UTC+9),  pero también de cualquier zona entre UTC+3 y UTC+12 como podéis ver en la infografía superior.

No es muy ambicioso

Por último, el tema del dinero es bastante pecuiliar. A día de hoy, tal y como vimos al principio, el autor no ha retirado ningún BitCoin de los monederos, pero es que hemos revisado las carteras de la primera versión de WannaCry 1.0 (Sin contar con la "gusanificación" vía EternalBlue), y sigue sin haber retirado ningún bitCoin de ellas.

Figura 10: Billetera BitCoin utilizada en WannaCry 1.0

Es decir, que el creador de estas dos campañas WannaCry 1.0 y WannaCry 2.0 no ha retirado ningún dinero de lo obtenido co el malware. Vamos, que o no tenía ningún interés en ello desde el minuto uno, o se ha arrepentido.

Saludos Malignos!

PD: Más referencias.

- El ataque del ransomware WannaCry
- Telefónica WannaCry File Restorer
- Telefónica WannaCry File Restorer Desktop Version
- Telefónica WannaCry File Restorer en Active Directory
- Latch Antiransonware para luchar contra el ransomware

Via: www.elladodelmal.com