Mostrando entradas con la etiqueta Messenger. Mostrar todas las entradas
Mostrando entradas con la etiqueta Messenger. Mostrar todas las entradas

miércoles, octubre 17, 2012

Depredadores de canales chat en busca de víctimas

Ayer en la radio, en los 15 minutos en los que participo todos los martes en el programa de La Mañana con Javi Nieves, querían comentar el caso de los pederastas y depredadores de las redes sociales, y cómo captan a sus víctimas. Antes del programa yo les dije que en los chats suelen estar a la caza de víctimas y que bastaba hacerse un nick de niña y ver como te asaltaban.

Me dijeron que probase a ver qué sucedía y aunque yo les dije que a las 11 de la mañana no parece la hora adecuada, lo cierto es que enseguida entraron muchos, y algunos, a pesar de que les decía que tenía 15 años fueron a saco a por mí. Os dejo una porción del chat para que os hagáis una idea de lo que este tipo de 41 años quería. La conversación duró unos 5 minutos.

Figura 1: Parte del chat. Yo soy Barbie_15_madrid

Por supuesto, hubo muchos que me pidieron la cuenta de messenger, y me ofrecieron quedar hoy mismo para tener sexo. Si aún pensáis que esto no es un peligro para los más jóvenes, os recomiendo que veáis el programa de Mercedes Milá en "Diario de" de la temporada 10, capítulo 109: Un presunto pedófilo al descubierto, donde les ayudé un poco a entender mejor la parte técnica.

Saludos Malignos!

lunes, octubre 24, 2011

GetMSNIPs: Obtener dirección IP de contactos Messenger

El mes pasado, nuestro compañero del SOCtano Thor publicó una herramienta destinada a obtener la dirección IP de los contactos que uno tiene añadidos al Messenger sin necesidad de enviar o recibir un fichero, tal y como se dice en muchos foros. La idea es hacer uso de la negociación de las condiciones de red, tales como direcciones IP, arquitectura de conexión (NAT, UPnP, etc..) que se utilizan en la negociación del protocolo P2P que usa MSN.

Si se analizan todas las conversaciones que se producen, se verá que no es necesario iniciar la transferencia de ficheros, ya que, por ejemplo, el envío de avatares, imágenes e incluso las conversaciones en algunos entornos, funcionan con conexiones directas entre los contactos.

Explicación manual de la idea

Así, manualmente, uno puede monitorizar el proceso de comunicación que utiliza Messenger, que se llama wlcomm.exe y ver con quién establece las comunicaciones. Así, en un rápido ejemplo, primero se localiza el ID del proceso en nuestro sistema (con el administrador de tareas) y luego miramos qué conexiones de red están activas con él. En este caso, se hace nada más inicar una sesión Messenger, con lo que solo estará la conexión con los servidores Microsoft.

Para ello se hace uso del comando tasklist | find "wlcomm.exe", que permite encontrar el PID del proceso y luego se filtra con él la salida de netstat para ver solo las conexiones que realiza dicho proceso (requiere permisos de administrador): netstat -nabo | find "PID_ENCONTRADO".

Figura 1: Análisis de conexiones de wlcomm al inicio

Ahora, si se hace uso del truco de enviar un emoticono personalizado a un contacto, se estará forzando el  envío de un fichero por debajo, lo que lanzará que el sistema negocie la conexión P2P entre ambos clientes, permitiendo descubrir la dirección IP del contacto. Para ser menos sospechoso, un emoticono con un gif transparente y listo. Si repetimos el proceso aparece la IP del contacto.

Figura 2: Análisis de conexiones en una conversación

Análisis con Wireshark

Sí el tráfico generado en la conversación se graba con Wireshark y se analiza con el filtro que ofrece esta herramienta para el protocolo de Messenger, que se llama msnms, se pueden ver los paquetes generados en la transferencia del avatar.

Figura 3: Paquetes filtrados con msnms en Wireshark

Viendo el contenido de ellos, es posible descubrir las direcciones IP de la conexión y el nombre del contacto que se encuentra en el extremo de la conexión, ya que se aparece en el campo FROM.

Figura 4: Direcciones IP de la conversación en el paquete de red

Lo curioso es que en ese paquete también aparece la dirección interna del cliente de Messenger. ¿Por qué? Pues porque si dos contactos comparten la misma dirección externa y están en el mismo segmento de red, la negociación P2P se intenta hacer directamente por la LAN, sin pasar por Internet, lo que alguna vez generaba errores de conexión en situaciones en las que había conversaciones múltiples con contactos locales y remotos.

Con toda esta información es posible hacer un filtro en Wireshark para descubrir los contactos y sus direcciones internas y externas en un momento dado de la conexión, y es esa info la que ha automatizado nuestro amigo Thor en la herramienta GetMSNIPs.

Descubrir las direcciones IP de todos tus contactos conectados con GetMSNIPs

El funcionamiento es sencillo, pero requiere la instalación previa de WinPcap.

Una vez instalado, se arranca GetMSNIPs para luego iniciar una conversación con Messenger.

Entonces se debe poner un nuevo avatar, distinto, que no haya sido utilizado antes.

Después, esperar o forzar el inicio de una conversación con algún contacto que interese. El resto se irá viendo por pantalla.

Figura 5: Salida por pantalla de GetMSNIPs

Puedes descargar la herramienta  y el código fuente directamente desde el siguiente enlace: GetMSNIPs

Saludos Malignos!

martes, noviembre 23, 2010

Somos enfermos del cybersexo

