So finden Sie heraus, welche WAF eine Website schützt

[*]

[*]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 beeinträchtigt werden kann.

[*]Aber vorher…

Was ist WAF?

[*]WAF (Webanwendungs-Firewall ) spielt eine wichtige Rolle bei der Sicherheit von Websites. Sie filtern und überwachen den Datenverkehr. Web Application Firewalls bieten Schutz vor größeren Fehlern. Viele Unternehmen modernisieren ihre Infrastruktur, um Firewalls für Webanwendungen einzubinden. Experten für ethisches Hacken zufolge können Firewalls von Webanwendungen Sicherheitsprobleme nicht selbst beheben. Eine angemessene Konfiguration ist 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 adressieren 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 entdecken können.

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

[*]Bitte beachten Sie: In diesem Tutorial habe ich meine eigene Website zum Aufzählen der Details verwendet. Führen Sie ohne vorherige Genehmigung des Eigentümers keine Scans oder andere Hacking-Aktivitäten auf Websites 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 beliebigen Port eine Verbindung zu entfernten Hosts herstellen.

  • HTTP-Parameter werden häufig von Webanwendungs-Firewalls in Antwortheadern belassen (oder eingefügt).
  • Telnet kann verwendet werden, um grundlegende Sammelinformationen zu erhalten, wie z. B. den Server und Cookies, die beim Fingerabdruck verwendet werden.
  • Geben Sie Telnet Zielwebsite.com 80 ein
[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, in der sie erstellt wurde, nachdem Telnet auf dem Zielport 80 verwendet wurde.

  Hands-On mit Skype-Sprach- und Videoanrufen für Outlook.com

[*]Einige WAF-Systeme erlauben die Änderung des Headers und können den Webserver auch dazu bringen, HTTP-Antworten zu senden, die von den Standardantworten abweichen.

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

Automatisierte Erkennung

#1. Erkennung mit NMAP

[*]Zu diesem Zweck 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 viele Pentester und Netzwerkadministratoren häufig verwenden.
  • Nmap wird verwendet, um Informationen über das Ziel zu erhalten.
  • Das Skript wurde auf derselben Webseite wie zuvor ausgeführt
  • Geben Sie den Befehl nmap –script=http-waf-fingerprint targetweb.com ein
[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. Erkennung mit Whatwaf

[*]Waswaf ist ein Sicherheitstool zum Fingerabdruck von Web-Apps und zum Erkennen des Vorhandenseins einer WAF. Dieses Tool ist nützlich, 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-Umgehung, Anwendungserkennung, Anwendungs-Fingerprinting und Software-Identifizierung sind allesamt häufige Verwendungszwecke für WhatWaf. Netzwerk
Pentester und Sicherheitsexperten sind die beabsichtigten 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 eine 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

Werkzeugnutzung

[*]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 angegebene Website-URL erkannt.

  Musiex fügt ein gestenbasiertes Banner mit Steuerelementen zum Abspielen von Musik hinzu [Jailbreak]

[*]Erinnerung! – Ich habe meine eigene Website zum Scannen verwendet

┌──(root💀kali)-[/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 offenbart, dass die Firewall Apache war. Wir können auch den Tor-Dienst verwenden, um nach der WAF zu suchen, aber es kann die Latenz erhöhen.

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

[*]Der Hauptvorteil des Whatwaf-Tools besteht darin, dass es automatisch versucht, die Payloads anzugeben, um die offenbarte Firewall zu umgehen.

#3. Erkennung mit Wafw00f

[*]Das bekannteste Tool zur Erkennung der Web Application Firewall ist Wafw00f. Wafw00f sendet eine HTTP-Anforderung an die Webanwendungs-Firewall, um sie zu identifizieren. Wenn das Senden von HTTP-Anforderungen fehlschlägt, sendet wafw00f eine böswillige HTTP-Anforderung. Wenn eine böswillige HTTP-Anforderung fehlschlägt, untersucht wafw00f frühere HTTP-Anforderungen 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.

  So exportieren Sie einen einzelnen Lesezeichenordner aus einem beliebigen Browser

[*]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 Tool wafw00f im System herunterzuladen, navigieren Sie zum Ordner oder Verzeichnis wafw00f und führen Sie den folgenden Befehl aus.

$ python setup.py install

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

Werkzeugnutzung

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

$ wafw00f <url>

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

┌──(root💀kali)-[/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 eine andere Ziel-Website für den Diskussionszweck ausprobieren.

┌──(root💀kali)-[/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 

Abschluss 👨‍💻

[*]In diesem Artikel haben wir uns verschiedene Strategien und Tools zur Erkennung von Web Application 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 ermöglicht das Wissen, dass eine WAF vorhanden ist, dem Penetrationstester, verschiedene Ansätze auszuprobieren, um die Abwehr zu umgehen und alle Lücken in der Online-Anwendung auszunutzen.

[*]Laut einem Forscher für ethisches Hacking wird es immer notwendiger, eine Web Application Firewall (WAF) zu haben. 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.

[*]Vielleicht interessiert Sie auch folgende Lektüre: Schwachstellen bei Verwendung von Nikto Scanner.