
Script de contournement de pare-feu basé sur les enregistrements historiques DNS. Ce script recherchera les enregistrements A historiques DNS et vérifiera si le serveur répond pour ce domaine. Pratique pour les chasseurs de bug bounty.

Ce script essaiera de trouver :
Ce script (ab)use des enregistrements de l'historique DNS. Ce script recherchera les anciens enregistrements DNS A et vérifiera si le serveur répond pour ce domaine. Il fournit également un niveau de confiance, basé sur la similarité de la réponse HTML entre le serveur d'origine potentiel et le pare-feu.
Le script récupère également les adresses IP des sous-domaines car ma propre expérience m'a appris que les IP des sous-domaines pointent parfois vers l'origine du domaine principal.
Utilisez le script comme ceci :
bash bypass-firewalls-by-DNS-history.sh -d example.com
-d --domain : domaine à contourner-o --outputfile : fichier de sortie avec les IP-l --listsubdomains : liste des sous-domaines pour une couverture supplémentaire-a --checkall : Vérifier tous les sous-domaines pour un contournement WAFjq est nécessaire pour analyser la sortie et récupérer automatiquement les sous-domaines. Installez avec apt install jq.
Pour illustrer ce que nous définissons comme contournement WAF, regardez le schéma ci-dessous.

Un visiteur normal se connecte à un site web. La requête initiale est une requête DNS pour demander l'IP du site, afin que le navigateur du client sache où envoyer la requête HTTP. Pour les sites derrière Cloudflare ou un autre WAF public, la réponse contient une adresse IP du WAF lui-même. Votre trafic HTTP passe essentiellement à travers le WAF jusqu'au serveur web d'origine. Le WAF bloque les requêtes malveillantes et protège contre les attaques (D)DoS. Cependant, si un attaquant connaît l'IP du serveur web d'origine et que ce serveur accepte le trafic HTTP de tout internet, l'attaquant peut effectuer un contournement WAF : faire passer le trafic HTTP directement au serveur d'origine au lieu de passer par le WAF.
Ce script essaie de trouver cette IP d'origine, afin que vous puissiez vous connecter directement au serveur web d'origine. Les attaques comme les injections SQL ou les SSRF ne sont pas filtrées et peuvent réussir, contrairement à lorsqu'un WAF intermédiaire arrête ce type d'attaques.
Lorsque vous trouvez un contournement, vous avez deux options :
/etc/hosts (Linux/Mac) ou c:\Windows\System32\Drivers\etc\hosts (Windows). Ajoutez une entrée comme celle-ci : 80.40.10.22 vincentcox.com.
À partir de ce moment, votre trafic HTTP va directement au serveur web d'origine. Vous pouvez effectuer un test d'intrusion comme d'habitude, sans que vos requêtes soient bloquées par le WAF.
Ce script est utile pour :
Les services suivants sont utilisés :
Pourquoi en Bash et pas en Python ?
Cela a commencé comme quelques lignes de commande CURL, est devenu un script bash, a étendu le code de plus en plus, et le regret de ne pas avoir utilisé Python s'est accru en conséquence.
Je trouve plus de sous-domaines avec mes outils ?
Je sais. Je ne peux pas m'attendre à ce que tout le monde installe tous ces outils de force brute et d'énumération DNS. De plus, je ne sais pas à l'avance dans quel dossier ces outils sont placés ou sous quel alias ils sont appelés. Vous pouvez toujours fournir votre propre liste avec -l pour alimenter cet outil avec la sortie de ces outils de sous-domaines. L'entrée attendue est un sous-domaine complet sur chaque ligne.
Contournement WAF
Contournement de pare-feu applicatif web
Historique DNS
trouver l'IP directe/d'origine du site web
| Créateur du projet |
|---|
|
|