En las charlas que doy a los chavales sobre los riesgos de Internet siempre les pongo un vídeo de CyberSexo para que vean cuales son los riesgos de hacerlo con extraños. Tengo el vídeo sin censurar, pero para que no me lo quiten del Youtube lo he censurado... Seguro que os imagináis que está pasando por donde está la censura.


Esto es algo muy normal, ya que, como todos sabéis, el Messenger se creo para ligar, por eso si yo te he dado mi messenger es que...

Y visto este vídeo primero, no me queda más remedio que poner el de las Supremas de mi pueblo, de Bronxtolex, sobre este temita, que aunque no os lo creáis, es cierto que había oido la canción pero nunca había visto el vídeo musical y me he descojonado. ¡Ole Paca, Ole!


Saludos Porno-Malignos!

lunes, junio 07, 2010

GTalk: Riesgos de Seguridad [III de III]

***************************************************************************************
- GTalk: Riesgos de Seguridad [I de III]
- GTalk: Riesgos de Seguridad [II de III]
- GTalk: Riesgos de Seguridad [III de III]
***************************************************************************************

¿Cuándo y cómo se borra el chat activo?

Una de las cosas que más me ha tenido descolocado es el funcionamiento del borrado de los chats activos. La idea es que cuando uno está teniendo una conversación con alguien, tal vez te interese borrar el histórico de la conversación. Es decir, hacer desaparecer la conversación del chat a un clic.

En el siguiente video se puede ver la conversación entre dos cuentas, una con el cliente web y otra con Gtalk. El usuario de Gtalk, en un momento de la interesante conversación, decide cerrarlo para que su “Padre/Madre/Tutor/Profesor/Jefe/Boss/Novi@” no vea lo que estaba chateando con la otra persona. Sin embargo, basta con hacer un clic en la cuenta y el chat aparece.


Figura 8: No se puede cerrar el chat a petición

Para deshacerse del chat hay que cerrar la sesión – o esperar a que caduque en el servidor por inactividad -, mientras tanto, todos los chats de esa sesión están disponibles.

Ésta es una característica del funcionamiento normal de este sistema pero, personalmente, me gustaría tener un botón de cerrar el chat que me permita justo eso: Cerrar el chat, pudiendo así eliminar la conversación sin tener que cortar el resto de conversaciones.

Sesiones desconectadas

Otra de las cosas que me permiten controlar mi privacidad en Windows Live Messenger es la de poder iniciar sesión como usuario desconectado. Esta característica me permite interactuar con mis contactos, si yo quiero, sin que se sepa si estoy conectado o no. Esto puede ayudar a un usuario a estar menos controlado por sus contactos. Además, en cualquier momento se puede cambiar a status como si estuviera desconectado, pero con la sesión iniciada.


Figura 8: Estado desconectado e Inicio de Sesión desconectado

El sistema de mensajes para usuarios desconectados, tanto de envío como de recepción, permite tener una flexibilidad a gusto. En la nueva versión que viene de Windows Live Messenger esto se va a ampliar, permitiendo elegir el estatus por usuario o grupos.

Por el contrario, en Gtalk, en el momento que quieres abrir la sesión, tu estado es de conectado, en alguna de los que hay que indican que has iniciado sesión a una determinada hora. Por supuesto, eso puede ser utilizado para, de alguna forma, que cualquier contacto pueda monitorizar tus hábitos de conexión. Eso sí, puedes bloquear a ese usuario, pero entonces dejarías tú también de poder ver su estado y chatear. Malas opciones todas ellas.

Lo curioso es que esta función, por motivos de privacidad, fue incorporada al chat de Gmail, pero no está en Gtalk.


Figura 9:Izquierda estados Gtalk. Derecha Estados Gmail.


***************************************************************************************
- GTalk: Riesgos de Seguridad [I de III]
- GTalk: Riesgos de Seguridad [II de III]
- GTalk: Riesgos de Seguridad [III de III]
***************************************************************************************

sábado, junio 05, 2010

GTalk: Riesgos de Seguridad [II de III]

***************************************************************************************
- GTalk: Riesgos de Seguridad [I de III]
- GTalk: Riesgos de Seguridad [II de III]
- GTalk: Riesgos de Seguridad [III de III]
***************************************************************************************

No cerrar sesión: Configura una sesión inmortal

Ya desde el comienzo cuando te creas la cuenta, el mensaje de "No cerrar sesión" que por defecto está marcado a true, me parece equivocado, pero entiendo que es algo que puedes configurar tú en tu cuenta. Así sucede que puedes hibernar las máquinas con las sesiones abiertas durante días y todo sigue funcinando cuando arranques otra vez la máquina porque la sesión es "inmortal", como me sucedía en la serie de posts de Correos en la Web de Enero de 2008.


Figura 5: No cerrar sesion

Entiendo, sin embargo, que es una opción de configuración que tiene que ver más con la cuenta que con Gtalk en conreto. Sin embargo, como se puede ver en la imagen, yo he quitado esta opción.

Integración en Windows: Ni DEP ni ASLR

Me llama la atención que la palicación Gtalk para Windows no esté integrada en el sistema actual de ventanas de Windows. Esto no es un riesgo de seguridad, sino más bien una incomodidad para mi forma de trabajar ya que no me permite ordenar las ventanas a mi gusto. No funcionan las opciones típicas de maximizar o colocar en una posiciónd del escritorio con los sticky borders.

