Wie finde ich heraus, welche WAF eine Website schützt?

Veröffentlicht: 2021-10-11

Es ist immer eine gute Idee für einen Angreifer zu wissen, wo eine WAF normalerweise in einem Netzwerk verwendet wird, bevor er mit dem Fingerprinting beginnt.

Penetrationstester müssen sich einer WAF bewusst sein, bevor sie mit einer Webanwendung beginnen, da das Ergebnis ihrer Angriffe beeinflusst werden kann.

Aber vorher…

Was ist WAF?

WAF (Web Application Firewall) spielt eine wichtige Rolle bei der Website-Sicherheit. Sie filtern und überwachen den Verkehr. Web Application Firewalls bieten Schutz vor schwerwiegenden Fehlern. Viele Unternehmen modernisieren ihre Infrastruktur, um Webanwendungs-Firewalls einzubeziehen. Laut Experten für ethisches Hacken können Webanwendungs-Firewalls Sicherheitsprobleme nicht allein beheben; Es ist eine angemessene Konfiguration erforderlich, um externe Bedrohungen zu erkennen und zu blockieren.

Eine WAF unterscheidet sich von einer herkömmlichen Firewall dadurch, dass sie den Inhalt bestimmter Online-Anwendungen filtern kann, während herkömmliche Firewalls als Sicherheitsbarriere zwischen Servern fungieren.

Eine HTTP-Interaktion unterliegt einer Reihe von Regeln. Diese Regeln beheben typische Schwachstellen wie Cross-Site-Scripting und SQL-Injection im Allgemeinen.

Es gibt viele kostenlose und Open-Source-Tools im Internet, die die Firewalls hinter Webanwendungen erkennen können.

Und in diesem Artikel werden wir uns die Ansätze und Tools ansehen, die verwendet werden können, um eine WAF zu entdecken.

Bitte beachten: In diesem Tutorial habe ich meine eigene Site verwendet, um die Details aufzuzählen. Führen Sie auf keiner Website ohne vorherige Zustimmung des Eigentümers Scans oder andere Hacking-Aktivitäten durch.

Manuelle Erkennung

Erkennung mit TELNET

Telnet wird hauptsächlich von Netzwerkadministratoren und Penetrationstestern verwendet. Mit Telnet können Sie, wie bereits erwähnt, über jeden Port eine Verbindung zu Remote-Hosts herstellen.

  • HTTP-Parameter werden von Webanwendungs-Firewalls häufig in Antwortheadern belassen (oder eingefügt).
  • Telnet kann verwendet werden, um grundlegende Informationen wie den Server und die Cookies zu erhalten, die beim Fingerabdruck verwendet werden.
  • Telnet Targetwebsite.com 80
 [email protected]: # telnet Targetwebsite.com 80 Trying 18.166.248.208... Connected to Targetwebsite.com. Escape character is '^]'.

Nachdem Sie den obigen Befehl ausgeführt haben, schreiben Sie HEAD / HTTP / 1.1 und drücken Sie die Eingabetaste.

 [email protected]: # telnet 18.166.248.208 80 Trying 18.166.248.208... Connected to 18.166.248.208. Escape character is '^]'. HEAD / HTTP/1.1 Host: 18.166.248.208 HTTP/1.1 200 OK Date: SUN, 10 Oct 2021 05:08:03 IST Server: Apache X-Powered-By: PHP/5.3.5 ZendServer/5.0 Set-Cookie: SESSIONID VULN SITE=t25put8gliicvqf62u3ctgjm21; path=/ Expires: Thu, 19 Nov 1981 08:52:00 IST Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache X-Varnish: 4723782781 Age: 0 Via: 1.1 varnish Connection: close Content-Type: text/html Connection closed by foreign host.

Es gibt den Server an, auf dem die Website gehostet wird, und die Back-End-Sprache, auf der sie nach Verwendung von Telnet auf dem Zielport 80 erstellt wurde.

Einige WAF-Systeme ermöglichen die Änderung des Headers und können auch dazu führen, dass der Webserver HTTP-Antworten sendet, die sich von den Standardantworten unterscheiden.

Wie das obige Ergebnis zeigt, hat der Webserver auf unsere Anfrage geantwortet und festgestellt, dass es sich bei der Firewall/dem Edge-Gateway um Varnish handelt.

Automatisierte Erkennung

#1. Erkennung mit NMAP

