9
¿ Capturar cookies ? Pero ésto no iba de informática. pues no. Sigue leyendo. .: Cookies :. Captura de sesiones.

Capturando cookies nil_hop

Embed Size (px)

DESCRIPTION

Capturando cookies nil_hop

Citation preview

Page 1: Capturando cookies nil_hop

¿ Capturar cookies ? Pero ésto no iba de informática. pues no. Sigue leyendo.

.: Cookies :.

Captura de sesiones.

Page 2: Capturando cookies nil_hop

INTRODUCCIÓN

En este documento hablaré sobre cookies, secuestro de sesiones ... Comentaré cuáles son las cookies más “importantes” de diferentes proveedores de servicios, etc. Trataré nada más un método que me parece bastante interesante para analizar la seguridad de ciertos servicios ofrecidos vía web, que parecen estar blindados porque la identificación del usuario en los mismos se produce a través de protocolos de cifrado como el SSL o TLS.

CONCEPTOS – Cookie: fragmento de información que almacena datos del visitante de un

sitio web. Ya sea en la URL o en el ordenador del usuario del web site. ¿ Qué haremos con ellas ? Pues sencillo, las capturaremos para después reutilizarlas y así suplantar al usuario (en este caso nosotros) víctima del ataque.

– Sniffing: escucha o registro del tráfico que circula por una red. Utilizaremos WireShark para esnifar nuestra red, GNU/Linux porque me gusta, y unos pequeños conceptos de protocolos de redes.

– Captura de sesión: en este documento se refiere a obtener el acceso a cierta parte privada de un determinado proveedor web de servicios sin habernos autentificado previamente. En castellano, esperaremos a que un usuario de nuestra Red se loguee en su proveedor de correo web favorito, por poner un ejemplo, y haremos como si fuésemos él con nuestro navegador.

Básicamente éstos son los 3 conceptos con los que trataré en este artículo. Para mas detalles ---> Http://www.google.com

(Se que para mas de uno y de veinte esta sección es una estupidez pero no está mal recordar algo de teoría sobre que es de lo que estamos hablando)

EMPEZAMOS...

1) Primero, está claro que debemos poder esnifar el tráfico de una red local, ¿cómo? pues no hace falta ni decirlo creo, si es una red wifi pues ya se sabe, tarjeta que entre en modo monitor y un sniffer como el CommView for WiFi o el WireShark. También cabe la posibilidad de que queramos que no se nos escape nada, hacemos un Man In The Middle que ésto vale ya sea para redes WiFi o cableadas; y que es en mi opinión una de las mejores maneras porque esnifando tráfico wireless se nos pueden escapar paquetes por cuestión de lejanía, etc.

Page 3: Capturando cookies nil_hop

A modo de recordatorio comentaré los comandos para hacer un Man In The Middle (GNU/Linux): 1.1) Abrimos nuestra consola favorita: (necesaria la suite dsniff instalada) echo 1 > /proc/sys/net/ipv4/ip_forward (habilita forwarding) arpspoof -i INTERFACE -t VICTIMA ROUTER (envenena victima) arpspoof -i INTERFACE -t ROUTER VICTIMA (envenena victima) iptables -t nat -A POSTROUTING -d ROUTER -j SNAT --to VICTIMA (IP Spoofing) iptables -A FORWARD -j ACCEPT (es recomendable)

2) Abrimos WireShark y lo ponemos a esnifar, ya sea poniendo nuestra interfaz en modo monitor o haciendo el MiM... (sobre ésto hay abundante info) Para información sobre los filtros de captura del WireShark -->

http://wiki.wireshark.org/CaptureFiltershttp://home.insight.rr.com/procana/

Yo desactivo la opción de autoscrolling pero ésto es a gusto del personal. En filtro de captura simplemente se puede escribir tcp, o tcp port http y ya despues en los filtros de display, que tienen más potencia, escribiremos la sentencia correspondiente para filtrar solo lo que nos interesa, nuestras cookies.

