
Script de bypass de firewall basado en registros históricos de DNS. Este script buscará registros históricos de tipo A de DNS y verificará si el servidor responde para ese dominio. Útil para cazadores de bugbounty.

Este script intentará encontrar:
Este script (ab)usa los registros del historial de DNS. Este script buscará registros DNS A antiguos y comprobará si el servidor responde para ese dominio. También genera un nivel de confianza, basado en la similitud en la respuesta HTML entre el posible servidor de origen y el firewall.
El script también obtiene las IP de los subdominios porque mi propia experiencia me enseñó que las IP de los subdominios a veces apuntan al origen del dominio principal.
Usa el script así:
bash bypass-firewalls-by-DNS-history.sh -d example.com
-d --domain: dominio a evadir-o --outputfile: archivo de salida con IPs-l --listsubdomains: lista de subdominios para cobertura adicional-a --checkall: Comprobar todos los subdominios para una evasión de WAFSe necesita jq para analizar la salida y recopilar subdominios automáticamente.
Instala con apt install jq.
Para ilustrar lo que definimos como evasión de WAF, mira el esquema a continuación.

Un visitante normal se conecta a un sitio web. La solicitud inicial es una solicitud DNS para preguntar la IP del sitio web, para que el navegador del cliente sepa dónde enviar la solicitud HTTP. Para sitios detrás de Cloudflare o algún otro WAF público, la respuesta contiene una dirección IP del propio WAF. Tu tráfico HTTP fluye básicamente a través del WAF hacia el servidor web de origen. El WAF bloquea solicitudes maliciosas y protege contra ataques (D)DoS. Sin embargo, si un atacante conoce la IP del servidor web de origen y el servidor web de origen acepta tráfico HTTP de todo Internet, el atacante puede realizar una evasión de WAF: hacer que el tráfico HTTP vaya directamente al servidor web de origen en lugar de pasar a través del WAF.
Este script intenta encontrar esa IP de origen, para que puedas conectarte directamente al servidor web de origen. Ataques como inyecciones SQL o SSRF no se filtran y pueden tener éxito, a diferencia de cuando hay un WAF intermedio que detiene este tipo de ataques.
Cuando encuentres una evasión, tienes dos opciones:
/etc/hosts (Linux/Mac) o c:\Windows\System32\Drivers\etc\hosts (Windows). Agrega una entrada como esta: 80.40.10.22 vincentcox.com.
A partir de este momento, tu tráfico HTTP va directamente al servidor web de origen. Puedes realizar una prueba de penetración como de costumbre, sin que tus solicitudes sean bloqueadas por el WAF.
Este script es útil para:
Se utilizan los siguientes servicios:
¿Por qué en Bash y no en Python?
Comenzó como unas pocas líneas de CURL, se convirtió en un script de Bash, fui extendiendo el código cada vez más, y el arrepentimiento de no haber usado Python creció en consecuencia.
¿Encuentro más subdominios con mis herramientas?
Lo sé. No puedo esperar que todos instalen todas estas herramientas de enumeración y fuerza bruta de DNS. Además, no sé de antemano en qué carpeta están colocadas estas herramientas o bajo qué alias se invocan. Todavía puedes proporcionar tu propia lista con -l para que puedas alimentar la salida de estas herramientas de subdominios en esta herramienta. La entrada esperada es un subdominio completo en cada línea.
Evasión de WAF
Evasión de Firewall de Aplicaciones Web
Historial de DNS
Encontrar IP directa/origen de un sitio web
| Creador del proyecto |
|---|
|
|