[*]
[*]Det er altid en god idé for en angriber at vide, hvor en WAF typisk bruges på et netværk, før de begynder at tage fingeraftryk.
[*]Penetrationstestere skal være opmærksomme på en WAF, før de påbegynder et webapplikationengagement, da resultatet af deres overgreb kan blive påvirket.
[*]Men før det…
Indholdsfortegnelse
Hvad er WAF?
[*]WAF (Web Application Firewall ) spiller en væsentlig rolle i webstedets sikkerhed. De filtrerer og overvåger trafikken. Web Application Firewalls giver beskyttelse mod større fejl. Mange organisationer moderniserer deres infrastruktur til at inkludere webapplikationsfirewalls. Ifølge etiske hackingeksperter kan webapplikationsfirewalls ikke løse sikkerhedsproblemer på egen hånd; tilstrækkelig konfiguration er påkrævet for at genkende og blokere eksterne trusler.
[*]En WAF adskiller sig fra en traditionel firewall ved, at den kan filtrere indholdet af specifikke online applikationer, hvorimod traditionelle firewalls fungerer som en sikkerhedsbarriere mellem servere.
[*]
[*]En HTTP-interaktion er underlagt et sæt regler. Disse regler adresserer typiske sårbarheder som cross-site scripting og SQL-injektion generelt.
[*]Der er mange gratis og open source-værktøjer på internettet, der kan opdage firewalls bag webapplikationer.
[*]Og i denne artikel vil vi se på de tilgange og værktøjer, der kan bruges til at opdage en WAF.
[*]Bemærk venligst: I denne tutorial har jeg brugt mit eget websted til at opregne detaljerne. Udfør ikke scanning eller anden hackingaktivitet på nogen hjemmeside uden forudgående tilladelse fra ejeren.
Manuel opdagelse
Registrering ved hjælp af TELNET
[*]Telnet bruges hovedsageligt af netværksadministratorer og penetrationstestere. Telnet giver dig mulighed for at oprette forbindelse til fjernværter over enhver port, som tidligere nævnt.
- HTTP-parametre efterlades (eller indsættes) ofte i svarheadere af webapplikationsfirewalls.
- Telnet kan bruges til at indhente grundlæggende indsamlingsoplysninger såsom serveren og cookies, der bruges til fingeraftryk.
- Skriv Telnet Targetwebsite.com 80
[email protected]: # telnet Targetwebsite.com 80 Trying 18.166.248.208... Connected to Targetwebsite.com. Escape character is '^]'.
[*]Efter at have kørt kommandoen ovenfor, skriv HEAD / HTTP / 1.1 og tryk på enter-tasten.
[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.
[*]Det angiver den server, som webstedet er hostet på, og det backend-sprog, som det blev oprettet på efter brug af telnet på målport 80.
[*]Nogle WAF-systemer tillader, at headeren ændres, og de kan også få webserveren til at sende HTTP-svar, der er forskellige fra standardsvarene.
[*]Som vist i resultatet ovenfor, reagerede webserveren på vores anmodning og afslørede, at firewallen/edge-gatewayen var Varnish.
Automatiseret opdagelse
#1. Registrering ved hjælp af NMAP
[*]Nmap, som har et script, der kan identificere en webapplikations firewall, kan også bruges til dette formål.
- Nmap er et sikkerhedsvurderingsværktøj, som mange pen-testere og netværksadministratorer almindeligvis bruger.
- Nmap bruges til at få information om målet.
- Scriptet blev kørt mod den samme webside som før
- Indtast kommandoen 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
[*]Efter at have brugt ovenstående Nmap-kommando blev Citrix Netscaler-firewallen registreret.
#2. Registrering ved hjælp af Whatwaf
[*]Whatwaf er et sikkerhedsværktøj til fingeraftryk af webapps og detektering af tilstedeværelsen af enhver WAF. Dette værktøj er nyttigt til at afgøre, om en webapplikation er beskyttet af en WAF under sikkerhedsvurderinger.
[*]Hvis dette er tilfældet, kan omgåelses- og undgåelsesstrategier være nyttige til yderligere test eller udnyttelse af onlineapplikationen.
[*]Firewall-omgåelse, applikationsdetektion, applikationsfingeraftryk og softwareidentifikation er alle hyppige anvendelser af WhatWaf. Netværk
Pen-testere og sikkerhedsprofessionelle er de tilsigtede brugere af dette program.
Hvordan installerer man WhatWaf?
[*]Installation på Kali-Linux
sudo apt install python3-pip git clone https://github.com/ekultek/whatwaf cd whatwaf sudo pip3 install -r requirements.txt
[*]Ved lanceringen, uden en Python-version, kan vi nemt angive en eksekverbar fil:
./whatwaf --help
[*]Men fordi vi ikke installerede Python 2-afhængigheder, anbefales det, at du specifikt leverer Python-versionen.
python3 ./whatwaf --help
Brug af værktøj
[*]Whatwaf firewall-detektionsværktøj er ligetil at bruge! Vi skal bare udføre følgende kommando:
./whatwaf -u https://www.targetsite.com
[*]Som du kan se nedenfor, har dette værktøj registreret firewallen for den angivne websteds-URL.
[*]Påmindelse! – Jeg brugte mit eget websted til scanningen
┌──(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 ------------------------------
[*]Som vist i resultatet ovenfor reagerede webserveren på vores anmodning og afslørede, at firewallen var Apache. Vi kan også bruge tor-tjenesten til at scanne efter WAF, men det kan øge latensen.
./whatwaf -u https://www.targetsite.com --tor
[*]Den største fordel ved Whatwaf-værktøjet er, at det automatisk forsøger at give nyttelasterne til at omgå den afslørede firewall.
#3. Registrering ved hjælp af Wafw00f
[*]Det mest kendte værktøj til at opdage webapplikationens firewall er Wafw00f. Wafw00f sender en HTTP-anmodning til webapplikationens firewall for at identificere den. Når afsendelse af HTTP-anmodninger mislykkes, laver wafw00f en ondsindet HTTP-anmodning. Hvis det mislykkes at lave en ondsindet HTTP-anmodning, undersøger wafw00f tidligere HTTP-anmodninger og anvender en simpel algoritme til at bestemme, om webapplikationens firewall reagerer på vores angreb.
[*]Wafw00f er ikke forudinstalleret i Kali Linux-distributioner.
Hvordan installerer man Wafw00f?
[*]Zip-pakken er tilgængelig til download fra den officielle GitHub-kilde.
[*]Download Wafwoof-værktøjet. Du kan også bruge git-klienten til at klone depotet. For at få pakken skal du køre kommandoerne:
$ git clone https://github.com/EnableSecurity/wafw00f.git
[*]For at downloade wafw00f-værktøjet i systemet skal du navigere til mappen wafw00f eller mappen og udføre følgende kommando.
$ python setup.py install
[*]Opsætningsfilen vil blive behandlet, og wafw00f vil blive installeret i systemet.
Brug af værktøj
[*]For at bruge dette værktøj skal du køre denne kommando.
$ wafw00f <url>
[*]PÅMINKELSE – Scan kun de websteder, som du har tilladelse til at teste
┌──(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
[*]Ærgerligt, firewall blev fundet!
[*]Vi vil prøve et andet målwebsted til diskussionsformålet.
┌──(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
[*]Der er ikke fundet nogen firewall denne gang.
[*]Og for at bruge det i verbose tilstand, kør følgende kommando.
wafw00f <url> -v
[*]Du kan se et par ekstra funktioner i dette værktøj ved at udføre denne kommando.
wafw00f <url> --help
Afslutning 👨💻
[*]I denne artikel har vi set på forskellige strategier og værktøjer til at opdage webapplikationsfirewalls. Dette er en vigtig aktivitet, der skal udføres i informationsindsamlingsfasen for hver webapplikations penetrationstest.
[*]Ved at vide, at en WAF er på plads, tillader penetrationstesteren desuden at prøve forskellige tilgange til at komme rundt om forsvaret og udnytte eventuelle huller i onlineapplikationen.
[*]Ifølge en etisk hackingforsker er det i stigende grad nødvendigt at have en webapplikationsfirewall (WAF). Det er altid vigtigt at analysere dine webapplikationslogfiler for at opdage nye angreb, der forekommer på backend-webapplikationsserveren. Dette giver dig mulighed for at tilpasse regler i din webapplikations firewall for at give det højeste niveau af beskyttelse.
[*]Du kan også være interesseret i at læse: Sårbarheder ved hjælp af Nikto Scanner.