Cita

"Those who are willing to pay a penny of security for a penny of usability will eventually have neither"

25 enero 2015

Analizando un correo malicioso

             
En cierta cuenta de correo  que  tengo repartida por muchos sitios (pero no en ninguno esencial) es normal que me lleguen a veces correos de spam. Correos que Gmail coloca eficazmente en la carpeta correspondiente. Estas vacaciones, sin embargo, me llegó uno a la bandeja de entrada. Al hecho curioso de que se salta los filtros de Google, se unía el detalle de que el cuerpo estaba vacío y solo contenía un anexo. Picada por la curiosidad y aprovechando el tiempo libre, me decidí a investigarlo para averiguar cuánta información pudiera sobre el origen y propósito de dicho correo (que intuía nada bueno). A continuación comparto el proceso y resultado de dicha investigación:

El nombre del remitente era "NOKIA CENTERy el asunto "PROMO". El anexo era un documento word "1..docx". Por supuesto, no lo abrí en la oficina (no queremos ser una puerta de entrada para APT ¿verdad?). Por supuesto, no lo abrí tampoco en casa. Habría que estudiarlo (con mucho cuidadito). Pero, primero, quería obtener algunos datos sobre el correo en si.

La dirección email del remitente (centernokia93@yahoo.co.id) correspondía con un dominio de Indonesia. Lo busqué también en Sherlock pero no encontré nada relevante. Así es que procedía a analizar el código fuente del email. Esto lo podemos hacer en Gmail con la opción "Mostrar original". La parte más relevante es la que se muestra a continuación:

Received: by 106.10.196.88; Tue, 23 Dec 2014 13:09:28 +0000
Date: Tue, 23 Dec 2014 13:09:28 +0000 (UTC)
From: NOKIA CENTER <centernokia93@yahoo.co.id>
Reply-To: NOKIA CENTER <centernokia93@yahoo.co.id>
Message-ID: <267297989.497716.1419340168301.JavaMail.yahoo@jws10970.mail.sg3.yahoo.com>

Y ahí vemos que la dirección IP de origen (106.10.196.88) corresponde a un servidor de yahoo de Singapour.

También vemos que el adjunto está codificado en base64:

Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=1..docx

Así es que copiamos el texto codificado que se encuentra a continuación en el fuente del email y lo dejamos en un fichero de texto para poder decodificarlo:

$ base64 -d adjunto.txt > doc.deco
$ file doc.deco
doc.deco: Microsoft Word 2007+

Si miramos el fichero original, obtenemos lo mismo:

$ file 1..docx
1..docx: Microsoft Word 2007+

Vemos que se trata de un documento word 2007. Sin embargo, al descargarlo (como veremos después) se comprueba en las propiedades de los ficheros que, tanto el documento como su binario embebido, tienen fecha de principios de 1980 y finales de 1979. Cosa curiosa que no sé qué puede significar.

Tenéis más explicaciones sobre cómo analizar el fuente de un correo y sus adjuntos en el blog de Flu-Project y en el de Security Art Work.



Lo siguiente era analizar el adjunto por si tenía regalito. Si lo analizamos con strings -a 1..docxx podemos ver si tiene cosas raras como macros, comandos de ejecución de ficheros o llamadas a urls. En mi caso, no había nada de eso. De todos modos, lo descomprimí para verle bien "las tripas"

Descomprimir un archivo de office es fácil: solo hay que cambiarle la extensión por .zip y luego descomprimirlo. Al hacerlo, crea una estructura de carpetas con varios archivos, fundamentalmente xml, que son los que forman el fichero en cuestión. En este caso, solo tenía un fichero OLE: oleObject1.bin. Subí ambos a sistemas multiantivirus como Virus Total y Malwr. También subí una foto que había dentro, por si acaso. El resultado fue que todo estaba limpio:

- En Virustotal: el docx el ole y la foto

- En Malwr: el docx y el ole.
 
Lo siguiente que hice fue pasar el oledump al archivo binario:

 $ sudo ./oledump.py oleObject1.bin

 1:       94 '\x01CompObj'
 2:       20 '\x01Ole'
 3:        6 '\x03ObjInfo'
 4:   438490 'CONTENTS'


Nada raro tampoco. La última versión del oledump la podéis descargar del blog de Didier Stevens, donde también explica un poco cómo usarlo. También hay algunas explicaciones en este otro blog.

Hay más cosas que se pueden hacer para analizar adjuntos ofimáticos. Pero no me parecía necesario porque, con las pruebas anteriores, parece que quedaba claro que el fichero en cuestión era inofensivo. Lo único que hice, para terminar, fue abrir con cuidado el anexo en una máquina virtual y monitorizar las conexiones con Wireshark, para asegurarme de que no hacía nada raro. Para ello, instalé una imagen de Windows 7 en VirtualBox.

El resultado fue que no había ningún "bicho" que se conectara con un C2, sino solo un documento de scam comunicándome que había sido agraciada con un premio de Nokia y que debía enviarles mis datos bancarios a una dirección. ¡Era la lotería perfecta! Una lotería en la que te dicen que te ha tocado sin participar porque han hecho un sorteo aleatorio entre varias direcciones de correo. Y que no se lo cuentes a nadie para evitar no sé qué fraude (para no alertar a los servicios anti-spam, claro). Venía también un número de teléfono y, buscando por él en Google, encontré que había gente que había recibido un correo parecido, como en este foro. Todas las personas que encontré que se quejaban de lo mismo eran de India, Pakistán, por ahí. Y, como el correo parecía provenir de Singapour o de Indonesia, todo quedaba en la zona. Pero ¿por qué me llegó a mí un scam cuya fuente y objetivos parecían circunscribirse al Océano Índico? Ni idea.

Advierto que no soy una experta forense, que la investigación tal vez no sea exhaustiva, que quizá se hubieran podido hacer más cosas. Que hay bichos que saben esconderse bien de los antivirus. Pero que he hecho todo lo posible por "cazarlo" si lo hubiera. Y que, de todos modos, me siento bastante protegida porque tengo Linux ;) En cualquier caso, la experiencia ha sido divertida y ha sido una manera de iniciarme tímidamente en el mundillo del análisis de malware.




No hay comentarios:

Publicar un comentario

A penny for your thoughts