Tomando esta integración con el sistema operativo, pero relativa a la protección de mi máquina, es de desear que los programas que corran en ella, y especialmente aquellos expuestos por la red como es un sistema de mensajería, tengan todas las protecciones posibles contra la creación de exploits, así que no vendría mal que Gtalk hicera como Windows Live Messenger y usara DEP y ASLR.


Figura 6: Process Explorer con Gtalk y Windows Live Messenger

Es sabido que ambos mecanismos no son perfectos, pero ayudan a dificultar la tarea del exploiter. Además, es curioso que no haga uso de DEP y ASLR en Gtalk cuando sí que lo hace en Google Chrome. Creo que cualquier herramienta que se diriga al mercado Windows debería hacer ya uso de estas protecciones.

Almacenamiento de Conversaciones "in the cloud"

Otra de las características que me parece que va contra la propia privacidad del usuario, es la del almacenamiento de las grabaciones de las conversaciones. Con Gtalk las opciones que se tienen son dos:

1) Lo guardas en tu cuenta de Google junto con tu correo.
2) Te lo guardas copiando manualmente el chat y pengando en el bloc de notas.

No existe una opción, como existe en Windows Live Messenger de guardar las conversaciones en mi ordenador personal. Ya le he dado muchos datos a Google de mí, ¿tengo que contarle mis conversaciones privadas también? ¿Si alguien vulnera mi cuenta va a leerse también mis chats? ¿Será para ponerme publicidad cuando revise mis chatas? Desde luego no se me pasa por la cabeza dejar mis chats en el servidor.


Figura 7: Configuración de almacenamiento de chats

***************************************************************************************
- GTalk: Riesgos de Seguridad [I de III]
- GTalk: Riesgos de Seguridad [II de III]
- GTalk: Riesgos de Seguridad [III de III]
***************************************************************************************

viernes, junio 04, 2010

GTalk: Riesgos de Seguridad [I de III]

***************************************************************************************
- GTalk: Riesgos de Seguridad [I de III]
- GTalk: Riesgos de Seguridad [II de III]
- GTalk: Riesgos de Seguridad [III de III]
***************************************************************************************

Soy usuario de toda la vida de Windows Messenger, lo uso personal y profesionalmente así que me preocupa su seguridad. En el año 2006 o 2007, hicimos una gira por toda España en la que hablabamos de los riesgos de seguridad. En ella aprovechábamos para capturar las conversaciones sin cifrar e hicimos una tool que reconstruía los ficheros que se transmitían por la red.

Para protegerse contra estos riesgos escribí un artículo que fue publicado en la PCWorld de Enero de 2008 y que os dejé publicado aquí: Riesgos de Seguridad y Medidas de Protección en Windows Live Messenger.

Desde hace muy poco tengo instalado Gtalk, y la verdad es que me siento como si hubiera retrocedido atrás varios años en funcionalidad, y echo en falta muchas de las opciones de seguridad que ya conozco de Windows Messenger, aquí van las cosas que no me gustan.

Inicios de Sesión Múliple

Esta es una característica que a mí me descoloca que no exista. Supongamos que alguien consigue robarte una sesión o la contraseña de la cuenta. Eso es ya de por sí malísimo, pero... supongamos que es un, como definía Ben Feinstein, APT (Advanced Permanent Threat) es decir, alguien que está espiandote constantemente y que no tiene un objetivo a corto plazo, y quiere controlarte o hacer un ataque dañino.

Con Windows Live Messenger, en el momento que alguien intente iniciar una sesión en el sistema de chats en cualquier otro ordenador, ya sea en el servicio de Webmessenger o en otro Windows Live Messenger, tú vas a recibir una alerta como esta:


Figura 1: Inicio de sesión múltiple

Esto en Gmail no funciona ni parecido. Supongamos este entorno donde me he creado dos cuentas temporales de Gmail. En una de ellas he iniciado sesión en Gtalk y en el correo con Gmail usando Internet Explorer, mientras que la otra cuenta la he usado para iniciar sesión en Gmail usando Firefox.

Como se puede ver en la Figura 2, en el chat de la derecha aparece conversando Yo y chemai64, pero realmente hay dos Chemai64 distintos conectados al chat.


Figura 2: Dos cuentas conectadas como una

Lo peligroso de esto, es que el usuario Chemai64 legítimo NO ha recibido ninguna alerta de seguridad que confirme este hecho como en Windows Live Messenger.

A partir de ahí, el funcionamiento es trivial. Cualquiera de los dos Chemai64 puede enviar mensajes a Chemai64.luser y el no notará la diferencia.


Figura 3: Envío de mensajes desde distintas máquinas

Y, por supuesto, las respuestas de Chemai64.luser llegarán a los dos.


Figura 4: Mensajes enviados a todas las sesiones

Esto implica que alguien que usurpe una sesión podrá ver toda la conversación sin que el dueño de la cuenta legítima haya podido darse cuenta de que ha iniciado sesión en dos sitios distintos.

***************************************************************************************
- GTalk: Riesgos de Seguridad [I de III]
- GTalk: Riesgos de Seguridad [II de III]
- GTalk: Riesgos de Seguridad [III de III]
***************************************************************************************

jueves, diciembre 18, 2008

Los peligros de la navegación

Durante estos siete días el aluvión de trabajo para el equipo de Windows e Internet Explorer ha sido ingente, se han encontrado con una vulnerabilidad que permitía al atacante ejecutar código arbitrario en el sistema en el espacio del usuario y que según parece contaba con una prueba de concepto que dio lugar a una cadena de exploits de lo más elaborados. Algunos stos exploits hacían uso de la técnica de heap spray que publicaron Sotirov y Mark Dowd como ya anunciaba HD Moore en su primer análisis para poder saltarse las protecciones extras de DEP y ASLR que pudieran estar activadas.

