martes, enero 29, 2008

Riesgos de Seguridad y Medidas de
Protección en Windows Live Messenger (II/IV)

***************************************************************************************
Artículo Publicado en la revista PCWorld Ene'08
- Riesgos y Medidas de Protección en Windows Live Messenger (I/IV)
- Riesgos y Medidas de Protección en Windows Live Messenger (II/IV)
- Riesgos y Medidas de Protección en Windows Live Messenger (III/IV)
- Riesgos y Medidas de Protección en Windows Live Messenger (IV/IV)
***************************************************************************************
Captura de archivos transmitidos

La transmisión de ficheros entre clientes es algo muy común. Algunas se realizan de forma automática, como las imágenes de pre-visualización de contactos, si se ha configurado de esta forma el cliente, y otras, de forma explícita, como la transmisión de documentos, fotos o mensajes de voz. El protocolo que se utiliza para chatear con mensajes de texto está totalmente documentado por la comunidad de Internet, por lo que hay herramientas como Pidgin, antes conocido como GAIM [http://sourceforge.net/projects/pidgin/] que permiten conversar perfectamente con clientes Live.

La transmisión de ficheros con Windows Live Messenger entre dos clientes tiene un funcionamiento adaptativo, es decir, los ficheros se pueden transmitir utilizando el protocolo TCP o UDP y esta transmisión puede ser realizada mediante una conexión directa o a través de los servidores Windows Live de Microsoft en función de la carga de la red. No es público cual es el algoritmo actual de decisión utilizado a la hora de configurar las opciones que se usarán para transferir un determinado fichero, pero sí hay cierto trabajo realizado ya en ingeniería inversa en la web de hypothetic [http://www.hypothetic.org/docs/msn/general/overview.php] que muestra como se comunican los clientes para la transmisión de ficheros y permite hacer un análisis de los datos que se puedan capturar.

En cualquiera de los medios de transmisión que se utilice el nombre del fichero codificado en base64 es lo primero que se envía y, en el caso de que sea un archivo gráfico, un thumbnail de pre-visualización. Una vez es aceptada la transmisión por parte del destinatario se parte el fichero en segmentos y se va enviando en paquetes de red hasta que este es completamente transmitido.

Un atacante podría acceder a los paquetes de red que componen la transmisión de un fichero si esta transmisión se realiza, tanto en el envío o en la recepción, por una red insegura en la que, por ejemplo, alguien pueda hacer un envenenamiento entre los dos clientes o entre un cliente y su puerta de enlace, o en la que pueda capturar el tráfico generado por el emisor o el receptor ya sea porque la red está cableada con concentradores en la que se puede sniffar el tráfico o bien porque sea una red wireless no securizada.

Con los paquetes capturados con el sniffer se puede recrear el fichero manualmente utilizando un editor hexadecimal y copiando las tramas. Esto es bastante sencillo si la transmisión se ha realizado usando el protocolo TCP pues es muy fácil seguir el flujo de la conversación con los números de secuencia TCP aunque funciona perfectamente igual con el protocolo UDP. Realizadas unas capturas en bruto se puede apreciar como los datos del fichero son reconocibles en la red. En la imagen siguiente se ve un trozo de la captura enviada de un fichero de audio.

Imagen 3: Captura de trama por UDP de parte de un fichero enviado

Al final, como prueba de concepto, tras comprobar que manualmente se podía recomponer el fichero, decidimos hacer, a finales del año pasado, una pequeña herramienta que, como prueba de concepto capturara todos los ficheros que eran transmitidos vía Windows Messenger. Esta herramienta ordena todo el tráfico que se captura en conversaciones, después busca los mensajes de Windows Live Messenger y por último construye el fichero.

Imagen 4: Captura de una trama con datos de un fichero de texto transmitido

Windows Live Messenger implementa un protocolo P2P para la transmisión de los ficheros y este se utiliza no sólo para aquellas transmisiones explicitas de ficheros, sino también, por ejemplo, para la transmisión de los emoticones extras o para la transmisión de mensajes de voz enviados utilizando la tecla F2 o para la transmisión de las fotos de perfil que cada participante se configura. Al ponerse alguien a capturar ficheros transmitidos puede obtener todos esos mensajes si no van cifrados. En la Imagen 5 se puede ver que la se ha podido construir un par de archivos en formato “wav”, pertenecientes a un mensaje de voz enviado con el F2, tras haber sido capturados con un sniffer.

Imagen 5: Captura y reconstrucción de mensajes de Voz

Webmessenger

En la versión web de Windows Live Messenger el funcionamiento es similar. La fase de autenticación en el servicio va cifrada mediante conexiones http-s, con lo que la vulneración de estos servicios es equivalente a la que se podría realizar en un ataque Man In The Middle con certificados digitales falsos. Sin embargo, una vez iniciada la sesión, el resto de transmisiones van en texto claro utilizando el protocolo http. Es suficiente con realizar un pequeño análisis de las tramas para poder acceder a las conversaciones que se están produciendo.

***************************************************************************************
Artículo Publicado en la revista PCWorld Ene'08
- Riesgos y Medidas de Protección en Windows Live Messenger (I/IV)
- Riesgos y Medidas de Protección en Windows Live Messenger (II/IV)
- Riesgos y Medidas de Protección en Windows Live Messenger (III/IV)
- Riesgos y Medidas de Protección en Windows Live Messenger (IV/IV)
***************************************************************************************

2 comentarios:

  1. good, really good

    ResponderEliminar
  2. Es increible la de pichadas que pueden hacerse, tu trabajo no será nada monótono digo yo!!
    Saludos desde Spain to UK.

    ResponderEliminar