Dazu kann auch Nmap verwendet werden, das über ein Skript verfügt, das eine Web Application Firewall identifizieren kann.

  • Nmap ist ein Tool zur Sicherheitsbewertung, das von vielen Pen-Testern und Netzwerkadministratoren häufig verwendet wird.
  • Nmap wird verwendet, um Informationen über das Ziel zu erhalten.
  • Das Skript wurde auf derselben Webseite wie zuvor ausgeführt
  • nmap –script=http-waf-fingerprint targetweb.com den Befehl ein nmap –script=http-waf-fingerprint targetweb.com
 [email protected]:# nmap --script=http-waf-fingerprint targetwebsite.com Starting Nmap 7.90 ( https://nmap.org ) at 2021-10-10 07:58 IST Nmap scan report for targetsite.com (18.166.248.208) Host is up (0.24s latency). Not shown: 982filtered ports PORT STATE SERVICE 53/tcp open domain 80/tcp open http | http-waf-fingerprint: | Detected WAF | Citrix Netscaler 443/tcp open https 5432/tcp closed postgresql 8080/tcp closed http-proxy Nmap done: 1 IP address (1 host up) scanned in 25.46 seconds

Nach Verwendung des obigen Nmap-Befehls wurde die Citrix Netscaler-Firewall erkannt.

#2. Erkennen mit Whatwaf

Whatwaf ist ein Sicherheitstool für das Fingerprinting von Web-Apps und das Erkennen des Vorhandenseins von WAF. Dieses Tool ist hilfreich, um bei Sicherheitsbewertungen festzustellen, ob eine Webanwendung durch eine WAF geschützt ist.

Wenn dies der Fall ist, können Umgehungs- und Vermeidungsstrategien hilfreich sein, um die Online-Anwendung weiter zu testen oder auszunutzen.

Firewall-Bypassing, Anwendungserkennung, Anwendungs-Fingerprinting und Software-Identifikation werden häufig für WhatWaf verwendet. Netzwerk
Pen-Tester und Sicherheitsexperten sind die vorgesehenen Benutzer dieses Programms.

Wie installiere ich WhatWaf?

Installation auf Kali-Linux

 sudo apt install python3-pip git clone https://github.com/ekultek/whatwaf cd whatwaf sudo pip3 install -r requirements.txt

Beim Start können wir ohne Python-Version einfach eine ausführbare Datei angeben:

 ./whatwaf --help

Da wir jedoch keine Python 2-Abhängigkeiten installiert haben, wird empfohlen, dass Sie speziell die Python-Version bereitstellen.

 python3 ./whatwaf --help

Werkzeugverwendung

Das Whatwaf-Firewall-Erkennungstool ist einfach zu verwenden! Wir müssen nur den folgenden Befehl ausführen:

 ./whatwaf -u https://www.targetsite.com

Wie Sie unten sehen können, hat dieses Tool die Firewall für die bereitgestellte Website-URL erkannt.

Erinnerung! – Ich habe meine eigene Site zum Scannen verwendet

 ┌──(rootkali)-[/home/writer/WhatWaf] └─# ./whatwaf -u https://www.renjith.org ,------. ' .--. ' ,--. .--. ,--. .--.| | | | | | | | | | | |'--' | | | | | | | | | | __. | | |.'.| | | |.'.| | | .' | | | | |___| | ,'. |hat| ,'. |af .---. '--' '--' '--' '--' '---' /><script>alert("WhatWaf?<|>v2.0.3($dev)");</script>%00 [11:12:34][ERROR] you must install psutil first `pip install psutil` to start mining XMR [11:12:34][INFO] checking for updates [11:12:34][WARN] it is highly advised to use a proxy when using WhatWaf. do so by passing the proxy flag (IE `--proxy http://127.0.0.1:9050`) or by passing the Tor flag (IE `--tor`) [11:12:34][INFO] using User-Agent 'whatwaf/2.0.3 (Language=2.7.18; Platform=Linux)' [11:12:34][INFO] using default payloads [11:12:34][INFO] testing connection to target URL before starting attack [11:12:35][SUCCESS] connection succeeded, continuing [11:12:35][INFO] running single web application 'https://www.renjith.org' [11:12:35][WARN] URL does not appear to have a query (parameter), this may interfere with the detection results [11:12:35][INFO] request type: GET [11:12:35][INFO] gathering HTTP responses [11:12:42][INFO] gathering normal response to compare against [11:12:42][INFO] loading firewall detection scripts [11:12:42][INFO] running firewall detection checks [11:12:44][FIREWALL] detected website protection identified as 'Apache Generic' [11:12:44][INFO] starting bypass analysis [11:12:44][INFO] loading payload tampering scripts [11:12:45][INFO] running tampering bypass checks [11:19:09][SUCCESS] apparent working tampers for target: ------------------------------ (#1) description: tamper payload by changing characters into a wildcard example: '/bin/cat /et?/?asswd' load path: content.tampers.randomwildcard ------------------------------