Durante siete días las precauciones a la hora de navegar con IE han sido altas. No hacerlo con usuarios privilegiados y proteger bien el uso de Javascript para que sólo se active en la lista de sitios de confianza, utilizando una política de lista blanca. Ahora ya, si tienes el Windows Update activado, tendrás un parche instalado, listo para instalar o a punto de ser instalado.

Hacer uso de las zonas de seguridad es una de las recomendaciones que más veces he oído contar a “Pajarraco” de los Santos cuando da recomendaciones de seguridad para no ser infectado por exploits en el navegador web. Sin embargo, vivir sin javascript en la mayor parte de Internet implica no ver las páginas correctamente en la mayoría de los casos o perder funcionalidad. Pero también vivir con menos riesgos y con menos publicidad.

Crear una lista blanca de seguridad es muy jodido de mantener, ya que al final, el número de sitios en la lista puede crecer y crecer y crecer, con lo que al final hay que optar por soluciones intermedias. La mejor metáfora que he leído sobre esto es la que realizó Bernardo con las discotecas y los porteros.

Si se consiguiera que todos “los buenos” estuvieran en una lista blanca sería genial, pero parece complicado. A nivel de sistema operativo ha habido y hay diferentes soluciones que han intentado o intentan realizar un mantenimiento de la seguridad en base a listas blancas de programas ejecutables en el sistema.

En los sistemas Windows, las Software Restiction Policies han sido una solución en entornos corporativos que han ofrecido algunas herramientas para el control de aplicaciones pero ni mucho menos ha sido una solución completa de listas blancas.

Secuware en España tiene una solución basada en listas blancas para evitar la ejecución de programas no deseados en la máquina dónde todos y cada uno de los ficheros deben ser aprobados. Otra empresa que trabaja sobre este paradigma es Bit9, una empresa norteamericana que desarrolla software de control de ejecuciones en entornos de red.

Al final, todas los soluciones basadas en listas blancas no dejan de tener las ventajas e inconvenientes que describía Bernardo: Más seguro, más incómodo, más falsos positivos, más administración y listas que pueden crecer al infinito que se optimizan como se puede.

Esta misma gente de Bit9, como empresa que se dedica a hacer listas blancas de software, debe conocer quiénes son los “sospechosos habituales” es decir, cuales son los programas que se despliegan en una red que suelen ser caldo de cultivo por diversas razones. Para ellos, los “sospechosos habituales” son aquellos que:

1.- Se ejecutan sobre Windows: Por eso de la cuota de mercado que tiene esta plataforma en el desktop.

2.- Se lo suelen instalar los usuarios y No los administradores de sistemas: Ya sabéis, para hacer “sus cositas” y que por tanto suelen estar fuera de la administración corporativa.

3.- Son programas que no están catalogados como maliciosos y por tanto pasar los firewalls, los antivirus, etc….

4.- Contienen vulnerabilidades de menos de 1 año y con nivel de criticidad de 7 a 10 según Common Vulnerability Scoring System (CVSS)

5.- La actualización de los mismos recae en el propio usuario normalmente, ya sea mediante un programa en el cliente que él usuario debe utilizar o bien visitando una web para descargar la nueva versión. Vamos, que debe estar atento el usuario a las novedades en seguridad

6.- La aplicación no puede ser automáticamente integrada en el software de despliegue de actualizaciones, tipo System Center Configuration Manager, y se necesita una labor de administración para integrarla en el control corporativo.


Según ellos, estas son las aplicaciones más peligrosas en las redes corporativas con entornos Windows:



Top Ten de los Sospechosos Habituales

Cómo se puede comprobar, la clasificación no ha cambiado significativamente con respecto a lo que publicaron en el 2006.

Sí, hemos tenido 7 días de precaución máxima con IE7, pero debemos tener 365 días de precaución máxima con todo. Para usuarios individuales en su casita estaría bien tener configuradito Windows Update y Secunia Personal Inspector y para las “empresitas” con redes Windows, tener up and running algo como Window Software Update Services y System Center Configuration Manager.

Saludos Malignos!

sábado, agosto 09, 2008

Solucionario Reto Hacking VIII (I de II)
por Dani Kachakil

***************************************************************************************
Solucionario Reto Hacking VIII (I de II)
Solucionario Reto Hacking VIII (II de II)
***************************************************************************************

Introducción

Este documento describe una solución al Reto Hacking VIII de Informática 64, el tercero de la segunda temporada, que se publicó el 4 de julio de 2008 en la siguiente dirección web: http://retohacking8.elladodelmal.com

Pistas

Supongo que el planteamiento del reto estaba bastante claro desde el principio, por lo que no se publicaron pistas previas al inicio del mismo.

Fase 1: Análisis forense de un fichero ".pcap"

Como viene siendo habitual en los últimos retos, para acceder a la primera fase teníamos que registrarnos con un nombre de usuario y una dirección de correo válida, donde recibiremos la contraseña correspondiente generada aleatoriamente. Una vez registrados y autentificados, accedemos a la fase 1.

En esta ocasión no teníamos que encontrar ningún tipo de vulnerabilidad, ya que por primera vez el reto no iba de eso, sino que tendremos que demostrar nuestras habilidades detectivescas en un reto de análisis forense. Todavía no tenemos muy claro nuestro objetivo, pero sí el primer paso, que era tan sencillo como descargarse un fichero comprimido que contenía otro llamado Trama.pcap

