Jak znaleźć, który WAF chroni witrynę?

[*]

[*]Zawsze dobrym pomysłem jest, aby osoba atakująca wiedziała, gdzie w sieci jest zwykle używany plik WAF, zanim zacznie pobierać odciski palców.

[*]Testerzy penetracji muszą być świadomi istnienia WAF przed rozpoczęciem korzystania z aplikacji internetowej, ponieważ może to mieć wpływ na wynik ich ataków.

[*]Ale przed tym…

Co to jest WAF?

[*]WAF (Zapora aplikacji internetowej ) odgrywa znaczącą rolę w bezpieczeństwie witryny. Filtrują i monitorują ruch. Firewalle aplikacji internetowych zapewniają ochronę przed poważnymi wadami. Wiele organizacji modernizuje swoją infrastrukturę, aby uwzględnić zapory aplikacji internetowych. Według ekspertów ds. etycznego hakowania, zapory sieciowe aplikacji internetowych nie są w stanie samodzielnie rozwiązać problemów z bezpieczeństwem; wymagana jest odpowiednia konfiguracja do rozpoznawania i blokowania zagrożeń zewnętrznych.

[*]WAF różni się od tradycyjnej zapory sieciowej tym, że może filtrować zawartość określonych aplikacji internetowych, podczas gdy tradycyjne zapory działają jako bariera bezpieczeństwa między serwerami.

[*]

[*]Interakcja HTTP podlega zestawowi reguł. Reguły te dotyczą typowych luk w zabezpieczeniach, takich jak skrypty między witrynami i ogólnie wstrzyknięcie SQL.

[*]W Internecie istnieje wiele bezpłatnych narzędzi typu open source, które mogą wykrywać zapory sieciowe stojące za aplikacjami internetowymi.

[*]W tym artykule przyjrzymy się podejściom i narzędziom, które można wykorzystać do odkrycia WAF.

[*]Uwaga: w tym samouczku wykorzystałem własną witrynę do wyliczania szczegółów. Nie wykonuj skanowania ani innych działań hakerskich w żadnej witrynie bez uprzedniej zgody właściciela.

Wykrywanie ręczne

Wykrywanie za pomocą TELNET

[*]Telnet jest używany głównie przez administratorów sieci i testerów penetracyjnych. Telnet umożliwia łączenie się ze zdalnymi hostami przez dowolny port, jak wspomniano wcześniej.

  • Parametry HTTP są często pozostawiane (lub wstawiane) w nagłówkach odpowiedzi przez zapory aplikacji internetowych.
  • Telnet może być używany do uzyskiwania podstawowych informacji o zbieraniu, takich jak serwer i pliki cookie używane do pobierania odcisków palców.
  • Wpisz Telnet Targetwebsite.com 80
[email protected]: # telnet Targetwebsite.com 80
Trying 18.166.248.208...
Connected to Targetwebsite.com.
Escape character is '^]'. 

[*]Po uruchomieniu powyższego polecenia wpisz HEAD / HTTP / 1.1 i naciśnij klawisz Enter.