Wie das obige Ergebnis zeigt, hat der Webserver auf unsere Anfrage geantwortet und festgestellt, dass es sich bei der Firewall um Apache handelt. Wir können auch den tor-Dienst verwenden, um nach der WAF zu suchen, aber dies kann die Latenz erhöhen.

 ./whatwaf -u https://www.targetsite.com --tor

Der Hauptvorteil des Whatwaf-Tools besteht darin, dass es automatisch versucht, die Nutzlasten an die aufgedeckte Firewall zu übergeben.

#3. Erkennen mit Wafw00f

Das bekannteste Tool zur Erkennung der Web Application Firewall ist Wafw00f. Wafw00f sendet eine HTTP-Anfrage an die Firewall der Webanwendung, um sie zu identifizieren. Wenn das Senden von HTTP-Anfragen fehlschlägt, stellt wafw00f eine bösartige HTTP-Anfrage. Wenn eine böswillige HTTP-Anfrage fehlschlägt, überprüft wafw00f vorherige HTTP-Anfragen und verwendet einen einfachen Algorithmus, um festzustellen, ob die Firewall der Webanwendung auf unsere Angriffe reagiert.

Wafw00f ist in Kali Linux-Distributionen nicht vorinstalliert.

Wie installiere ich Wafw00f?

Das Zip-Paket kann von der offiziellen GitHub-Quelle heruntergeladen werden.

Laden Sie das Wafwoof-Tool herunter. Sie können das Repository auch mit dem Git-Client klonen. Führen Sie die Befehle aus, um das Paket abzurufen:

 $ git clone https://github.com/EnableSecurity/wafw00f.git

Um das wafw00f-Tool in das System herunterzuladen, navigieren Sie zum wafw00f-Ordner oder -Verzeichnis und führen Sie den folgenden Befehl aus.

 $ python setup.py install

Die Setup-Datei wird verarbeitet und wafw00f wird im System installiert.

Werkzeugverwendung

Führen Sie diesen Befehl aus, um dieses Tool zu verwenden.

 $ wafw00f <url>

ERINNERUNG – Scannen Sie nur die Websites, die Sie testen dürfen

 ┌──(rootkali)-[/home/writer/wafw00f] └─# wafw00f https://webhashes.com ______ / \ ( Woof! ) \ ____/ ) ,, ) (_ .-. - _______ ( |__| ()``; |==|_______) .)|__| / (' /|\ ( |__| ( / ) / | \ . |__| \(_)_)) / | \ |__| ~ WAFW00F : v2.1.0 ~ The Web Application Firewall Fingerprinting Toolkit [*] Checking https://whatismyip.com [+] The site https://whatismyip.com is behind Cloudflare (Cloudflare Inc.) WAF. [~] Number of requests : 2

Schade, Firewall wurde erkannt!

Wir werden zu Diskussionszwecken eine andere Zielwebsite ausprobieren.

 ┌──(rootkali)-[/home/writer/wafw00f] └─# wafw00f https://renjith.org ______ / \ ( Woof! ) \ ____/ ) ,, ) (_ .-. - _______ ( |__| ()``; |==|_______) .)|__| / (' /|\ ( |__| ( / ) / | \ . |__| \(_)_)) / | \ |__| ~ WAFW00F : v2.1.0 ~ The Web Application Firewall Fingerprinting Toolkit [*] Checking https://renjith.org [+] Generic Detection results: [-] No WAF detected by the generic detection [~] Number of requests: 7

Diesmal wird keine Firewall erkannt.

Und um es im ausführlichen Modus zu verwenden, führen Sie den folgenden Befehl aus.

 wafw00f <url> -v

Sie können einige zusätzliche Funktionen dieses Dienstprogramms sehen, indem Sie diesen Befehl ausführen.

 wafw00f <url> --help

Einpacken

In diesem Artikel haben wir uns verschiedene Strategien und Tools zur Erkennung von Webanwendungs-Firewalls angesehen. Dies ist eine wichtige Aktivität, die während der Informationserfassungsphase jedes Penetrationstests für Webanwendungen durchgeführt werden muss.

Darüber hinaus kann der Penetrationstester, wenn er weiß, dass eine WAF vorhanden ist, verschiedene Ansätze ausprobieren, um die Abwehrmechanismen zu umgehen und alle Lücken in der Online-Anwendung auszunutzen.

Laut einem Ethical-Hacking-Forscher wird eine Web Application Firewall (WAF) zunehmend notwendig. Es ist immer wichtig, Ihre Webanwendungsprotokolle zu analysieren, um neue Angriffe auf den Back-End-Webanwendungsserver zu erkennen. Auf diese Weise können Sie Regeln in Ihrer Webanwendungs-Firewall anpassen, um ein Höchstmaß an Schutz zu bieten.

Das könnte Sie auch interessieren: Sicherheitslücken bei der Verwendung von Nikto Scanner.