Menú principal

viernes, 29 de octubre de 2010

Robos de sesión mediante Firesheep: POC con Facebook y Tuenti

El término hijacking es empleado para definir la acción de realizar un ataque contra uno o más usuarios con la intención de recolectar cookies y así poder suplantar la identidad de dichos usuarios. En la gran mayoría de portales web, este ataque se puede llevar a cabo gracias a que no se hace un buen uso del protocolo SSL, sea por sencillez, ahorro de recursos, etcétera. Ya que una vez el usuario ha sido autenticado mediante el protocolo HTTPS, este pasa a continuar la conexión con el protocolo HTTP, por lo que todos los datos que se estén enviando viajaran en claro por la red.

A través de Cyberhades, pudimos leer como en la ToorCon 12 (Conferencia de seguridad informática) se publicó la extensión para Firefox Firesheep soportada en Windows y Mac OS X. La función de dicha extensión es básicamente la de escuchar todo el tráfico de nuestra interfaz y detectar cuando se están enviando cookies que puedan ser de interés para el usuario, mostrándolas por pantalla y de este modo dando la posibilidad de realizar suplantaciones de identidad de una forma sencilla e intuitiva.

Seguidamente se va a realizar una prueba de concepto para visualizar la sencillez de la extensión y el peligro de la misma. Descargamos el fichero desde el portal web de Firesheep. Podremos observar que se nos ha descargado un fichero en formato XPI, si arrastramos este a nuestro navegador Firefox, automáticamente se nos informará si deseamos instalar la extensión. Una vez instalada y reiniciado el navegar podremos observar la extensión en nuestro panel de Complementos.

Figura 1: Instalando Firesheep

Por defecto la extensión aparece como oculta, si deseamos interactuar con ella, es necesario dirigirnos a ‘Ver / Panel lateral / Firesheep’  y automáticamente aparecerá un panel en la banda izquierda del navegador que nos permitirá interactuar con Firesheep.

Figura 2: Plugin en Firefox

En la parte inferior del panel se podrá abrir la ventana de preferencias para configurar la extensión:

Figura 3: Configuración de Firesheep

- Capture: Permite indicar porque interfaz se va a escuchar el tráfico.

