29 jun 2011

Cookie Monster: automatizando el hijacking



Hace pocos días se publicó lo fácil, y realmente lo es y mucho, que es hacer una suplantación de identidad en Tuenti, la red social española. Por norma general, en redes sociales, sitios de compra (dealextreme, focalprice), cuentas de usuario de foros, son vulnerables a este tipo de ataques en el cual el robo de una cookie se convierte en la suplantación de identidad de un usuario.
Cookie Monster es una de esas herramientas que automatizan el proceso de obtención de cookies y proponen un arquitectura MITM con ARP Poisoning para lograr dicho objetivo. La herramienta está disponible en su versión 0.0.1 y al descargarla te encontrarás con sus fuentes, escrita en C, por lo que tocará compilarla...
Backtrack
Para esta proof of concept se ha utilizado backtrack, pero si tenéis un Ubuntu o un Debian debéis seguir el mismo proceso. En primer lugar hay que descargar la herramienta cookie-monster. Una vez descargada debemos ponernos el mono de compiler, si lo sé sería más divertido si nos lo dan todo hecho, pero el resultado es bastante bueno, así que trabajemos un poco, que no digan que los jóvenes buscamos la ley del mínimo esfuerzo...
Nota informativa para descomprimir el archivo o doble click sobre el explorador (nautilus, konqueror) o ejecución en una shell de 'tar -xvzf <ruta fichero>' (ruta absoluta o relativa).
Antes de seguir hay que tener en cuenta que necesitamos disponer de unas librerías antes de seguir, libpcap-dev libnet-dev libnids-dev libgtk2.0-dev libsqlite3-dev. Para su instalación ya sabéis 'apt-get install <chorro de librerías>'.
Sé lo que estás pensando... si que necesita esto librerías, pues si, pero pensemos en el resultado final... y una última nota informativa, si la versión de sqlite es inferior a la 3.7 no se podrá abrir el archivo cookie.sqlite, y esto es muy importante ya que si no cookie monster no podrá insertar la cookie en el fichero, o más bien base de datos, dónde firefox almacena las cookies.
Para la instalación de la versión 3.7 o superior de sqlite ejecutaremos las siguientes órdenes en una shell:
wget http://www.sqlite.org/sqlite-autoconf-3070700.tar.gz tar xzvf sqlite-autoconf-3070700.tar.gz (Descomprimir y entrar en su carpeta)
./configure --prefix=/usr
make
make install
Llegados a este punto ya tenemos todo lo necesario para una instalación correcta mediante la compilación de los fuentes de cookie monster.
Compilación
Para realizar la compilación de la aplicación nos situamos en la shell dentro de la carpeta de cookie monster. Debemos ejecutar './configure'. Después ejecutaremos un make, o podríamos ejecutar directamente 'configure && make' como se prefiera.
Bien, ha sido sencillo, ya tenemos compilado cookie monster ahora toca probarlo... ¿no lo estás deseando?


PoC
El objetivo de esta prueba va a ser el robo de una cookie de facebook, dejemos un rato en paz a tuenti, y para ello ejecutamos gcookiemonster, binario que estará en la carpeta src después de la compilación de la aplicación. NOTA: no se os olvide colocar el equipo en modo enrutador, echo 1 > /proc/sys/net/ipv4/ip_forward.
Una vez abierto nos encontramos una GUI con 5 pestañas, en primer lugar nos interesa configurar en la pestaña settings de dónde firefox pone y guarda las cookies. La ruta dónde debemos buscar es ~/.mozilla/firefox/nq474mcm.default, elegiremos el fichero cookies.sqlite, recordad que en este fichero se almacenan las cookies del navegador, será utilizado por cookie monster para insertar las cookies robadas.
La siguiente pestaña a tener en cuenta es arp, desde aquí podremos escoger a qué equipos se les realizará un MITM. Es sencillo realizamos un escaneo en una red, y después escogemos la víctima (target 1) y el router (target 2).
Otra pestaña a tener en cuenta es la de sniff, en esta pestaña haremos que cookie monster nos muestre todas las cookies que está capturando. Es recomendable seleccionar que excluya nuestra propia IP para no confundirnos con nuestras propias sesiones. Pinchad en el botón sniff y ¡adelante!
Nos colocamos en la pestaña cookie y a esperar a que la víctima entre en algún sitio con una sesión de usuario. En el ejemplo, se ha probado con facebook y como se puede visualizar en las imágenes es realmente sencillo...

 Ejecución de la cookie
Y el resultado es...


Resultado... suplantada la sesión de facebook
Por desgracia, no siempre es tan fácil, y el problema de estas herramientas automatizadas, es que si algún sitio cambia su forma de utilizar la cookie, es probable que la herramienta deje de funcionar correctamente. Por ejemplo, las pruebas que hemos realizado con tuenti, no son satisfactorias, y me podréis decir pero si habéis demostrado que es muy sencillo... si... pero la herramienta toma como la URL, y en el caso de tuenti no entra... ya que tuenti, en su host sería .tuenti.com. En fin, al menos sabemos que con facebook funciona a las mil maravillas.

5 comentarios:

  1. Muy bueno! No lo conocia...Un saludo!

    ResponderEliminar
  2. He estado dándole al coco sobre este tema...La Agencia Española de Protección de Datos dicta unas medidas de seguridad mínimas para los datos de nivel medio (bancarios).Yo me pregunto: Si con robar las cookies uno puede entrar en la cuenta de alguien ajeno (Facebook), y supongamos que este ha guardado algun tipo de datos bancario en su cuenta (Apartado "Notas" con privacidad "Solo yo"), entonces sus datos han sido vulnerados, cosa que se puede denunciar.Entonces, de quier seria la culpa:-Facebook, sabe que existe ese "error" y no lo ha modificado.-Usuario hackeado, no deberia ponerse en redes inseguras.-Hacker, no puede robar cookies.Por supuesto no es nada recomendable poner datos bancarios en sitios "publicos"Que opinais??

    ResponderEliminar
  3. ¿Por qué no haces un video para ayudar a eliminar un Hijacking

    ResponderEliminar
  4. Yo no se mucho, pero si algo de phpConseguir las cookies de tuenti es muy fácil, ya que no las han puesto una protección para que no se puedan cojerlas cookies desde otras webs. Esto también sirve para si 2 webs tienen una cookie con el mismo nombre no se sobreescriban. El caso que tuenti no lo tiene, con lo cual simplemente escribiendo $COOKIE_('nombre de la cookie') la tendremos y luego la podremos subir a una base de datos. ESTO ES PHISHING Y NO DEBE DE HACERSE, pero sirve para advertir lo fácil que es conseguir la información de una cookie

    ResponderEliminar