Destripando Nuclear EK (IV)

(Ver partes I, II y III de esta serie)

En el anterior post conseguimos obtener el SWF original, pero descubrimos que el exploit se encuentra incrustado en un ByteArray. ¿Conseguiremos extraerlo?

Primeramente necesitamos extraer el contenido almacenado por el ByteArray. Para ello, necesitamos un decompilador Flash de escritorio; Adobe SWF Investigator (It’s free!). Una vez instalado abrimos el último fichero obtenido: uncompressed_exploit.swf. Vamos a la ficha “Tag Viewer” y de todos los tags mostrados, seleccionamos “DefineBinaryData” y lo guardamos pulsando en “Dump to file” nombrado como “dump_exploit.bin”, por ejemplo.

[Read more…]

Destripando Nuclear EK (III)

(Ver partes I y II de esta serie)

En el anterior post nos quedamos a punto de saber porqué el proxy no identifica el objeto Flash como application/x-shockwave-flash. Veamos.

(4) Bk8RH15VB1xLUk5SS1BXClYHDgVUBlNLV1UWVAkOGVQBTQZQVkQDXQs

Extraemos el objeto Bk8RH15VB1xLUk5SS1BXClYHDgVUBlNLV1UWVAkOGVQBTQZQVkQDXQs desde Wireshark y comprobamos de qué tipo de fichero se trata:

$ file Bk8RH15VB1xLUk5SS1BXClYHDgVUBlNLV1UWVAkOGVQBTQZQVkQDXQs 
Bk8RH15VB1xLUk5SS1BXClYHDgVUBlNLV1UWVAkOGVQBTQZQVkQDXQs: data

$ file --mime Bk8RH15VB1xLUk5SS1BXClYHDgVUBlNLV1UWVAkOGVQBTQZQVkQDXQs 
Bk8RH15VB1xLUk5SS1BXClYHDgVUBlNLV1UWVAkOGVQBTQZQVkQDXQs: application/octet-stream; charset=binary

$ hexdump Bk8RH15VB1xLUk5SS1BXClYHDgVUBlNLV1UWVAkOGVQBTQZQVkQDXQs -n128 -C
00000000  5a 57 53 17 ad 23 00 00  3a 21 00 00 5d 00 00 20  |ZWS..#..:!..].. |
00000010  00 00 3b ff fc 8e 19 fa  df e7 66 08 a0 3d 3e 85  |..;.......f..=>.|
00000020  f5 75 6f d0 7e 61 35 1b  1a 8b 16 4d df 05 32 fe  |.uo.~a5....M..2.|
00000030  a4 4c 46 49 b7 7b 6b 75  f9 2b 5c 37 29 0b 91 37  |.LFI.{ku.+\7)..7|
00000040  01 37 0e e9 f2 e1 fc 9e  64 da 6c 11 21 33 ed a0  |.7......d.l.!3..|
00000050  0e 76 70 a0 cd 98 2e 76  80 f0 e0 59 56 06 08 e9  |.vp....v...YV...|
00000060  ca eb a2 c6 db 5a 86 7b  47 de 99 5d 68 76 38 16  |.....Z.{G..]hv8.|
00000070  bd 93 3c d3 d0 9e d3 55  63 5a da b0 db 27 e6 7c  |..<....UcZ...'.||
00000080

[Read more...]

Destripando Nuclear EK (II)

En el anterior post, conseguimos un ejemplo del caso a tratar. Teniendo los ficheros HTML extraídos con Wireshark, comenzamos su análisis.

(1) index.php

imagen_1

Simple; redirecciona sí o sí a (2) http://zvqumcs1tsfct4sjvzot3p9.filmtane.com/watch.php?kcppp=MTE3NzU5ODg2Nzk3NjRlY2M0MmJiNDk3M2NmZGVkM2Fl.

[Read more…]

Destripando Nuclear EK (I)

A menudo cuando se analiza el tráfico de red, podemos encontrarnos patrones pertenecientes a los ya conocidos Angler EK, Nuclear EK y Magnitude EK.

Normalmente vendidos en el mercado negro, un Exploit Kit (EK) es un conjunto de herramientas que automatiza la explotación de vulnerabilidades en el cliente, dirigidas a navegadores y plugins que un sitio web puede invocar como Adobe Flash Player, Microsoft Silverlight, Adobe Reader, Java, etc., para infectar equipos mientras se navega por Internet en lo que se llama drive-by download attacks.