Por si alguien se enganchó en ese mismo punto, si no conocemos la extensión del fichero nunca está de más hacer una búsqueda previa:

- http://www.fileinfo.net/extension/pcap
- http://es.wikipedia.org/wiki/Pcap

Rápidamente vemos que se trata de un fichero que contiene capturas de paquetes de una red (obtenidas mediante un sniffer). Un excelente programa para abrir este tipo de fichero es el Wireshark (anteriormente conocido como Ethereal).

Una vez descargado e instalado, basta con abrir el fichero con este programa para visualizar toda la secuencia de paquetes que ha sido interceptada y almacenada. Vemos que hay todo tipo de secuencias de diferentes protocolos clásicos como DNS, NetBIOS, ARP, ICMP, HTTP, UDP, TCP, etc.

Llama la atención que desde el principio del fichero nos encontremos con tantos paquetes marcados como MSNMS, es decir, del protocolo de MSN Messenger. Si aplicamos un filtro para visualizar únicamente este protocolo (tecleando msnms en el cuadro de texto Filter de la ventana principal), tal vez podamos leer la conversación y enterarnos de alguna pista.

Fig. 1 – Visualizando el fichero en Wireshark con un filtro aplicado

Buscando más información sobre este protocolo, nos encontramos con que es propietario de Microsoft y no está publicado, por lo que todo lo que aparece en los siguientes enlaces, no es oficial y es fácil que no esté actualizado, que a veces no esté del todo completo o incluso que tal vez sea incorrecto:

- http://www.hypothetic.org/docs/msn/index.php
- http://msnpiki.msnfanatic.com/index.php

De momento no hace falta entender todo el protocolo que utiliza este programa, ya que si inspeccionamos a ojo el contenido de los paquetes podemos observar las direcciones de correo electrónico correspondientes a cada usuario y leer la conversación que aparece como texto plano en los paquetes MSG. Era la siguiente:


Es evidente que el texto de la conversación no da la solución a la fase, pero ya nos aporta una pista, puesto que habla de un envío de "algo". Si analizamos más a fondo el contenido de otros paquetes, observamos que el inmediatamente posterior al 846 (es decir, el 854, asumiendo que la vista sigue filtrada para visualizar solamente el protocolo MSNMS) contiene el siguiente texto codificado en Base-64, concretamente en el parámetro Context:

fgIAAAMAAAAi1gsAAAAAAAAAAABQAHQAbwBzAEQAZQBFAG4AYwB1AGUAbgB0AHIAbwAuAHAAbgBnAA...

Decodificando dicho texto comprobamos que la parte final corresponde con el texto claro PtosDeEncuentro.png, por lo que parece evidente que ese "algo" que se enviaba era un fichero PNG. Si nos entretenemos decodificando el resto de mensajes en Base-64 que se envían por el mismo protocolo, encontraremos un encabezado de PNG, e incluso podremos recomponer el fichero completo, pero eso solo es la miniatura que se envía incluso antes de aceptar y comenzar la recepción del fichero.

El fichero real se envía directamente del emisor al receptor (P2P), sin utilizar los servidores de MSN que actúan como intermediarios en las conversaciones normales. Por tanto, quitamos el filtro en el Wireshark y visualizamos de nuevo toda la trama de paquetes para darnos cuenta de que existe un tráfico bastante importante por TCP/IP entre las direcciones 192.168.1.105 y 192.168.1.107. Desde esta última IP se inicia el SYN en el paquete 985, recibe el ACK en el 986 y queda claro que a partir de ahí existe una secuencia o stream TCP que parece tener su interés para superar el reto.

Para recomponer la secuencia basta con pulsar con el botón derecho sobre cualquier paquete de la misma y seleccionar del menú contextual (o del menú Analyze) la opción Follow TCP Stream. Entonces nos aparecerá una ventana con toda la secuencia TCP/IP entre ambas direcciones. Sin embargo, tras echarle un vistazo general a toda la secuencia, determinamos que solo nos interesa el tráfico de un único sentido, ya que es el que contiene el fichero propiamente dicho. Por tanto, seleccionamos del cuadro de lista desplegable la opción que muestra solamente los paquetes enviados desde 192.168.1.107 hacia 192.168.1.105 y exportaremos el contenido a un fichero. Para ello es imprescindible seleccionar la opción adecuada (RAW), ya que de otra forma el fichero resultante no se corresponderá con la secuencia original.

Fig. 2 – Opción "Follow TCP Stream" en Wireshark

Una vez exportado el fichero, comprobamos que la cabecera del PNG aparece después de 112 bytes, pero incluso eliminando esa parte, el resultado no parece corresponder con un fichero PNG válido. Revisando la secuencia con un editor hexadecimal comprobamos que cada cierta distancia aparecen algunos bloques de datos sospechosos, ya que no parecen corresponder al fichero. Analizando este tipo de bloques llegamos a la conclusión inicial de que tienen una longitud de 52 bytes, que comienzan por "78 05 00 00" (hex) y aparecen a intervalos regulares de 1404 bytes, así que optamos por eliminarlas pero aún así no se visualiza el PNG. Más adelante veremos que esto no es del todo cierto…

