Analizando Tráfico de Red III de III

Estándar

Para el análisis forense de tramas de Red, existen herramientas que son capaces de automatizar el proceso de extracción, siendo válidas para extraer “de una tirada” conjuntos de datos que viajan a través de un protocolo.

Una herramienta bastante potente para realizar este tipo de extracciones es Xplico. Esta herramienta, de momento sólo existe para sistemas operativos Linux. Hasta la fecha es la herramienta más interesante, ya que de momento, está realizando una muy buena labor de soporte para muchos protocolos. Para saber más sobre la misma, aconsejo leer el post de Sergio Hernando, que habla sobre ella.

Para Windows, la única herramienta que vale la pena, se llama NetWork Miner. Es una herramienta bastante interesante, ya que, además de la extracción de datos, es capaz de realizar tareas de fingerprinting sobre los paquetes de datos para averiguar, por ejemplo, el sistema operativo que envía o recibe paquetes. Su funcionamiento se basa en las bases de datos que utilizan diversas herramientas de auditoría, como por ejemplo, NMap. Un buen artículo sobre esta herramienta, lo tenemos en la Web SoyForense.

Lamentablemente, y utlizando esta herramienta con un fichero PCAP, en cuyo interior se encontraban datos relativos a conversaciones de Vídeo, audio y datos, transmitidos todos ellos a través de mensajería instantánea con Windows Live Messenger, ésta no ofrece ningún avance positivo.

netWorkMiner

Imagen 1.- Extracción de datos fallida con NetWork Miner

Después de la prueba fallida, lo siguiente es analizar “a pelo” cada paquete de la captura, para encontrar una huella, o pista que nos de esperanza para continuar.

Para ello, decido leerme, sin mucho éxito, parte del documento que tiene Microsoft sobre la implementación de RTP en Streaming de audio o vídeo.

Analizando la captura de datos, me encuentro con un paquete algo especial, con el formato siguiente:

RecipientID

Imagen 2.- RecipientID en Windows Live Messenger

Observando varios foros sobrre desarrollo de aplicaciones para mensajería instantánea, comprendo que este paquete es utilizado por Windows Live Messenger para establecer la conexión. Una vez que la conexión está establecida, envía regularmente un paquete de las mismas características para asegurarse de que la conexión sigue permanente.

Wireshark tiene, como añadido a la herramienta, opciones de traducción de paquetes. Esta capacidad, dota a la herramienta con un decodificador de paquetes. Con este tipo de opciones, podemos escoger un paquete, y decirle a Wireshark que lo decodifique según un protocolo establecido.

Nuevo intento, fallido, de decodificar todo protocolo UDP como si fuese RTP. Resultados cero.

Inspeccionando el tráfico UDP, me encuentro con que existen patrones que se repiten a la hora del envío de paquetes a través de Windows Live Messenger. En cada envío de paquetes, me encuentro con unos mismos valores para distintos paquete. Este tipo de patrón da a pensar que podemos estar ante algún tipo de Payload. Para ello, voy copiando en una tabla, todos los valores repetidos que me voy encontrando. La lista que obtengo es la siguiente:

  • 44
  • 48
  • 66
  • 4A

Buscando y rebuscando en internet, me encuentro con un post en un foro, el cual ya no existe, en el que se retrata este mismo payload. Pero lo más interesante es que un tipo, llamado Ramiro Polla (No es coña…), ya lleva tiempo con esta investigación y ha recreado un un paper y una herramienta que realiza toda esta labor.

Los payloads anteriormente descritos, se refieren a qué tipo de acción va a realizar Windows Live Messenger. Es decir, si va a realizar una conexión, enviar una trama de audio, enviar una trama de vídeo, etc…

Hablando de la herramienta, cabe decir que la mayor característica de la misma, es la capacidad de trabar “offline” con capturas de datos. Una vez que se carga la captura de datos en la herramienta, se procede a la extracción de paquetes de audio y vídeo.

WebCamRecorder

Imagen 3.- Añadido de capturas offline

Una vez que la herramienta ha realizado su trabajo, se puede proceder a exportar los datos, pudiéndose utilizar compresores de audio y vídeo, para que la captura final sea más pequeña.

