
Firewall-Bypass-Skript basierend auf DNS-Verlaufsaufzeichnungen. Dieses Skript sucht nach DNS-A-Verlaufsaufzeichnungen und prüft, ob der Server für diese Domain antwortet. Praktisch für Bug-Bounty-Jäger.

Dieses Skript wird versuchen, Folgendes zu finden:
Dieses Skript (miss)braucht DNS-Verlaufsaufzeichnungen. Dieses Skript sucht nach alten DNS-A-Einträgen und prüft, ob der Server für diese Domain antwortet. Es gibt auch ein Konfidenzniveau aus, basierend auf der Ähnlichkeit der HTML-Antwort des möglichen Ursprungsservers und der Firewall.
Das Skript ruft auch die IPs von Subdomains ab, weil meine eigene Erfahrung gezeigt hat, dass Subdomain-IPs manchmal auf den Ursprung der Hauptdomain verweisen.
Verwenden Sie das Skript wie folgt:
bash bypass-firewalls-by-DNS-history.sh -d example.com
-d --domain: Domain, die umgangen werden soll-o --outputfile: Ausgabedatei mit IPs-l --listsubdomains: Liste mit Subdomains für zusätzliche Abdeckung-a --checkall: Alle Subdomains auf einen WAF-Bypass prüfenjq wird benötigt, um die Ausgabe zu parsen und automatisch Subdomains zu sammeln.
Installation mit apt install jq.
Um zu veranschaulichen, was wir als WAF-Bypass definieren, sehen Sie sich das Schema unten an.

Ein normaler Besucher verbindet sich mit einer Website. Die erste Anfrage ist eine DNS-Anfrage, um die IP der Website zu erfragen, sodass der Browser des Clients weiß, wohin die HTTP-Anfrage gesendet werden soll. Bei Seiten hinter Cloudflare oder einer anderen öffentlichen WAF enthält die Antwort eine IP-Adresse der WAF selbst. Ihr HTTP-Traffic fließt im Grunde durch die WAF zum Ursprungs-Webserver. Die WAF blockiert bösartige Anfragen und schützt vor (D)DoS-Angriffen. Wenn ein Angreifer jedoch die IP des Ursprungs-Webservers kennt und der Ursprungs-Webserver HTTP-Traffic vom gesamten Internet akzeptiert, kann der Angreifer einen WAF-Bypass durchführen: den HTTP-Traffic direkt zum Ursprungs-Webserver leiten, anstatt durch die WAF zu gehen.
Dieses Skript versucht, diese Ursprungs-IP zu finden, sodass Sie sich direkt mit dem Ursprungs-Webserver verbinden können.
Angriffe wie SQL-Injection oder SSRF werden nicht gefiltert und können erfolgreich sein, im Gegensatz zu einer Situation, in der eine WAF dazwischengeschaltet ist, die diese Art von Angriffen stoppt.
Wenn Sie einen Bypass finden, haben Sie zwei Optionen:
/etc/hosts(Linux/Mac) oder c:\Windows\System32\Drivers\etc\hosts (Windows). Fügen Sie einen Eintrag wie diesen hinzu: 80.40.10.22 vincentcox.com.
Ab diesem Moment geht Ihr HTTP-Traffic direkt zum Ursprungs-Webserver. Sie können einen Penetrationstest wie gewohnt durchführen, ohne dass Ihre Anfragen von der WAF blockiert werden.
Dieses Skript ist nützlich für:
Die folgenden Dienste werden verwendet:
Warum in Bash und nicht in Python?
Es begann als ein paar CURL-Einzeiler, wurde zu einem Bash-Skript, der Code wurde immer weiter erweitert, und das Bedauern, Python nicht verwendet zu haben, wuchs entsprechend.
Ich finde mit meinen Tools mehr Subdomains?
Ich weiß. Ich kann nicht erwarten, dass jeder alle diese DNS-Brute-Force- und Auflistungs-Tools installiert. Außerdem weiß ich vorher nicht, in welchem Ordner diese Tools abgelegt sind oder unter welchem Alias sie aufgerufen werden. Sie können dennoch Ihre eigene Liste mit
-lbereitstellen, um die Ausgabe dieser Subdomain-Tools in dieses Tool einzuspeisen. Erwartete Eingabe ist eine vollständige Subdomain pro Zeile.
| Projektersteller |
|---|
|
|
WAF-Bypass
Web Application Firewall-Bypass
DNS-Verlauf
direkte/Ursprungs-IP einer Website finden