lunes, 7 de marzo de 2011

Cookies.. ¿Qué son y con qué se comen?


Una cookie, tambien conocida como web cookie, o browser cookie, es un pedazo de texto que se almacena en tu navegador (Safari, firefox, Google Chrome, etc), y puede ser usada para autentificarte en una sesión, guardar las preferencias o para revisar los artículos que guardas en tu "carrito de compras"; como este es un blog de seguridad informática nos enfocaremos principalmente a los cookies de autenticación.

NOTA: si se estaban preguntando, el nombre de cookie viene de "Magic Cookie" que consistía en información no importante que se pasaba de un programa a otro, que a su vez deriva su nombre de "fortune cookie" que son las populares galletas chinas que pretenden dictar la suerte de una persona.

¿Cómo Funcionan?

Primero se visita un sitio de internet
















Muchos sitios tienen la opción "Recordar sesión", "No cerrar sesión", etc., para "recordar" tu sesión, lo que hacen es simplemente guardar una cookie en tu navegador, estas cookies son cadenas de texto y suelen lucir algo así:


















El nombre indica el nombre de la cookie, generalmente va relacionado de acuerdo a su función como en este ejemplo se refiere a las preferencias de google.

El contenido es la cookie en sí, es una cadena de texto encriptada (o no), que indica distintas cosas dependiendo del tipo de cookie que sea; para las sesiones esta cookie es generada por el servidor como una clave de autenticación única que se relaciona con el usuario, en este ejemplo indica preferencias de google, como el idioma, el tamaño de la pantalla, etc.

Dominio, es el dominio de internet al que pertenece la cookie, (por ejemplo google.com)

La ruta, es la dirección del dominio de la cookie, (por ejemplo google.com/calendar)

Tipo de conexión, se refiere si acepta los protocolos HTTP o HTTPS, del cual hablaré más adelante.

La fecha de expiración dice cuando la cookie se volverá inválida y tendra que ser renovada (en mi experiencia, estas fechas van desde 1 día hasta años... me he llegado a encontrar cookies que caducan hasta el 2035!).


Pasar cookies de un navegador a otro de forma manual (Robar cookies).

Supongamos que tienes acceso físico a la computadora de alguien más,
¿Es posible conseguir las cookies de su navegador para que pueda acceder a sus sesiones?
- Por su puesto que sí.

Algunos navegadores muestran la opción de "exportar cookies" a un archivo de texto, esto es útil cuando piensas cambiarte de computadora y quieres que tus sesiones se vayan contigo... o si quieres "robar" la sesión de alguien más.

AVISO: como siempre, NO ME HAGO RESPONSABLE DE LAS ESTUPIDECES QUE SEAN CAPACES DE COMETER.

En Internet Explorer 8.0














Se hace click en Importar/Exportar -> Exportar a un Archivo -> Cookies -> La ruta y listo!

Para Chrome y Firefox, los datos de las cookies se encuentran en los siguientes directorios (en Windows)

Chrome --> C:\Users\"Nombre del Usuario"\AppData\Local\Google\Chrome\User Data\Default\
Firefox --> C:\Users\"Nombre del Usuario"\AppData\Roaming\Mozilla\Firefox\Profiles\User

Una vez que tienes el archivo de texto puedes manipularlo de cualquier forma, incluyendo copiarlo a una memoria USB. (Considero que este es un problema de seguridad sin resolver, puesto que no debería de darse acceso irrestringido a este tipo de documentos sin autenticarse como administrador).

Ya en tu propia computadora, procedemos a crear las nuevas cookies con los valores del archivo de texto, esto puede ser eligiendo la opción "importar" en varios navegadores, o bien, usando un editor de cookies para incluir solo las cookies que nos interesan (las cookies de sesión).

Para esto yo uso uno llamado Edit Cookies que es un add-on gratuito de firefox

















Copiamos el nombre, contenido, dominio y ruta de la cookie de la víctima y listo! podemos entrar a su sesión sin necesidad de introducir la contraseña.

Ahora bien, como antes explicaba, solo nos interesan las cookies de sesión; sin embargo el nombre que estas toman varían dependiendo del sitio que las crea; he aquí algunos nombres de cookies de sesión de sitios populares, (algunos necesitan más de 1 cookie para funcionar de forma correcta).

Twitter --> _twitter_sess , auth_token
Facebook --> xs , c_user
Windows Live --> MSPProf , MSPAuth , RPSAuth , NAP
Google --> SID , HSID

Espero que les haya gustado :) , la próxima semana hablaré sobre Cross-site Scripting (XSS) y Session Hijacking.

1 comentario:

  1. Muy interesante lo que escribis, gracias por compartir. Sera usado en buena ley :D

    ResponderEliminar