imagenExtraida

Image 4.- Captura final y posibilidad de extracción de datos

Como nota final, vía Sergio Hernando me entero de que también existe una herramienta similar en Linux, llamada MSN Shadow. Leyendo el Blog del autor de la herramienta, me entero de que si queremos versión para Windows, tendremos que esperar un poco, ya que, según sus palabras:

So, to support my additional work on this project like a version for Windows, capture of file transfers and others improvements, I would like to ask for some donation if you can.
I would not like to stop providing this software in open source format, but I can not work for nothing!

Hasta un nuevo post!!

Saludetes!

Anuncios

Analizando tráfico de Red II de III

Estándar

Hola a tod@s! Seguimos con esta entrega dedicada al análisis forense de tramas de Red. En esta entrada nos vamos a centrar en protocolos que no están muy documentados.  La gran mayoría de analizadores de red ofrecen soporte a protocolos que están bien documentados y dan parte de soporte o ninguno a protocolos que no están documentados. Este tipo de problemas se pueden dar en algún tipo de investigación forense, y casi seguro que alguno de los lectores se habrá visto en algún caso parecido.  

En nuestro caso, vamos a centrarnos en un protocolo que no está muy documentado, pero que es ampliamente utilizado. Es el caso de la mensajería instatánea con Windows Live Messenger y derivados.

Los primeros atisbos de información que nos encontramos, los tenemos en la Web del Internet Engineering Task Force. En dicha Web, mantienen un borrador de un protocolo llamado Messenger Service . Leyendo este documento, tendremos una idea básica de cómo el protocolo de Windows Live Messenger trabaja a la hora de enviar y recibir información.

Más adelante (hablando de tiempo), Webs como Hypotetic.org o MSNPiki documentarían más este protocolo, realizando ingeniería inversa sobre el mismo.

Wireshark implementa un único filtro para filtrar la comunicación a través de Messenger llamado MSNMS. Gracias a este filtro, podremos trabajar sólo con este protocolo.

Al ser un protocolo que envía los mensajes en texto plano, es fácil extraer una conversación de Messenger aplicando como búsqueda la cadena “Text/Plain” en el filtro de búsqueda por paquetes que dispne Wireshark.

Conversación

Imagen 1.- Extracción conversación Messenger con Wireshark

Herramientas comerciales como MSN-Sniffer, pueden capturar este tráfico y parsearlo directamente a una salida más “humana”.

Lo malo de todo esto, es que no toda la información enviada a través de este cliente de mensajería se envía a través del protocolo MSNMS. El envío de mensajes de Voz, ficheros o vídeo se realiza a través de protocolos comunes como TCP o UDP. Y, en este caso, ni MSN-Sniffer ni ninguna otra herramienta (que yo conozca) es capaz de detectarlo y extraerlo.

En el caso del envío de ficheros a través de Messenger, y leyendo la valiosa información de la Web MSNPiki, nos encontramos con que primeramente se envía un número de identificador único (GUID), el cual se especifica para determinar que lo que se va a transmitir es un fichero. En el mismo paquete, se añade un identificador llamado APPID.

Base64FileTransfer

Imagen 2.- Envío de ficheros a través de Messenger

Si se observa con atención este paquete, en el contexto de este campo (AppID), aparecen una serie de caracteres codificados en Base64. Decodificando este texto nos daría el nombre del fichero que se está enviando.

DecodeBase64

Imagen 3.- Decodificando mensaje Base64

Una vez recibida esta información se empieza con el envío de datos. La transmisión de ficheros a través de Messenger es algo complicada, ya que se pueden enviar a través de TCP o UDP, y, en mi caso, no conozco ninguna herramienta que, a través de un archivo PCAP y en modo Offline, pueda reconstruir los ficheros enviados a través de este cliente de mensajería instantánea. Tanto el señor Maligno como Dani Kachakil tienen muy buenos artículos sobre cómo extraer ficheros enviados a través de Messenger. La idea básica es ir recopilando cada paquete (ya sea TCP o UDP), para después unir todas las tramas y formar el fichero extraído.

followTCP

Imagen 4.- Follow TCP transmisión de paquetes en Messenger

