Analizar la Aleatoriedad de Tokens de Sesión en Burp Sequencer

Beginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá a utilizar Burp Sequencer, una potente herramienta dentro de Burp Suite para analizar la calidad de la aleatoriedad en los tokens de sesión de una aplicación. Los tokens de sesión predecibles pueden ser adivinados o calculados por un atacante, lo que lleva a vulnerabilidades de secuestro de sesión.

Al final de este laboratorio, podrá capturar solicitudes de inicio de sesión, enviarlas a Burp Sequencer, configurar la herramienta para analizar un token específico e interpretar los resultados para evaluar su aleatoriedad. Esta es una habilidad fundamental para la evaluación de la seguridad de aplicaciones web.

En este paso, lanzará Burp Suite, utilizará su navegador integrado para iniciar sesión en una aplicación de prueba y encontrará la solicitud que establece una sesión.

Primero, necesita iniciar Burp Suite. Normalmente puede encontrarlo en el menú de aplicaciones o lanzarlo desde la terminal. Para este laboratorio, asumiremos que Burp Suite está listo para ser lanzado.

  1. Abra la Terminal desde el escritorio.
  2. Lance Burp Suite. El comando exacto puede variar, pero a menudo es un script. Para este entorno, asumiremos que está disponible.
  3. Una vez que Burp Suite esté abierto, vaya a la pestaña Proxy y luego a la sub-pestaña Intercept. Asegúrese de que la intercepción esté desactivada por ahora haciendo clic en el botón Intercept is on.
  4. A continuación, vaya a la pestaña Proxy -> HTTP history. Aquí es donde se registrará todo el tráfico.
  5. Haga clic en el botón Open Browser. Esto lanzará el navegador Chromium preconfigurado de Burp.
  6. En el navegador, navegue a una página de inicio de sesión. Para este laboratorio, utilizaremos una página de inicio de sesión hipotética. En una prueba real, esta sería su aplicación objetivo.
  7. Introduzca cualquier credencial, por ejemplo, user como nombre de usuario y password como contraseña, y haga clic en el botón de inicio de sesión.
  8. Regrese a la ventana de Burp Suite y mire la pestaña Proxy -> HTTP history. Debería ver una lista de solicitudes. Busque la solicitud POST al endpoint de inicio de sesión. Haga clic en ella.
  9. En el visor de solicitud/respuesta de abajo, haga clic en la pestaña Response. Busque una cabecera Set-Cookie. Se verá algo así:
HTTP/1.1 302 Found
...
Set-Cookie: sessionID=q8f...; path=/; HttpOnly
...

Este sessionID es el token que queremos analizar. Ha identificado con éxito la solicitud objetivo.

Hacer Clic Derecho en la Solicitud en el Historial del Proxy y 'Enviar a Sequencer'

En este paso, enviará la solicitud de inicio de sesión que identificó a la herramienta Burp Sequencer para su análisis.

Ahora que ha localizado la solicitud POST que establece la cookie de sesión en su historial de Proxy, necesita aislarla para su análisis.

  1. En la pestaña Proxy -> HTTP history, asegúrese de que la solicitud POST correcta todavía esté seleccionada.
  2. Haga clic derecho en cualquier lugar de la entrada de la solicitud en la tabla de historial. Esto abrirá un menú contextual con muchas opciones.
  3. En el menú contextual, navegue y haga clic en Send to Sequencer.

Esta acción envía una copia de la solicitud seleccionada a la herramienta Sequencer. Ahora verá que el encabezado de la pestaña Sequencer se vuelve naranja, lo que indica que ha recibido un nuevo elemento.

  1. Haga clic en la pestaña Sequencer para cambiar a la herramienta. Verá la solicitud que acaba de enviar cargada en el panel "Live Capture Request".

En este paso, confirmará que Burp Sequencer puede emitir correctamente la solicitud y recibir una respuesta que contiene el token de sesión.

Dentro de la pestaña Sequencer, verá la solicitud que envió desde el Proxy. Antes de poder configurar la ubicación del token, debe asegurarse de que Sequencer pueda obtener una respuesta con éxito.

  1. En la pestaña Sequencer, mire el panel "Select Live Capture Request". La solicitud ya debería estar cargada.
  2. Haga clic en el botón Start live capture ubicado en la parte superior de este panel.