Dichos patrones pueden ser detectados por reglas de snort como:

ET CURRENT_EVENTS Cushion Redirection
ET CURRENT_EVENTS Possible Nuclear EK Landing URI Struct T1
ET CURRENT_EVENTS Malvertising Redirection to Exploit Kit Aug 07 2014
ET CURRENT_EVENTS DRIVEBY Nuclear EK Landing May 23 2014

[Read more…]

LINE. Android e iOS. Análisis técnico de la mensajería instantánea.

En la actualidad, el uso de smartphones y tablets se ha convertido en una parte fundamental de nuestras vidas. El rápido crecimiento de las aplicaciones de mensajería instantánea ha hecho que servicios como llamadas telefónicas o SMS queden desplazados por los mensajes enviados desde aplicaciones en terminales móviles. Es por esto que este tipo de mensajes puedan tener cabida en un tribunal como prueba ante un delito.

En este post comentaré lo que fue mi Trabajo Fin de Grado en la Universidad de Alcalá el cual fue dirigido por el IUICP (Instituto Universitario de Investigación en Ciencias Policiales) y por lo tanto, imaginaréis que quienes lo usarán serán las FFCCSSEE en caso de que sea necesario para llevar algún tipo de investigación forense donde sea preciso recuperar conversaciones mantenida desde LINE.

¿Por qué LINE y no otro? Para chatear con una persona usando LINE no es necesario que ninguna de las partes tenga el teléfono móvil de la otra, únicamente dando el ID de usuario ya puedes mantener una conversación. El anonimato que esto ofrece, junto con las conversaciones secretas (sus mensajes se autodestruyen “permanentemente”), abre un campo muy amplio que dejo a vuestra imaginación.

Aunque no puedo dar mucha información sobre aspectos técnicos de la investigación (una pena ya que todo esto es propiedad del IUICP), sí puedo comentar el proceso que realicé, que puede dar una orientación a otras personas interesadas en este tipo de investigaciones.

Lo primero que analicé fue el protocolo usado por LINE para envío y recepción de mensajes. Debajo se puede ver una imagen con el esquema del protocolo de mensajes.

Resumiendo:

1. Un Emisor escribe un mensaje y lo envía.

2. Los Servidores de LINE lo reciben y le asignan un identificador único de mensaje (server_id) y una fecha de recepción (created_time).

3. Los servidores envían a Emisor server_id y created_time.

4. Los servidores envían a Receptor el mensaje, server_id y created_time.

En un segundo bloque, separado por Android o iOS, llevé a cabo el análisis de:

1. El sistema de archivos que utiliza LINE. En este apartado, se analiza el directorio de instalación, dónde se encuentran las bases de datos, dónde se almacenan los ficheros multimedia enviados/recibidos así como las fotos de perfil de los contactos…

2. Análisis de las bases de datos (donde se almacenan los mensajes).

  • Análisis relacional: Relación entre tablas usando sus registros.
  • Análisis de los registros: Saber qué almacena cada columna de cada tabla de la base de datos.

3. Análisis forense.

  • Ficheros de configuración: Obtención de más información, como el nombre de usuario y la foto de perfil.
  • Bases de datos: Se analiza cómo es la estructura de los mensajes una vez almacenados mediante un editor hexadecimal.

Por último, en un tercer bloque describo las aplicaciones desarrolladas a partir de las que se demuestra que es posible recuperar conversaciones desde una base de datos de LINE:

  • Lector de mensajes: Obtiene las mensajes de la base de datos y los maqueta en una interfaz HTML.
  • Recuperación de mensajes eliminados: Mediante técnicas de data-carving en busca de datos como server_id, quedando al descubierto que sí es posible recuperar mensajes eliminados de la base de datos, tanto de conversaciones normales como secretas.

Comparto a continuación la presentación que utilicé en las II Jornadas de Seguridad y Ciberdefensa de la Universidad de Alcalá, que contiene algunos detalles más del funcionamiento de LINE de los indicados arriba. Seguiré con el proyecto que llevan a cabo las Fuerzas y Cuerpos de Seguridad del Estado, analizando otras aplicaciones de mensajería instantánea y publicando en Security Art Work los avances que haga.