¿Qué es el secuestro de sesión? Cómo garantizar la privacidad de la sesión
Publicado: 2021-07-13Pueden pasar muchas cosas entre un inicio de sesión y un cierre de sesión.
Los atacantes buscan sesiones en las que puedan obtener acceso no autorizado a sus cuentas y explotar sus datos. Debe asegurarse de autenticar sus datos de inicio de sesión en un entorno seguro y protegerse contra ataques de secuestro de sesión.
Puedes usar cortafuegos de aplicaciones web para detectar anomalías en el tráfico entrante y bloquear el tráfico potencialmente malicioso a medida que llega. Pero para corregir sólidas defensas de seguridad, es crucial comprender en detalle el secuestro de sesiones, sus tipos y las herramientas que los atacantes pueden usar para penetrar las cuentas de los usuarios.
¿Qué es el secuestro de sesión?
El secuestro de sesión , también conocido como secuestro de cookies, es un proceso de tomar el control de la sesión de un usuario al obtener o generar una ID de sesión mientras la sesión aún está en curso.
Un atacante podría usar secuencias de comandos entre sitios (XSS), fuerza bruta, ingeniería inversa u otros métodos para obtener cookies de sesión y obtener acceso no autorizado a las cuentas de los usuarios.
Una sesión comienza cuando inicia sesión en un servicio, como una aplicación web, y finaliza cuando cierra la sesión. El Protocolo de transferencia de hipertexto (HTTP) es un protocolo sin estado, lo que significa que lleva cada solicitud de forma independiente sin hacer referencia a ninguna solicitud anterior, lo que requiere que el usuario se autentique cada vez que ve una página web. Para evitar pedirle a un usuario que inicie sesión cada vez, el servidor asigna una ID de sesión para brindar una experiencia web fluida después de la autenticación.
Los atacantes intentan robar la ID de sesión del objetivo o engañarlos para que hagan clic en un enlace malicioso que los lleva a una sesión prefabricada para un ataque de secuestro de sesión. Una vez que el usuario se autentica en el servidor, los actores de amenazas pueden secuestrar la sesión y engañar al servidor para que considere que su sesión es válida.
Cuando un atacante apunta a una cookie de sesión, está relacionado con el secuestro de sesión de una aplicación web, no con el secuestro de sesión del Protocolo de control de transmisión (TCP). TCP es un protocolo de transporte que se utiliza sobre IP para garantizar una transmisión fiable de paquetes. La aplicación web devuelve una cookie de sesión después de una autenticación exitosa que un atacante aprovecha para secuestrar una sesión. No tiene nada que ver con la conexión TCP entre el dispositivo del usuario y el servidor.
Métodos de secuestro de sesión
Los atacantes suelen tener algunos métodos de elección al realizar un secuestro de sesión. Pueden usarlos individualmente o en combinación para hacerse cargo de las cuentas de los usuarios y realizar actividades maliciosas.
Secuencias de comandos entre sitios
En un ataque de secuencias de comandos entre sitios (XSS) , un pirata informático malicioso engaña a la computadora del objetivo para que ejecute un código que se hace pasar por un código confiable que pertenece a un servidor. Permite a un atacante obtener una copia de la cookie para realizar sus acciones maliciosas. Por lo general, las páginas web están incrustadas con JavaScript. Sin las debidas salvaguardas y herramientas de seguridad de aplicaciones, revela información confidencial de los usuarios si se ejecutan los scripts.
Si el servidor no establece el atributo HTTPOnly en las cookies de sesión, los scripts pueden exponerlas a los atacantes.
Inyección de malware
Alguno malware o troyanos están programados para robar cookies del navegador y realizar acciones maliciosas sin el conocimiento del usuario. Por ejemplo, cuando un usuario visita un sitio web malicioso o hace clic en un enlace no solicitado, el malware analiza el tráfico de la red, recopila cookies de sesión y las envía a los atacantes. Los atacantes con acceso al almacenamiento local pueden robar claves de sesión del almacenamiento local temporal del navegador (jar de cookies), o pueden obtener archivos o contenido de la memoria del servidor o de la computadora del usuario.
Fuerza bruta
Los atacantes pueden realizar un ataque de fuerza bruta para adivinar la clave de sesión de un usuario. Cuando una aplicación usa una clave de sesión secuencial o predecible, hace que la sesión sea vulnerable a un secuestro. Este era un método de elección preferido en el pasado, pero con las aplicaciones modernas, los ID de sesión son largos y se generan aleatoriamente, lo que ofrece una resistencia sustancial a los ataques de fuerza bruta.
Toma del lado de la sesión
En el jacking del lado de la sesión , un atacante aprovecha el rastreo de paquetes para leer el tráfico de la red y robar la cookie de la sesión. Por lo general, los sitios web utilizan cifrado de capa de sockets seguros/seguridad de la capa de transporte (SSL/TLS) en sus páginas de autenticación. Aún así, algunos no lo usan en todo el sitio después de la autenticación, lo que permite a los atacantes interceptar los datos intercambiados entre el servidor y las páginas web.
Una vez que los atacantes tienen en sus manos las cookies de sesión, pueden secuestrar las sesiones de los usuarios para realizar operaciones maliciosas. Por ejemplo, un mal actor que se dirige a un usuario conectado a un WiFi no seguro puede leer fácilmente los datos o el tráfico compartido entre otros nodos y puntos de acceso.
fijación de sesión
En ocasiones, los atacantes pueden crear una sesión encubierta y engañar a un usuario para que se autentique en un servidor vulnerable. Por ejemplo, un actor de amenazas podría usar Ingeniería social (phishing) o un método similar para persuadir a un usuario para que haga clic en un enlace que lo lleva a una sesión diseñada con una cookie de sesión conocida. Una vez que el usuario se autentica, el atacante puede usar la clave de sesión conocida para secuestrar la sesión del usuario.
Un atacante también puede engañar a los usuarios para que completen un formulario de inicio de sesión prefabricado que incluye una ID de sesión oculta y fija.
Niveles de ataques de secuestro de sesión
Hay dos niveles de ataques de secuestro de sesión. Estos ataques pueden estar interrelacionados, ya que un ataque exitoso en una capa de red le dará al atacante información para explotar a un usuario real en el nivel de la aplicación.
Secuestro de la capa de transporte
El secuestro de la capa de transporte ocurre en las conexiones TCP donde un atacante intercepta los intercambios de datos entre un servidor web y un usuario, bloqueando el canal de comunicación establecido entre ellos. Luego, los malhechores envían paquetes de datos maliciosos disfrazados de legítimos tanto al cliente como al servidor, apoderándose de la sesión del usuario.
Un método común de secuestro de la capa de transporte es la falsificación de IP , en la que un atacante utiliza una dirección IP falsificada disfrazada de confiable para comunicarse con las computadoras en la red. Utilizan paquetes IP enrutados en origen para interceptar la comunicación activa entre dos nodos. La suplantación de IP aprovecha indebidamente la autenticación única al comienzo de la sesión TCP.
Secuestro de la capa de aplicación
En el secuestro de la capa de aplicación, un atacante roba la ID de sesión de un usuario después de que un usuario se autentica en su aplicación. Los ataques Man-in-the-middle son ejemplos típicos de secuestro de sesión de capa de aplicación, donde el secuestrador intercepta el canal de comunicación entre el cliente y el servidor.
Los ataques de proxy también se incluyen en el secuestro de la capa de aplicación. Un atacante dirige el tráfico a un servidor proxy con una ID de sesión predefinida para interceptar la comunicación durante estos ataques.
3 tipos de secuestro de sesión
El secuestro de sesión implica adivinar o interceptar cookies de sesión en una sesión existente o engañar a un usuario para que se autentique en una sesión prefabricada. Hay tres tipos de ataques de secuestro de sesión.
1. Activo
En el secuestro de sesión activo , un atacante se apodera de una conexión activa en una red. Pueden silenciar todos los dispositivos y hacerse cargo del canal de comunicación entre el cliente y el servidor. Luego, dejan ir la afiliación entre el servidor y el dispositivo del usuario.
Hay algunas formas en que un atacante puede interrumpir la comunicación entre un cliente y un servidor. Por lo general, los intrusos envían tráfico masivo para atacar una sesión válida y provocar un ataque de denegación de servicio (DoS) .
2. Pasivo
El secuestro de sesión pasivo es similar al activo, excepto que un atacante monitorea la comunicación entre un cliente y un servidor. El atacante no bloquea la sesión del usuario real, sino que supervisa el intercambio de comunicación en curso.
El motivo principal de los ataques pasivos es robar información intercambiada y utilizarla con fines maliciosos.
3. Híbrido
Los ataques de secuestro de sesión híbridos son una combinación de ataques activos y pasivos. En un ataque híbrido, los atacantes monitorean el tráfico de la red hasta que encuentran un problema, luego toman el control de la sesión y comienzan a hacerse pasar por usuarios legítimos.