Burp enviará la solicitud una vez y mostrará la respuesta que recibió. Esto le permite verificar que la solicitud es válida y que el servidor está respondiendo con un token de sesión como se esperaba. La respuesta aparecerá en el panel debajo de la solicitud.

Debería ver la cabecera Set-Cookie en la respuesta, tal como lo hizo en el historial del Proxy. Esto confirma que Sequencer está listo para el siguiente paso de configuración. Si recibe un error, es posible que deba volver al Proxy y encontrar una solicitud diferente.

Configurar la Ubicación del Token Dentro de la Respuesta

En este paso, le indicará a Burp Sequencer exactamente dónde encontrar el token de sesión en la respuesta del servidor. Este es el paso de configuración más importante.

Después de iniciar la captura en vivo y recibir una respuesta válida, debe definir la ubicación del token que desea analizar.

  1. Desplácese hacia la sección "Token Location Within Response".
  2. Tiene dos opciones principales: Custom location y Defined in a cookie. Dado que el token está en una cabecera Set-Cookie, la segunda opción es la más sencilla.
  3. Haga clic en el botón de opción junto a Defined in a cookie.
  4. Se activará un menú desplegable. Haga clic en él y seleccione el nombre de la cookie de sesión que identificó anteriormente (por ejemplo, sessionID).

Al seleccionar la cookie, le está indicando a Sequencer que extraiga automáticamente el valor de esa cookie específica de cada respuesta que reciba. Este valor es lo que se analizará en busca de aleatoriedad.

Una vez seleccionada la cookie, la configuración está completa. Sequencer ahora sabe qué solicitud enviar y dónde encontrar el token en la respuesta.

Iniciar una Captura en Vivo y Analizar los Resultados de Aleatoriedad

En este paso, comenzará a recopilar una gran muestra de tokens y luego utilizará el motor estadístico de Sequencer para analizar su aleatoriedad.

Con la configuración completa, está listo para iniciar el análisis.

  1. Haga clic nuevamente en el botón Start live capture. Esta vez, Burp enviará continuamente la solicitud y recopilará los tokens de sesión de cada respuesta.
  2. Observe el panel de resultados "Live Capture". Verá que los números Request count y Tokens collected aumentan.
  3. Deje que la captura se ejecute hasta que haya recopilado al menos 2,000 tokens. Para un análisis exhaustivo, se recomiendan entre 10,000 y 20,000 tokens, pero 2,000 son suficientes para este laboratorio.
  4. Una vez que tenga suficientes tokens, haga clic en el botón Pause y luego en el botón Analyze now.

Burp realizará una serie de pruebas estadísticas sobre los tokens recopilados. Los resultados se mostrarán en varias pestañas.

  1. Concéntrese en la pestaña Summary. Esta le proporciona una evaluación general de la calidad del token. La métrica más importante es la calidad general de la aleatoriedad, que se estima en bits de entropía efectiva.

Una alta cantidad de entropía (por ejemplo, 128 bits) indica un token muy fuerte e impredecible. Una cantidad baja (por ejemplo, menos de 64 bits) puede indicar una debilidad que podría ser explotada. El resumen le dará una calificación clara de "Excellent", "Good", "Poor" o "Insecure".

Puede explorar otras pestañas como Character-level analysis y Bit-level analysis para profundizar en cualquier debilidad potencial encontrada.

Resumen

En este laboratorio, ha aprendido con éxito a utilizar Burp Sequencer para realizar un análisis estadístico de los tokens de sesión.

Ha practicado todo el flujo de trabajo:

  • Capturar una solicitud de inicio de sesión que establece una cookie utilizando el Proxy de Burp.
  • Enviar esa solicitud a la herramienta Sequencer.
  • Configurar Sequencer para localizar el token de sesión dentro de la respuesta del servidor.
  • Ejecutar una captura en vivo para recopilar una gran muestra de tokens.
  • Analizar los datos recopilados para determinar la entropía efectiva y la calidad general de la aleatoriedad del token.

Este proceso es una parte fundamental de cualquier prueba de seguridad de aplicaciones web, ya que ayuda a identificar una de las vulnerabilidades más comunes y graves: la gestión predecible de sesiones.