[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.

[*]Wskazuje serwer, na którym hostowana jest strona internetowa oraz język zaplecza, na którym została utworzona po użyciu telnetu na porcie docelowym 80.

[*]Niektóre systemy WAF pozwalają na modyfikację nagłówka, a także mogą powodować wysyłanie przez serwer WWW odpowiedzi HTTP, które różnią się od standardowych.

[*]Jak pokazano w powyższym wyniku, serwer WWW odpowiedział na nasze żądanie i ujawnił, że brama firewall/krawędź to Varnish.

Automatyczne wykrywanie

#1. Wykrywanie za pomocą NMAP

[*]Do tego celu można również wykorzystać Nmap, który posiada skrypt, który może zidentyfikować zaporę sieciową aplikacji webowej.

  • Nmap to narzędzie do oceny bezpieczeństwa, z którego często korzysta wielu testerów i administratorów sieci.
  • Nmap służy do uzyskiwania informacji o celu.
  • Skrypt został uruchomiony na tej samej stronie internetowej, co poprzednio
  • Wpisz polecenie 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 

[*]Po użyciu powyższego polecenia Nmap wykryto zaporę Citrix Netscaler.

#2. Wykrywanie za pomocą Whatwaf

[*]Whatwaf to narzędzie zabezpieczające do pobierania odcisków palców aplikacji internetowych i wykrywania obecności dowolnego WAF. To narzędzie jest przydatne do określenia, czy aplikacja internetowa jest chroniona przez WAF podczas oceny bezpieczeństwa.

[*]W takim przypadku strategie omijania i unikania mogą być pomocne w dalszym testowaniu lub wykorzystywaniu aplikacji online.

[*]Omijanie zapory, wykrywanie aplikacji, odciski palców aplikacji i identyfikacja oprogramowania to częste zastosowania WhatWaf. Sieć
Zamierzonymi użytkownikami tego programu są testerzy pisakowi i specjaliści ds. bezpieczeństwa.

Jak zainstalować WhatWaf?

[*]Instalacja na Kali-Linux

sudo apt install python3-pip

git clone https://github.com/ekultek/whatwaf

cd whatwaf

sudo pip3 install -r requirements.txt

[*]Przy uruchomieniu, bez wersji Pythona, możemy łatwo określić plik wykonywalny:

./whatwaf --help   

[*]Ponieważ jednak nie zainstalowaliśmy zależności Pythona 2, zaleca się, abyś dostarczył konkretną wersję Pythona.

python3 ./whatwaf --help

Wykorzystanie narzędzi

[*]Narzędzie do wykrywania zapory sieciowej Whatwaf jest proste w użyciu! Wystarczy wykonać następujące polecenie:

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

[*]Jak widać poniżej, to narzędzie wykryło zaporę sieciową dla podanego adresu URL witryny.

[*]Przypomnienie! – Do skanowania wykorzystałem własną stronę

┌──(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
------------------------------

[*]Jak pokazano w powyższym wyniku, serwer WWW odpowiedział na nasze żądanie i ujawnił, że zapora to Apache. Możemy również użyć usługi tor do skanowania w poszukiwaniu WAF, ale może to zwiększyć opóźnienie.

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

[*]Główną zaletą narzędzia Whatwaf jest to, że automatycznie próbuje przekazać ładunki, aby ominąć ujawnioną zaporę ogniową.

#3. Wykrywanie za pomocą Wafw00f

[*]Najbardziej znanym narzędziem do wykrywania zapory sieciowej jest Wafw00f. Wafw00f wysyła żądanie HTTP do zapory aplikacji sieciowej, aby ją zidentyfikować. Gdy wysyłanie żądań HTTP nie powiedzie się, wafw00f wysyła złośliwe żądanie HTTP. Jeśli wykonanie złośliwego żądania HTTP nie powiedzie się, wafw00f analizuje wcześniejsze żądania HTTP i stosuje prosty algorytm w celu określenia, czy zapora sieciowa aplikacji internetowej reaguje na nasze ataki.

[*]Wafw00f nie jest preinstalowany w dystrybucjach Kali Linux.

Jak zainstalować Wafw00f?

[*]Pakiet zip jest dostępny do pobrania z oficjalnego źródła GitHub.

[*]Pobierz narzędzie Wafwoof. Możesz również użyć klienta git do sklonowania repozytorium. Aby pobrać pakiet, uruchom polecenia:

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

[*]Aby pobrać narzędzie wafw00f w systemie, przejdź do folderu lub katalogu wafw00f i wykonaj następujące polecenie.

$ python setup.py install

[*]Plik instalacyjny zostanie przetworzony, a wafw00f zostanie zainstalowany w systemie.

Wykorzystanie narzędzi

[*]Aby użyć tego narzędzia, uruchom to polecenie.

$ wafw00f <url>

[*]PRZYPOMNIENIE – Skanuj tylko te strony internetowe, które możesz testować

┌──(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

[*]Szkoda, wykryto zaporę!

[*]Wypróbujemy inną docelową witrynę do celów dyskusji.

┌──(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

[*]Tym razem nie wykryto zapory.

[*]Aby użyć go w trybie pełnym, uruchom następujące polecenie.

wafw00f  <url> -v 

[*]Możesz zobaczyć kilka dodatkowych możliwości tego narzędzia, wykonując to polecenie.

wafw00f <url> --help 

Zawijanie 👨‍💻

[*]W tym artykule przyjrzeliśmy się różnym strategiom i narzędziom do wykrywania zapór sieciowych aplikacji internetowych. Jest to ważna czynność, którą należy wykonać na etapie zbierania informacji w każdym teście penetracyjnym aplikacji internetowej.

[*]Co więcej, wiedza o istnieniu WAF umożliwia testerowi penetracji wypróbowanie różnych metod obejścia zabezpieczeń i wykorzystania wszelkich luk w aplikacji online.

[*]Według badacza zajmującego się etycznym hakowaniem, coraz bardziej konieczne jest posiadanie zapory sieciowej (WAF). Analiza dzienników aplikacji sieci Web w celu wykrycia nowych ataków występujących na serwerze aplikacji sieci Web zaplecza jest zawsze ważna. Umożliwia to dostosowanie reguł w zaporze aplikacji sieci Web w celu zapewnienia najwyższego poziomu ochrony.

[*]Możesz również zainteresować się czytaniem: Podatności przy użyciu Nikto Scanner.