Como esto se complica cuando se transmiten varios ficheros simultáneamente, nuestro compañero Rodol, de informática64, se curró una herramienta muy chula hace tiempo que realizaba esto mismo. Capturar todos los paquetes transmitidos a través de messenger, para después reconstruir los ficheros realizando un fingerprinting de los mismos.

MessengerSniffer

Imagen 5.- Sniffer de Messenger con funciones de recomposición de ficheros

Esta herramienta, junto con muchas más, las damos en exclusiva a las personas que se apunten a los cursos FTSAI que impartimos en informática64.

Hasta la próxima entrega!

 

Políticas de seguridad en Messenger

Estándar

Llevaba algo (mucho) de tiempo preguntándome cómo el Messenger era capaz de censurar cierto tipo de palabras o frases en el intercambio de información entre usuarios. Desde el instituto ya me decían cosas del tipo “Si te pones de Nick Bill gates es un capullo te lo censura!“, o cosas del tipo “Si pones Microsoft mierda también te lo censura“.

El otro dia salió el tema en una conversación, y una persona me comentó con cierto pánico que Microsoft seguramente esté espiando las conversaciones a través de varios servidores, y que a través de ellos, censura ciertos mensajes para luego mandarlos al otro extremo.

Yo, como soy tan capullo y me pico tan rápido le contesté: “Joder!, pues tengo el portátil en el coche!, me voy a poner a sniffar la conexión, a ver qué hace mi messenger! Lo mismo se conecta a la NSA!!” Y así hice…. Pongo WireShark en modo drógate y el messenger a iniciar.

Hace como 1 año que no abría el messenger (me aburre) y cuando lo abrí, tenía como a 25 personas para agregar a “mis contactos“. Seguramente serían usuarios de elhacker.net que habrán visto mi correo por ahí. Total, que para hacer la “investigación“, los agrego a todos y me pongo a charlar con uno que no hablaba ni español, para ver si era verdad lo de la censura. Sí, ya sé que me aproveché del pobre usuario iniciando una conversación falsa y absurda (como saludo le puse “hello taworito wor firineo“, y a continuación le mandé un enlace con la palabra download.php?), pero ha sido un aprovechamiento con fines científicos, al igual que ligar con tías….

A los 5 minutos me despido cordialmente, y cierro mi conexión de messenger.

Al examinar los paquetes de Messenger te das cuenta de varias cosas.

  • No necesitas iniciar una conversación con nadie para que se aplique la censura
  • Es una política en formato XML que nos envía el servidor y se ejecuta en el cliente (No censura el server, censura el cliente con esa política)
  • Por lo que se ve, esta política entra dentro del proceso de autenticación (Creo que no se puede saltar)

captura.png

La directiva es una política que lleva la etiqueta <policies>, y unos valores codificados en base64. Pongo algunos de ellos:

  • aW1nMTc1Nlwuemlw == img1756\.zip
  • c2VjcmV0aW1hZ2VzNTZcLnppcA == secretimages56\.zip
  • bXlwaWN0dXJlc1wuemlw == mypictures\.zip
  • cGhvdG9zXC56aXA == photos\.zip
  • d3d3XC5zb250YXJpaFwuaW5mbw == www\.sontarih\.info

Hay muchas más. Para el que quiera echar un vistazo a la política en cuestión pero no quiera snifar la conexión, he extraído el archivo XML de la política, que puede descargar de aquí.

Los motivos de esta censura pueden ser muchos y muy variados, pero generalmente se debe a mantener una cierta seguridad de cara a los usuarios. Bajo mi punto de vista creo que se exceden con el parámetro download.php, pero me figuro que poner una política con todas las Webs que utilizan maliciosamente el archivo download.php para descargar troyanos sería pedir demasiado, además, la política sería tan grande (Cientos y cientos de Webs) que de seguro ralentizaría la autenticación. Pagan todos justos por pecadores.

Me he estado informando, y al parecer Spectra actualiza esta lista con bastante frecuencia. Buscando y buscando he dado con más información al respecto.

MSN Censors Your IM

Microsoft censoring MSN Messenger conversations

Buen finde a todos!