Los ataques híbridos dependen de la suplantación de identidad y se clasifican en los siguientes tipos:
- Un ataque de suplantación de identidad ciega implica que los atacantes se dirijan a una víctima sin interrumpir una sesión. Capturan paquetes de datos intercambiados entre un servidor y un usuario e intentan descifrar las secuencias de paquetes TCP.
- Un ataque de suplantación de identidad no ciego incluye monitorear el tráfico entre un servidor y un usuario para predecir el pacto posterior para pronosticar su rango de secuencia TCP. Un atacante se hace cargo de la sesión a nivel de aplicación y forma una nueva sesión, utilizando un token de sesión que puede ser robado o predecible.
Secuestro de sesión frente a suplantación de identidad de sesión frente a reproducción de sesión
La principal diferencia entre el secuestro de sesión y la suplantación de identidad de sesión es el momento del ataque.
Los ataques de secuestro de sesión se llevan a cabo una vez que los usuarios se autentican en la aplicación. El ataque puede provocar retrasos o un comportamiento poco común en las aplicaciones. Se debe a que un atacante explota sus datos mientras aún está conectado. Si una aplicación falla con frecuencia, podría sugerir un ataque de secuestro de sesión.
En la suplantación de identidad de sesión , las víctimas no son conscientes del ataque. Los atacantes pueden usar identificaciones de sesión robadas o falsificadas y hacerse pasar por usuarios genuinos sin depender de un usuario para realizar la autenticación.
La repetición de una sesión es un poco diferente.
En la reproducción de sesión , los atacantes ya tienen cookies de sesión (recolectadas del secuestro de sesión) y pueden usarlas como quieran. Pueden engañar a una víctima para que vuelva a enviar una solicitud previamente válida, como comprar múltiples cantidades de artículos donde originalmente solicitaron una unidad.
Herramientas de secuestro de sesión
Varias herramientas pueden ayudar a un atacante a llevar a cabo un ataque de secuestro de sesión. Puedes usarlos en pruebas de penetración y compruebe si sus sistemas y aplicaciones están a prueba de ataques.
Estas son algunas de las herramientas populares de secuestro de sesión que se utilizan para llevar a cabo un ataque.
* Estas herramientas solo deben usarse con fines éticos para probar y fortalecer los sistemas contra el secuestro de sesiones.
hámster y hurón
Hamster actúa como un servidor proxy que manipula los datos recopilados por Ferret, que captura las cookies de sesión que pasan por la red.
Aquí hay un ejemplo del uso de Hamster presentado por Herramientas Kali:
root@kali:~# hámster
--- Herramienta de elevación lateral HAMPSTER 2.0 ---
Configure el navegador para usar proxy http://127.0.0.1:1234
DEPURACIÓN: set_ports_option(1234)
DEPURACIÓN: mg_open_listening_port (1234)
Proxy: escuchando en 127.0.0.1:1234
hilo inicial
Vista en T
T-Sight se desarrolló inicialmente como una herramienta de monitoreo de red para ejecutarse en la plataforma Windows. Sin embargo, al monitorear una red, uno puede secuestrar una sesión ya que toda la comunicación a través de la red se copia en tiempo real, proporcionando una salida de transmisión de datos precisa. Debido a esto, Engrade, el desarrollador de T-Sight, ahora proporciona licencias de software solo a direcciones IP predeterminadas.
gigante
Juggernaut es una herramienta de detección de red que se puede utilizar de forma malintencionada para llevar a cabo un ataque de secuestro de sesión. Es posible configurar Juggernaut para observar todo el tráfico de red en una red de área local (LAN) o escuchar un token de sesión en particular. Se puede configurar para registrar el tráfico de la red después de que una víctima intenta iniciar sesión.
Juggernaut es diferente de los rastreadores de red regulares que registran todo el tráfico de red en enormes archivos de registro. Juggernaut mantiene una base de datos de conexión que permite a un atacante observar todas las conexiones basadas en TCP e incluso secuestrar una sesión. La herramienta de secuestro de sesión también proporciona una función integrada de ensamblaje de paquetes. Los atacantes usan esta funcionalidad para fragmentar paquetes para evadir los sistemas de detección de intrusos y los firewalls.
Aquí hay un ejemplo del uso de Juggernaut cuando lo ejecuta a través de la línea de comando de Linux:
Juggernaut ?) Ayuda 0) Información del programa 1) Base de datos de conexión 2) Espiar una conexión 3) Restablecer una conexión 4) Daemon de restablecimiento de conexión automatizado 5) Secuestro de conexión simplex 6) Secuestro de conexión interactivo 7) Módulo de ensamblaje de paquetes 8) Número de opción Souper sekret ocho 9) Bajar
- La base de datos de conexiones le muestra una conexión activa.
- Espiar una conexión le permite monitorear el tráfico de la red a través de canales de comunicación abiertos y brinda una opción para almacenar registros.
- Restablecer una conexión cierra una sesión enviando un paquete RST a la fuente.
- El demonio de restablecimiento de conexión automatizado le permite configurar un host basado en la dirección IP y el paquete RST a la fuente cada vez que el host intenta establecer una sesión.
- El secuestro de conexión Simplex le permite ingresar un solo comando al objetivo. Los atacantes lo utilizan para evitar la detección.
- El secuestro de conexión interactivo le permite realizar un secuestro de sesión completo y crear una gran tormenta ACK.
- El módulo de ensamblaje de paquetes le permite crear su propio paquete.
- Souper sekret opción número ocho no tiene funcionalidad.
- Bajar le permite salir del programa.
Estas fueron algunas de las herramientas que utilizan los atacantes para llevar a cabo ataques de secuestro de sesión.
Debe fortalecer sus redes y sistemas contra herramientas similares como Hunt, TTY-Watcher, IP-Watcher, 1164, Wireshark, SSHMITM, Hjksuite, C2MYAZZ, que los atacantes utilizan para explotar las sesiones de los usuarios.
Cómo prevenir el secuestro de sesión
El secuestro de sesiones puede tener consecuencias nefastas para las organizaciones, incluidas pérdidas financieras y pérdidas de reputación incurridas después de años de construir una buena reputación y brindar un servicio fiel en la industria.
Las empresas deben establecer medidas de seguridad estratégicas para evitar convertirse en objetivos de ataques de secuestro de sesión. Estas medidas incluyen:
- Cifrar toda la transmisión de datos en una página web
- Implementación de la certificación del Protocolo seguro de transferencia de hipertexto (HTTPS) en las páginas web
- Actualizar y parchear los navegadores regularmente
- Adoptar herramientas de ciberseguridad como software de protección DDoS y tecnología de engaño
- Entrar y salir cuidadosamente de cada sesión
- Incorpore marcos web en lugar de crear un sistema de gestión de sesiones interno
- Vuelva a generar la clave de sesión después de la autenticación para evitar que los piratas informáticos exploten la ID de sesión generada durante el inicio de sesión
- Refuerce la verificación de identidad al incluir controles adicionales, como verificar la dirección IP habitual de un usuario o las tendencias de uso de la aplicación.
- Use solo redes inalámbricas seguras y evite operar en cualquier WiFi público
- Oculte su dirección IP utilizando un software de red privada virtual (VPN) y mantenga sus sesiones protegidas
Podría decirse que tener HTTPS en todo el sitio es el mecanismo preventivo más importante. Si le preocupan los problemas de rendimiento, puede implementar SSL en las páginas de inicio de sesión del sitio web y en otras áreas sensibles. Otra medida preventiva importante sería cifrar el valor de sesión almacenado en una cookie de sesión.
Protege tus sesiones
El secuestro de sesiones puede ser problemático. Sea proactivo y establezca un mecanismo de defensa adecuado para protegerse de los ataques de secuestro de sesión y para proteger su cuenta y sus datos.
Dado que los piratas informáticos desarrollan constantemente nuevos métodos para descifrar los perímetros de defensa de una organización, puede ser aún más complicado garantizar el 100 % de la seguridad.
Obtenga más información sobre la respuesta a incidentes y cómo puede administrar un incidente cibernético cuando un atacante obtiene acceso a su cuenta o datos.