- Websites: Desde este módulo se podrá visualizar, añadir, editar, eliminar, importar y exportar las cookies que soporta la extensión. Desde el siguiente enlace (http://github.com/codebutler/firesheep/wiki/Handlers) se puede visualizar cuales son soportadas y cuáles serán soportadas en un futuro.

- Advanced: Permite configurar el protocolo y puerto que va a filtrar en busca de las cookies.

Para hacer funcionar la extensión y que empiece a capturar cookies únicamente bastará con pulsar sobre el botón Start Capturing, y esperar a que alguien realice alguna conexión a alguno de los portales web soportados.

Figura 4: Detección de cookie de Facebook

Una vez capturada una cookie de otro usuario, la propia extensión la añadirá al panel y ya podremos interactuar con el portal web que estaba visitando la víctima, haciéndonos pasar por él.

Figura 5: Acceso a cuenta de Facebook

Como ya se ha comentado anteriormente la extensión permite añadir portales que no estén soportados, Tuenti por ejemplo no se encuentra en la lista de soportados ni tampoco en los pendientes por añadir. Bastaría únicamente con dirigirte a la pestaña de añadir Add en la pestaña de Websites de Preferencias e introducir el script necesario para que detecte el portal web que deseemos.

El siguiente código es el ejemplo del código necesario para que la extensión detecte cookies de tuenti.

// Author: SeguridadApple - http://www.seguridadapple.com
// v2.0
register({
name: "Tuenti",
url: 'http://www.tuenti.com/',
domains: [ 'tuenti.com' ],
sessionCookieNames: [ 'sid' ],

identifyUser: function () {
var resp = this.httpGet(this.siteUrl);
this.userName = 'Tuenti User';
this.userAvatar = 'http://alt1040.com/files/2009/03/tuenti.jpg';
}
});

Una vez detectado una cookie de tuenti, nuestra extensión tendrá una apariencia similar a la siguiente.

Figura 6: Detección de cookie de Tuenti y acceso a cuenta

Hay que tener en cuenta que es necesario estar escuchando el canal para poder capturar las cookies de los usuarios. Conexiones cifradas como se puede encontrar en la tecnología Wifi (WPA, WPA2) será necesario acompañar a la extensión con un ataque MITM para interceptar todo el tráfico de la víctima. En escenarios con concentradores de conexiones HUB o redes WiFi abiertas, como pueden ser universidades, no será necesario realizar el ataque MITM, ya que todo el tráfico llega a nuestra máquina en texto claro.

Una solución rápida y eficaz sería la de aplicar extensiones a nuestros navegadores para que forzaran la navegación siempre que sea permitido por el protocolo Https. Esperamos que esta prueba de concepto os haya concienciado de lo importante que es una buena implementación del protocolo SSL en portales web donde se maneja gran cantidad de información privada y de no conectarte nunca a sitios privados desde redes inseguras.

25 comentarios:

  1. Buenas,

    No he tenido tiempo aún de probarlo, pero... ¿No funciona con WEP? Aunque las conexiones WEP son cifradas, se utiliza la misma clave para todos los usuarios, con cualquier sniffer es posible ver todo el tráfico que circula por una Wifi ¿No es así?

    ¿No sería posible también entonces robar las cookies en redes WEP?

    Saludos!

    ResponderEliminar
  2. Hola Malakai,

    Evidentemente si es posible realizar el ataque en redes wifis WEP, ya que a pesar de que los datos están cifrados, todos los usuarios utilizan la misma clave. El articulo indicaba que no era posible, pero ya ha sido corregida la errata.

    ResponderEliminar
  3. Holaaa, decirte que yo lo he hecho en redes WEP, pero he necesitado técnicas MITM, supongo que será porque es una red switcheada. Por cierto el script de tuenti, funciona a medias, me entra, pero se reinicia cada vez... Gracias por la info.

    ResponderEliminar
  4. En una red con switches no deberia funcionar a no ser que pudieramos redirigir el trafico a una maquina en concreto, verdad?

    ResponderEliminar
  5. Así es, en una red switcheada no funciona a no ser que se haga una redirección de tráfico con herramientas como 'cain', que realizan ataques de MITM (Man In The Middle)

    Saludos!

    ResponderEliminar
  6. hola a todos alguno sabe porque da este error??

    muchas gracias.

    ReferenceError: _ is not defined

    ResponderEliminar
  7. Porque no tienes las librerias del wincap instaladas.

    ResponderEliminar
  8. una ¿? lo ejecuto pero solo capta las sesiones de mi propia maquina ¿tiene algo q ver en el modo de interfaz que lo ponga o es por que en la red que he agarrado debe estar switcheada. (lo que aun no lo se).

    Gracias.

    ResponderEliminar
  9. Hola anónimo,

    si la red está switcheada necesitas hacer una ataque Man in the middle, con alguna herramienta como CAIN (sólo tiene soporte para Windows) o Ettercap.

    Saludos!

    ResponderEliminar
  10. Hmmm, pues a mi no me captura ninguna cookie, debería revisar el script porque aunque sí está capturando de otros sitios como Facebook, de Tuenti no captura ninguno.

    ResponderEliminar
  11. lo he probado hoy en la universidad en una red Wifi WEP, mi compañero de al lado estaba en facebook y en twitter, pero el Firesheep no capturaba la sesión de mi compañero.

    si yo ponia en facebook en el google chrome, entonces si la capturaba.

    debo entender que en una red wifi WEP debo hacer el ataque MITM para que funcione FireSheep?

    ResponderEliminar
  12. Necesitas un MITM pero no porque estés en una red WEP, si no por que es una red switcheada. Vamos, la mayoría de las veces vas a necesitar un MITM

    ResponderEliminar
  13. gracias Anínimo.

    a ver si mi apreciación es correcta, si lo pruebo en un red switcheada debería atrapar las cookies de los clientes que se conectan en ese segmento del switch o no se captura nada por la propia naturaleza del switch.

    además si estuviera en una red cableada y basada en hubs también funcionaría el FireSheep?

    ResponderEliminar
  14. En una red con un hub también te funcionaria el firesheep. La direferencia entre una red con un hub y una red switcheada, es que en una red con un hub cada ordenador recibe todos los paquetes y descarta los que no son los suyos, y en la switcheada solamente recibe los suyos, de ahí que se tenga que hacer un MITM si quieres capturar paquetes que no iban dirigidos hacia ti.

    ResponderEliminar
  15. si, entiendo que los access points funcionan como hubs, es por eso que el firesheep funciona en redes inalambricas.


    tendré que probar en una red wifi sin contraseñas porque en la WEP no captura ninguna cookie

    ResponderEliminar
  16. Ya te digo que no tiene que ver nada lo de las password, yo he capturado en wep y wpa2 y sin problemas.

    ResponderEliminar
  17. Hola, debido a que los chicos de tuenti.com habían realizado un cambio en su sistema de cookies el script había dejado de funcionar.

    Lo hemos modificado para que vuelva a ser funcional, únicamente es necesario capturar la cookie 'sid', utilizando la siguiente linea:

    sessionCookieNames: [ 'sid' ],

    También podéis volver a copiar el script (ya está modificado)

    Saludos

    ResponderEliminar
  18. El script funciona,pero se queda en una especie de bucle,igual modificando algo de el propio plugin deja de realizar el bucle,yo estoy probando algo en este archivo de el .xpi "ff-sidebar.js." en la función "onResultDoubleClick" a cambiar alguna cosita,si doy con ello aviso por aquí jeje..
    Saludos

    ResponderEliminar
  19. Que "interface" uso para poder capturar?

    ResponderEliminar
  20. ¿Y qué tiene que ver esta parte de código en TUENTI?

    this.userAvatar = 'http://alt1040.com/files/2009/03/tuenti.jpg';

    ¿Tal vez has copiado el post de ALT1040? jiji

    ResponderEliminar
  21. Hola 'Anónimo'.

    En primer lugar te respondo a tu segunda pregunta: No. 'Ji ji'. la variable userAvatar indica el icono que aparece en la barra de sesiones capturadas por firesheep, y se ha elegido esa imagen porque es la primera que se encontró con el logo ";)" de Tuenti en google images. Es más, si buscas el articulo donde aparece ese icono en alt1040 hablan de la compra de telefonica a Tuenti, http://alt1040.com/2010/08/telefonica-compra-tuenti (¿Lo habrán copiado?)

    ;-)

    ResponderEliminar
  22. Hola a todos, a mi solo me capta las sesiones que hago yo mismo en mi portatil, nada mas. Yo tengo un mac, tendre que instalar algo a mayores??

    Gracias

    ResponderEliminar
  23. Hola Anonimo, el funcionamiento técnico de firesheep consiste en que analiza las cookies que pasan por tu tarjeta de red, y si coinciden con las reglas (scripts) especificados, te permite suplantar la sesión mediante el uso de la cookie.

    Obviamente, captas las cookies de tu propia sesión. Si no obtienes las cookies de las sesiones del resto de usuarios de tu red puedes realizar ataques de MiTM desde Mac OS X. Si no sabes realizarlos, estate atento a este blog, ¡Quizas publiquemos artículos con herramientas para realizarlo! ;)

    ResponderEliminar
  24. El script no funciona te hace un bucle y una vez que carga la pagina vuelve a cargarse otra vez y asi todo el rato..
    He estado mirando por internet y no he dado con ninguno que funcione... ¿alguien sabe donde esta el problema?
    gracias un saludo

    ResponderEliminar
  25. Me encanta que la gente comparta información y técnicas para aprender a protegerse. De este tuto, deduzco que algo muy básico es cambiar el hub por un switch... algo es algo...

    Pero... ¿No da un poco de pánico pensar en quien puede utilizar esta información? A mí me da reparos la verdad...

    Por favor... Utilizad esto SOLO para aprender a protegeros! Que os veo!

    Gracias SeguridadApple, yo sigo aprendiendo :)

    ResponderEliminar

Artículos relacionados

Otras historias relacionadas

Entradas populares