Cabecera blog ciberseguridad

Extensión randomHeader para burp suite

Cuando se audita una aplicación web que dispone de algún elemento para detectar y bloquear ataques el auditor tiene que ingeniárselas para poder completar la auditoría con éxito cuando estos elementos de seguridad bloquean la dirección IP del cliente.

Dependiendo de cómo este configurada la aplicación y de los diferentes elementos de seguridad perimetral que conformen dicha arquitectura de red, la manipulación de la dirección IP de origen, a través de cabeceras HTTP, puede ser suficiente para inhabilitar los mecanismos de protección. Por ejemplo, una aplicación mal configurada puede hacer uso de cabeceras HTTP como X-Forwarded-For para tomar acciones contra el cliente. Un incorrecto procesado de estas direcciones IP, en ocasiones manipulables por el usuario, puede permitir lo siguiente:

  • Evadir el bloqueo por IP ante un ataque.
  • Bloquear a otro usuario legítimo.
  • Bloquear direcciones IP de la infraestructura.
  • Realizar ataques de fuerza bruta contra módulos de autenticación.
  • Concluir pruebas desde herramientas automáticas.

Para poder automatizar este proceso hemos creado una nueva extensión de burp llamada randomheader que nos permite automatizar este proceso generando, en cada petición, un conjunto de cabeceras HTTP falsas en las que se indica una dirección IP del cliente aleatoria.

burp extension randomheader ip

Esta extensión de burp permite generar cabeceras HTTP aleatorias en cada petición, tanto para direcciones IPv4 como para IPv6, así como valores obtenidos de un fichero.

burp extension randomheader ip configuration

Imaginemos el caso de una web publicada a través de CDN como Akamai. En todas las peticiones que un cliente realiza el CDN entrega dicha petición al elemento de red perimetral de la empresa, incluyendo una cabecera HTTP adicional llamada que contiene la dirección IP real del usuario.

Si la plataforma Web no restringe las conexiones entrantes desde los nodos del CDN, o intenta obtener la dirección IP real del cliente de cabeceras HTTP, podría ser posible para un atacante conectarse directamente contra la plataforma web y enviar cabeceras HTTP falseadas y aleatorias, evadiendo bloqueos y protecciones frente a ataques de fuerza bruta. Ejemplos de cabeceras HTTP que podríamos activar desde el módulo randomHeader:

  • Client-IP
  • X-Forwared-For
  • TRUE-CLIENT-IP
  • HTTP_CLIENT_IP
  • HTTP_X_FORWARDED_FOR
  • HTTP_X_FORWARDED
  • HTTP_X_CLUSTER_CLIENT_IP
  • HTTP_FORWARDED_FOR
  • HTTP_FORWARDED

La siguiente es una petición HTTP normal lanzada desde el módulo repeater de burp:

HTTP random header request burp

De forma automática y transparente para el usuario, la extensión randomIP genera las nuevas cabeceras que serán enviadas al servidor web.

HTTP random header request modification

Esperamos que os sea de utilidad. Podéis descargar tanto el código fuente como el módulo Jar en el siguiente enlace: randomIp burp suite extension.

Descubre nuestro trabajo y nuestros servicios de ciberseguridad en www.tarlogic.com/es/

En TarlogicTeo y en TarlogicMadrid.