Está claro que nos hemos dejado algo por el camino y es que con todo lo que hemos hecho, no era tan difícil toparse con un encabezado "PK" y con un Cliente.exe que aparecía por ahí muy cerca. La clave del fallo es que hemos asumido erróneamente de que se trataba del envío de un fichero PNG, cuando en realidad se trata de un envío simultáneo de dos ficheros, tal y como podemos comprobar si además del anterior (854) analizamos también el contenido del paquete 940 (de nuevo el Context que aparece en Base-64), ya que contiene el texto Cliente.zip y eso nos llevará a adoptar otra metodología de trabajo orientada a diferenciar y extraer los bloques de cada fichero por separado.

Ahora es cuando entran en juego esas cabeceras de 52 bytes que antes habíamos eliminado tan alegremente, ya que contienen información muy valiosa que no podemos ignorar (incluso en el caso de haberse transferido un único fichero, este método no habría funcionado). Si volcamos todos esos bytes y analizamos minuciosamente todas las cabeceras que comienzan por "78 05 00 00" y que habíamos asumido que tenían una longitud total de 1404 bytes, nos damos cuenta de que la mayoría de bytes son cero o son idénticos en todas ellas, pero otros varían, tal y como podemos apreciar en esta tabla cuyos valores están todos en decimal:


Por las cabeceras, sabemos que el primer paquete corresponde al fichero PNG y el segundo al ZIP, por lo que no resulta complicado concluir que los bytes 5, 9, 21 y 22 tienen una relación directa con el fichero. Puede que indiquen su tamaño total, o que sean parte de algún identificador, aunque tampoco nos importa demasiado para lograr nuestro objetivo, que no es otro que separar ambos ficheros. Sin embargo, si juntamos las partes correspondientes al ZIP, no conseguimos recomponer el fichero, ya que no se podrá descomprimir correctamente con ningún descompresor.

Por otro lado, en la tabla hemos calculado el tamaño del paquete restando el offset actual del siguiente, pero comprobamos que existe un salto inesperado que resalta otro error del planteamiento ya que aparentemente tenemos un paquete de tamaño 2451, cuando en realidad en ese bloque se esconden dos paquetes. No se trata de localizar la secuencia en hexadecimal "78 05 00 00", sino de leerla e interpretarla correctamente. Esos 4 bytes nos están indicando la longitud del resto del mensaje, en orden inverso (en nuestro caso, 0578 en hexadecimal, o lo que es lo mismo, 1400 bytes).

Por ello debemos corregir la información anterior e interpretar correctamente los paquetes correspondientes a ese bloque, ya que todo parece indicar que nos falta el último trozo del fichero ZIP.


Ahora que ya hemos conseguido separar ambos ficheros, descomprimimos el ZIP, extrayendo y ejecutando el fichero Cliente.exe (que requiere .NET Framework 2.0), comprobando que se trata de una sencilla aplicación que nos solicita una contraseña para obtener una supuesta clave de cifrado.

Para analizar su funcionamiento interno nada mejor que descompilarla usando alguna herramienta como .NET Reflector y localizar el código que se ejecuta al pulsar el botón btRecuperar del formulario principal (llamado Clave). Vemos que hay una instrucción IF que comprueba si la contraseña introducida tiene una longitud de 9 caracteres y además hay un bucle que verifica que dicha contraseña se corresponde con una almacenada en un vector de enteros incluido en el mismo método. Si la contraseña coincide, entonces se realiza una llamada a un servicio web.

Fig. 3 – Código descompilado usando .NET Reflector

El código es tan evidente que no vale la pena elegir un camino que no sea el de determinar la correspondencia directa de los caracteres de la contraseña en ASCII (es decir, chur*****) e introducirla en el programa en ejecución para que continúe ejecutando el resto del código, obteniendo así la palabra clave de cifrado necesaria para superar la fase 1, es decir, [[^^*********^^]]. Por cierto, el fichero PNG no tenía ninguna utilidad para superar el reto, pero por simple curiosidad, este era su contenido:

Fig. 4 – Fichero PtosDeEncuentro.png (reducido)

***************************************************************************************
Solucionario Reto Hacking VIII (I de II)
Solucionario Reto Hacking VIII (II de II)
***************************************************************************************

miércoles, marzo 12, 2008

Quedada en Barna!

Hola malignos!

Bueno, como sabéis tenemos un pedazo de Evento en Barna al que pienso asistir como un campeón en primera fila.

El evento es gratuito y van Pablo Catalina de S21Sec para hablar de seguridad en VoIP e IM, Juan Garrido "Silverhack" de Informatica64 para hablar de Análisis Forense, David Cervigón de Spectra Technet para hablar de Seguridad en IIS7 y Palako, actualmente trabajando en Yahoo! para hablar de Seguridad en Web.

Agenda y Registro

Así que... la noche antes tendremos cena, fiesta y cachondeo. En la cena podras charlar con todos estos pájaros y además hacer el gamusino. Cualquiera está invitado siempre y cuando demuestre su condición de friki de la informática (y pague su parte tú!)

Si quieres venir, ya sabes, ponme un mail con tu teléfono y tu intención de venir. Se admiten chicas (for a change).

Saludos Malignos!

No Lusers Nº 24: Ligando




viernes, febrero 01, 2008

Riesgos de Seguridad y Medidas de
Protección en Windows Live Messenger (IV/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)
***************************************************************************************
Cifrado de la transmisión de ficheros

Para conseguir cifrar la transmisión de ficheros se necesita utilizar versiones profesionales. Microsoft dispone de Microsoft Office Live Comunications Server 2007, que, entre otras cosas, es un servidor de mensajería instantánea compatible con Windows Live Messenger pero que permite autenticación de los clientes, cifrado de mensajes y transmisión de ficheros, filtrado de contenido de conversaciones y filtrado antimalware de ficheros transmitidos.