La pantalla de opciones de captura del WireShark quedarían tal que así.

Page 4: Capturando cookies nil_hop

Pinchamos en Start y en la barra de filtrado de arriba escribimos antes que nada --> http contains "Cookie" y pulsamos Aplicar. En principio quedaría así sin nada puesto que aún no hemos capturado tráfico con cookies.

3) Y ahora la parte interesante: nos vamos a nuestro segunda PC en red y abrimos nuestro correo de Gmail. Volvemos al PC Atacante y empezamos a recibir tráfico y nos damos cuenta que, en la columna info hay paquetes que contienen instrucciones HTTP como: GET * --> donde * puede ser, por ejemplo, "/mail/ HTTP/1.1"

Lo importante es que identifiquemos éstos paquetes que así a lo bruto son los que enviamos para pedir las páginas web. Ya que he puesto el ejemplo de Gmail sigamos con él. Vamos a la página web de Google Mail << http://mail.google.com >> escribimos nuestro usuario y contraseña y volvemos a la pantalla del sniffer. Vamos a los últimos paquetes capturados (filtrados) puesto que nos hemos logueado ahora mismo, y encontramos una serie de intrucciones GET, tales que asi:

Page 5: Capturando cookies nil_hop

Bueno el tema está claro nos logueamos y evidentemente el tráfico de logging cifrado no lo vemos porque estamos filtrando solo aquellos paquetes que contengan la palabra Cookie, de todas formas esnifar los demás no nos serviría de mucho si está cifrado por SSL v3 o TLS v1 así que nos tenemos que quedar con lo que no va cifrado... Que no es poco, porque vemos que mientras nos logueamos en Gmail en nuestra otra máquina (la víctima) nos va haciendo guardar una serie de cookies, las cuales vemos en la información del paquete en WireShark (esnifando desde el atacante) y por ejemplo cogemos un paquete GET de los últimos que se refieren a Gmail, abrimos la conversación TCP en una ventana aparte ,para poder leerlo y copiar sus datos cómodamente, pinchando con el botón derecho en el paquete... Y "Follow TCP Stream" bien, ahora vemos claramente algo parecido a estos datos:

Page 6: Capturando cookies nil_hop

Si nos fijamos bien justo donde dice Cookie: en la ventana de dump vemos que hay una serie de datos de la Cookie con sus valores tal que así:

Nombre=valor;

Bien, pues vamos a nuestro PC víctima y escribamos en la barra de direcciones:

javascript:alert("Cookies: "+document.cookie)

Nos saldrá una agradable pantalla con la cookie de Gmail y todos sus datos y valores, que son los mismos que hemos esnifado con lo cual vamos bien, pero claro, nosotros todo ésto ya lo sabemos. Sabemos que los web sites nos alojan cookies en el PC que podemos esnifarlas con el WireShark pero ¿de qué nos sirve? pues observando todos los nombres y valores de la cookie podríamos, por lógica, identificar aquellas cookies que potencialmente son las que guarda Gmail en nuestro PC para saber que somos nosotros y no volvernos a pedir el usuario y la contraseña para continuar con nuestra sesión. Y como vemos estas cookies que se guardan en nuestro PC han sido esnifadas por el WireSharK en el PC Atacante, es decir, que lo que tenemos que hacer para simular que nosotros somos el usuario es detectar que cookie o cuales son las realmente importantes, copiarlas de los paquetes que hemos esnifado y guardarlas en nuestro PC justo donde el navegador las lee. Vamos a ello.

Primero diré que la cookie importante en Gmail es la llamda “GX” es decir en nuestra ventanita de WireShark (PC Atacante) donde dice Cookie: vamos viendo por esa misma linea los nombres y valores de la cookie hasta llegar a GX=*********; pero que es eso de la cookie importante pues quiere decir que si nosotros gurdamos esa cookie con nombre GX y el valor chorizo ese que hemos copiado ya tenemos todo lo necesario para capturar la sesión del usuario víctima. Vale bien sabemos que lo único que debemos hacer es insertar la cookie GX en el lugar donde nuestro firefox de nuestro PC Atacante las busca pero ¿por qué no más comodiad? Me explico vamos a:

http://addons.mozilla.org/es-ES/firefox/

y buscamos extensiones que contengan la palabra cookies, nos encontraremos varias, aunque no nos hará falta buscar mucho, la primera misma nos sirve:

– Edit cookies (LA DESCARGAMOS E INSTALAMOS)

Bueno ya está todo recapitulamos, hemos hecho un ataque Man In The Middle o hemos puesto nuestra tarjeta en modo monitor y el sniffer WireShark con los filtros adecuados buscando Cookies un usuario se conecta a Gmail para ver su correo capturamos sus cookies, entre ellas la GX (la importante) y las copiamos.

Page 7: Capturando cookies nil_hop

****** Ahora, abrimos nuestro firefox en el PC Atacante nos vamos a Herramientras --> Cookie Editor

Pinchamos en Add y completamos de la siguiente forma, creo que es evidente:

Pinchamos en Save y despues en Close (todo ésto en nuestro PC Atacante después de haber esnifado con los datos obtenidos) mientras el usuario víctima sigue leyendo su correo (en un caso imaginario).

Page 8: Capturando cookies nil_hop

Si alguno se pregunta que de donde saque el host para ponerlo en los datos de la cookie, le remito a:

Justo arriba en la segunda línea ---> Host: mail.google.comBueno bueno... nos vamos en nuestro PC Atacante entonces a http://mail.google.com

Y donde aparecemos ¿?¿?¿? pues en la sesión del usuario que hemos esnifado.

A continuación pongo una tabla con los proveedores y las COOKIES IMPORTANTES de diversos proveedores de servicios:

PROVEEDOR DE SERVICIO WEB NOMBRE DE LA COOKIE

Windows Live Hotmail (live.com) RPSTAuth

Gmail (mail.google.com) GX

Tuenti (tuenti.com) sid

Myspace (myspace.com) MYUSERINFO

Yahoo (yahoo.com) T, Y (* hacen falta las 2)

Ebay (ebay.es) nonsession, s, cid (* hacen falta los 3)

YouTube (youtube.com) LOGIN_INFO3/1/2008

- Para aclarar, solo hace falta esnifar las cookies indicadas después las insertamos con el Cookie Editor, con otro plugin o como queramos y ya está capturamos las sesión del colega. Pero ¿como averiguamos las cookies importantes? Hay varias formas, nos registramos en la web del sitio y cuando nos logueemos vamos eliminando cookies con el cookie editor si nos sigue permitiendo entrar al servicio sin pedirnos la contraseña la cookie que eliminamos no nos sirve; pero si nos pide la contraseña de nuevo es que la que borramos era la importante o una de las importantes. Otra fórmula, esnifamos

Page 9: Capturando cookies nil_hop

y vamos copiando las que nos parezcan hasta dar con la buena o las buenas. A mi, me gusta más el primer método.

CONCLUSIÓN

Cada día me siento más seguro al ver mi correo. Desde mi punto de vista que los proveedores de servicios (no se cuantas veces he dicho proveedores de servicios ya...) nos protejan de los sniffers haciendo que nos logueemos a través de de SSL no sirve de nada si dejamos el resto al descubierto. Las posibles contramedidas que se me ocurren son, primero si tenemos red wireless hay que utilizar un cifrado WPA como mínimo, es aconsejable un buen firewall o filtro de red acompañado de snort para ver lo que “está pasando” y evitar ataques Man In The Middle, a ser posible se deberían tener las entradas de nuestra tabla ARP y la del router estáticas, si se desea algún tipo de software como JAP para cifrar nuestro tráfico web y meternos un poco más en el camino de la privacidad... Para todo lo demás: UNA BUENA GALLETA.

Saludos, NiLHoP.