Detectar y evitar sistemas de protección y firewalls de aplicaciones Web.
|
WhatWaf es una herramienta avanzada de detección de firewall cuyo objetivo es darle la idea de si hay un Waf detrás de una aplicación web. WhatWaf funciona detectando un firewall en una aplicación web e intentando detectar un bypass (o dos) para dicho firewall, en el destino especificado.
Características:
- Posibilidad de ejecutarse en una sola URL con el indicador “-u/-url”.
- Posibilidad de ejecutar una lista de URL con el indicador de lista “-l”.
- Capacidad de detectar más de 60 firewalls diferentes.
- Capacidad para probar más de 30 técnicas diferentes de manipulación.
- Posibilidad de pasar sus propias cargas útiles desde un archivo, desde el terminal, o usar las cargas útiles predeterminadas.
- Cargas útiles predeterminadas que deberían producir al menos un disparo WAF.
- Capacidad para eludir los firewalls utilizando tanto las técnicas SQLi como las técnicas de secuencias de comandos entre sitios.
- Capacidad de ejecutarse detrás de cualquier tipo de proxy que coincida con esta expresión regular: “(socks d +)? (Http (s)?)?: //”.
- Capacidad para utilizar un agente de usuario aleatorio, agente de usuario personal o agente de usuario predeterminado personalizado.
- Asignar automáticamente al protocolo HTTP la capacidad de forzar el protocolo a HTTPS.
- Un codificador incorporado para que pueda codificar sus cargas útiles en los desvíos descubiertos.
- Creación automática de ataques si se descubre un cortafuegos desconocido.
- Posibilidad de enviar resultados a un archivo JSON, CSV o YAML.
- Capacidad para codificar las cargas útiles proporcionadas mediante scripts de manipulación integrados.
- Las cargas útiles codificadas se guardan en un archivo de base de datos para uso futuro.
- Capacidad para exportar cargas útiles almacenadas en caché desde la base de datos a un archivo YAML, JSON, CSV o de texto.
- Posibilidad de guardar todo el tráfico en archivos para su posterior análisis al pasar el indicador “–traffic”.
- Capacidad para probar y determinar el servidor web de fondo que aloja la aplicación web usando “-W”.
- Posibilidad de enviar solicitudes POST o GET.
- Posibilidad de cargar encabezados personalizados.
Argumentos opcionales de uso.
Estos argumentos no son realmente importantes, pero son buenos mencionar.
- “-h/–help”, imprime el menú de ayuda y sale. Este también será el predeterminado si no se pasan otros argumentos.
Argumentos obligatorios.
Estos argumentos deben pasarse para que se ejecute whatwaf.
- “-u URL, –url URL”, pasa una única URL para detectar la protección.
- “-l PATH, –list PATH, -f PATH, –file PATH”, pasa un archivo que contenga URL (uno por línea) para detectar la protección.
- “-b FILE-PATH, –burp FILE-PATH”, pasa un archivo de solicitud de Burp Suite para realizar la evaluación WAF.
Argumentos que controlan solicitudes.
Estos argumentos controlan las solicitudes HTTP, junto con sus encabezados.
- “–pa”, permite usar un User-Agent personal en forma de cadena para reemplazar al User-Agent predeterminado. Depende de usted asegurarse de que su Agente de Usuario esté en el formato correcto o no.
- “–ra”, este indicador, se obtendrá un User-Agent aleatorio fuera del “content/files/user_agents.txt”, hay un total de 4,195 User-Agents disponibles para ser elegidos.
- “–proxy”, usar un proxy para correr detrás. Whatwaf es compatible con la mayoría de los tipos de proxy, tales como: socks5, socks4, http y https.
- “–tor”, permite usar Tor como proxy. Hay que tener en cuenta que esto requiere Tor instalado en el sistema y en ejecución. Asumirá que Tor está en el puerto 9050 e intentará conectarse allí también.
- “-p/–payloads”, permite incorporar cargas útiles personalizadas para las solicitudes de detección. Las cargas útiles deben estar separadas por una coma. IE -p=»AND 1=1,OR 2=2″. De esta manera, se podrá determinar la lista por un denominador común.
- “–pl”, procesa un archivo de texto que contenga cargas útiles (una por línea), lo que va a enumerar estas cargas útiles y utilizar cada una para las solicitudes de detección. Se recomienda ejecutar detrás de un proxy o usar proxychains si va a utilizar este método.
- “–force-ssl”, al pasar este indicador, la URL se ejecutará detrás de HTTPS en lugar de HTTP.
Opciones de codificación.
Argumentos que controlan la codificación de cargas útiles.
- “-e PAYLOAD TAMPER-SCRIPT-LOAD-PATH, –encode PAYLOAD TAMPER-SCRIPT-LOAD-PATH”, codifica una carga útil proporcionada utilizando un script de manipulación proporcionado.
- “-el PATH TAMPER-SCRIPT-LOAD-PATH, –encode-list PATH TAMPER-SCRIPT-LOAD-PATH”, codifica un archivo que contenga cargas útiles (una por línea) pasando la ruta y la ruta de carga.
Opciones de salida.
Argumentos que controlan cómo WhatWaf maneja la salida de información.
- “-F, –format”, formatea la salida en un dict y visualizarla.
- “-J, –json”, envía la salida a un archivo JSON.
- “-Y, –yaml”, envía la salida a un archivo YAML.
- “-C, –csv”, envía la salida a un archivo CSV.
Varios argumentos.
Argumentos que realmente no encajan en ninguna otra categoría.
- “–verbose”, ejecutar en modo detallado (más salida).
- “–hide”, oculta el banner durante la ejecución.
- “–update”, actualiza WhatWaf a la nueva versión de desarrollo.
- “–save FILENAME”, guarda las cargas útiles codificadas en un archivo.
- “–skip”, omitir la comprobación de bypasses y simplemente identificar el firewall.
- “–verify-num INT”, cambiando la cantidad predeterminada (5) para verificar si realmente no hay un WAF presente.
Más información y descarga de WhatWaf:
https://github.com/Ekultek/WhatWaf