Existen otras soluciones como la versión Simp-Pro de la herramienta vista para comunicaciones personales, pero si la arquitectura de la empresa está basada en tecnologías Microsoft el uso de MOLCS es una muy buena alternativa.

Si la red no es segura y no estás utilizando ningún sistema cifrado de mensajería y no quieres que nadie acceda al fichero que estás transmitiendo se pueden utilizar otras alternativas para hacer llegar el fichero.

Robo de contraseñas Messenger

Una de las preguntas que más circulan por la red, es ¿se pueden robar las contraseñas de las cuentas de Messenger? Existe mucha rumorología y mucho miedo al respecto y hay algunas claves que debes seguir para tener tu sistema seguro.
Robos por los sistemas de recuperación de contraseñas

El sistema Windows Live Messenger permite asociar cuentas de correo al servicio Windows Live ID. Esto quiere decir que la seguridad del Messenger dependerá de la seguridad de tu cuenta de correo asociada. Basta con acceder a tu cuenta asociada y pedir un “reseteo” de contraseña y el atacante podrá entrar a tu servicio de mensajería instantánea.

En el caso de Hotmail, como en muchos otros servicios de correo, se permite cambiar la contraseña utilizando un sistema de pregunta y respuesta. Si la pregunta o la respuesta son fáciles, pueden quitarte la contraseña. Preguntas como “Mi película favorita” o “La matricula de mi coche” son fáciles de responder en una conversación así que usa la imaginación para que nadie pueda averiguar la respuesta.

Imagen 9: Recuperación de contraseñas para Windows Live

Robos por descuido

Cuando se utiliza Windows Live Messenger, el sistema, por comodidad te permite almacenar la contraseña para que sea más cómodo iniciar sesión. Si haces esto, cualquiera que acceda al equipo puede acceder a tu cuenta, pero no solo eso, basta con acceder al sistema de ficheros y utilizar algún programa para recuperar contraseñas en él. En la imagen se ve en funcionamiento a CAIN. En la imagen 10 se pueden ver dos cuentas utilizadas en el mismo ordenador. Las dos han sido usadas con la opción de recordar mi dirección de correo electrónico, pero sólo una con la opción de recordar la contraseña. Con un simple click se puede acceder a la password. Este método se utiliza mucho en cibercafés dónde es fácil que haya alguien que se haya descuidado.

Imagen 10: Acceso a contraseñas con CAIN

Robos por Malware

Mantener el equipo limpio es una de las máximas, así que procura no ejecutar nada en tu sistema que no sepas de dónde viene. El uso de Troyanos con opciones de keylogger está muy extendido, así que es fácil que si no cuidas de tu ordenador accedan a todas tus credenciales, incluidas las de Messenger.

Es también por Messenger por dónde se distribuye mucho malware que utiliza la lista de contactos de Messenger para expandirse. Hace pocos meses circuló uno, que aún estará dando coletazos que se ponía mensajes como “¡Mira que fotos más chulas!” o “¡Deberías poner esta foto en la que sales tan gracioso!”.

Estos mensajes están pensados para llamar la curiosidad del receptor y que este ejecute este archivo que le llega desde un supuesto contacto amigo. Acto seguido, nada más abrir el archivo, el equipo queda infectado y el troyano lee la lista de tus contactos en Windows Live Messenger para reenviarse a todos. Como se puede apreciar esta forma de infección es muy rápida y hábil. No porque tengas un antivirus en tu equipo vas a estar a salvo ya que estos no detectan todo.

El cazador Cazado

Uno de los métodos más utilizados para robar contraseñas de Windows Live Messenger es el del “Cazador Cazado”. El método consiste en poner un “supuesto método infalible para robar contraseñas en Messenger. Se suele poner en las redes P2P y consiste en decir algo así como:

“Ey, Microsoft se dejo un correo electrónico para resetear contraseñas solo tienes que enviar un mail a supporcuentasmessenger@hotmail.com con el siguiente formato:

Cuenta_a_resetear_contraseña::::Tu_cuenta_para_recibir_la_nueva_contraseña:::Tu_contraseña.

¡Es infalible, no entiendo como Microsoft puede tener estos despistes!”


Los “cazadores” envían ese mail a una cuenta que lógicamente no tiene nada que ver con Microsoft y envían la cuenta de la persona a la que quieren robar, su cuenta de correo y su contraseña al limbo. Y de la cuenta… nunca más se supo.
Me han robado la contraseña, ¿la puedo recuperar?

Si te han robado la contraseña de Windows Live Messenger existen varias formas de poder recuperarla, la primera, lógicamente es responder a la pregunta secreta, pero claro, cuando una credencial es robada, lo primero que se hace es cambiar la pregunta secreta. No obstante es la primera opción que debes intentar. La segunda opción es intentar recuperarla mediante la cuenta de correo asociada. En este caso se envía una autorización de “reseteo” de contraseña a la cuenta de correo electrónico que tiene asociada la cuenta.

