
Script per bypassare firewall basato su record storici DNS. Questo script cercherà i record storici A del DNS e verificherà se il server risponde per quel dominio. Utile per i cacciatori di bug bounty.

Questo script cerca di trovare:
Questo script (ab)usa i record della cronologia DNS. Cerca vecchi record DNS A e verifica se il server risponde per quel dominio. Inoltre restituisce un livello di affidabilità, basato sulla somiglianza nella risposta HTML tra il possibile server di origine e il firewall.
Lo script recupera anche gli IP dei sottodomini perché la mia esperienza personale mi ha insegnato che talvolta gli IP dei sottodomini puntano all'origine del dominio principale.
Usa lo script in questo modo:
bash bypass-firewalls-by-DNS-history.sh -d example.com
-d --domain: dominio da bypassare-o --outputfile: file di output con gli IP-l --listsubdomains: elenco di sottodomini per una copertura extra-a --checkall: Controlla tutti i sottodomini per un bypass del WAFjq è necessario per analizzare l'output e raccogliere automaticamente i sottodomini.
Installa con apt install jq.
Per illustrare cosa intendiamo per bypass WAF, guarda lo schema qui sotto.

Un visitatore normale si connette a un sito web. La richiesta iniziale è una richiesta DNS per chiedere l'IP del sito, in modo che il browser del client sappia dove inviare la richiesta HTTP. Per i siti dietro Cloudflare o un altro WAF pubblico, la risposta contiene un indirizzo IP del WAF stesso. Il tuo traffico HTTP fluisce fondamentalmente attraverso il WAF verso il server web di origine. Il WAF blocca le richieste dannose e protegge dagli attacchi (D)DoS. Tuttavia, se un attaccante conosce l'IP del server web di origine e il server web di origine accetta traffico HTTP da tutta Internet, l'attaccante può eseguire un bypass WAF: far fluire il traffico HTTP direttamente al server web di origine invece di passare attraverso il WAF.
Questo script cerca di trovare quell'IP di origine, in modo da potersi connettere direttamente al server web di origine. Attacchi come SQL injection o SSRF non vengono filtrati e possono avere successo, al contrario di quando c'è un WAF in mezzo che blocca questi tipi di attacchi.
Quando trovi un bypass, hai due opzioni:
/etc/hosts (Linux/Mac) o c:\Windows\System32\Drivers\etc\hosts (Windows). Aggiungi una riga come questa: 80.40.10.22 vincentcox.com.
Da questo momento, il tuo traffico HTTP va direttamente al server web di origine. Puoi eseguire un test di penetrazione come al solito, senza che le tue richieste vengano bloccate dal WAF.
Questo script è utile per:
Vengono utilizzati i seguenti servizi:
Perché in Bash e non in Python?
È iniziato come un paio di one-liner con CURL, è diventato uno script Bash, ho esteso il codice sempre di più, e il rimpianto di non aver usato Python è cresciuto di conseguenza.
I miei strumenti trovano più sottodomini?
Lo so. Non posso pretendere che tutti installino tutti questi strumenti di brute-force ed enumerazione DNS. Inoltre, non so in anticipo in quale cartella sono posizionati questi strumenti o sotto quale alias vengono chiamati. Puoi comunque fornire la tua lista con -l in modo da poter alimentare l'output di questi strumenti per sottodomini in questo strumento. L'input previsto è un sottodominio completo per ogni riga.
Bypass WAF
Bypass del Web Application Firewall
Cronologia DNS
trova IP diretto/origin del sito web
| Creatore del progetto |
|---|
|
|