Pero… y ¿si te la han cambiado? Aún así el equipo de Windows Live tiene un mecanismo para devolverte la contraseña. Para ello se guarda todo el historial de contraseñas y datos que ha tenido configurada tu cuenta. Debes ponerte en contacto con ellos mediante un mail explicándoles la situación en detalle. Ellos te realizarán un completo test pidiéndote mucha información histórica de la cuenta sobre antiguas contraseñas, antiguas preguntas secretas, datos personales, etc… No es un proceso muy rápido, pues se debe comprobar la autenticidad de la historia, pero funciona (yo he recuperado un par de contraseñas a amigos de esta forma). La última opción que te queda es denunciar los hechos en una comisaría. Con la denuncia Microsoft puede deshabilitar la cuenta y proceder a la recuperación de la misma.

Recomendaciones finales

Los sistemas de mensajería son hoy casi igual de importantes como el correo electrónico, su uso es cada vez mayor en entornos de trabajo, colaborativos, distribución de contenidos, etc… Mantener la seguridad de la cuenta incide en tu seguridad personal y de las empresas. No guardes las conversaciones en lugares que puedan ser accesibles, no recuerdes ni la cuenta ni la contraseña en ningún equipo, si usas Webmessenger elimina los archivos temporales de Internet para evitar que nadie acceda a tu lista de contactos, no aceptes ficheros potencialmente peligrosos ni de los contactos que conoces, puede que esté infectado, cuida la seguridad global de tu PC … y disfruta charlando en la red.

***************************************************************************************
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)
***************************************************************************************

jueves, enero 31, 2008

Riesgos de Seguridad y Medidas de
Protección en Windows Live Messenger (III/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)
***************************************************************************************
¿Cómo Cifrar los mensajes y la transmisión de ficheros?

Las versiones empresariales de Windows Messenger permiten el uso de transmisiones cifradas, pero por defecto, en nuestras comunicaciones con Windows Live Messenger debemos tomar medidas adicionales para proteger la privacidad de nuestras comunicaciones cuando nos encontremos en redes no seguras.

La opción más extendida es la utilización de sistemas de cifrado externos. Este tipo de aplicaciones funcionan utilizando sistemas criptográficos para las comunicaciones. Una de las soluciones más extendidas es Simp (Secway Instant Messenger Privacy). Dispone de dos versiones, la primera la versión Simp-Lite es gratuita y permite la autenticación de la persona y el cifrado de mensajes de texto. La versión profesional Simp-Pro permite además el cifrado de ficheros transmitidos. Nada más instalar el software en nuestro ordenador el sistema nos va a pedir que generemos nuestras claves con un sencillo Asistente de Configuración. El proceso completo es el siguiente:

Paso 1: Explicación del Proceso

Paso 2: Generamos tantas claves como sistemas queramos utilizar con ellas. Elegimos la longitud y el algoritmo de generación de claves y para que servicios queremos utilizarlo [MSN, Yahoo, etc… o todos]

Paso 3: Elegimos una contraseña para proteger nuestra clave.

Paso 4: Proceso de generación aleatoria de clave. Se realiza mediante el movimiento del ratón.

Paso 5: Generación de la clave

Paso 6: Claves listas para ser utilizadas

Una vez creada nuestra claves podemos comunicarnos de forma segura con todos los que tengan implantada una solución similar. Una vez creadas las claves el sistema permite tres tipos de comunicaciones:

- Comunicación No Cifrada: El sistema detecta y alerta de que se está produciendo una conversación No Cifrada. Lógicamente esto permite que se siga pudiendo comunicar con personas que no tienen instalado ningún software de cifrado tranquilamente, pero además nos advierte del riesgo.

- Comunicación Cifrada: Se negocia una clave aleatoria para el cifrado AES-128 pero no se ha podido comprobar que el destinatario es quien dice que es. En este caso nos encontramos con una conversación en la que ambos soportan el sistema criptográfico pero no se ha realizado el intercambio de claves. En la negociación de la clave, al no haber podido comprobar al participante de la comunicación es posible perpetrar un ataque de Man In The Middle en este sistema dónde el hombre en medio negocia claves de sesión distintas con los participantes de la comunicación y puede acceder a los datos de la conversación.

- Comunicación Cifrada y Autenticada: En este tipo de comunicaciones se utiliza el sistema Diffie-Hellman para trabajar. Es decir, utilizando las claves públicas se negocia una clave aleatoria para cifrar la conversación con AES-128 (Advanced Encryption System). Para ello es necesario haber intercambiando la clave pública con los participantes de la comunicación. De esta manera, cuando se genera la clave que va a ser utilizar para esta conversación en el protocolo AES-128 se va a enviar cifrada con la clave pública del destinatario para garantizar que sólo el poseedor de la clave privada puede acceder a ella.

En la imagen 6 podemos ver como en la herramienta contamos con dos claves públicas de dos usuarios que nos permitirán autenticarlos, y como estamos teniendo dos conversaciones en este momento, una cifrada pero no autenticada, en color azul, y otra sin cifrar ni autenticar en color rojo.

Imagen 6: Estatus de cifrado y autenticado de conversaciones

El usuario de la conversación cifrada y no autenticada podemos autenticarlo si realizamos el intercambio de claves públicas. En este caso vemos como el mismo programa dispone de un sistema de intercambio de claves públicas. Como se puede ver la clave es comprobable con lo que bastaría con realizar otra comprobación con el dueño de la clave para garantizar que es la clave auténtica y aceptarla.

Imagen 7: Intercambio de claves públicas

Una vez autenticado el usuario la conversación pasaría a un nivel de seguridad superior de cifrado y autenticado como se puede ver en la Imagen 8:

Imagen 8: Conversación cifrada y autenticada.


***************************************************************************************
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)
***************************************************************************************

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)
***************************************************************************************

Entrada destacada

+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial

Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares