[*]
[*]Mindig jó ötlet, ha a támadó az ujjlenyomatvétel megkezdése előtt tudja, hogy a WAF-ot általában hol használják a hálózaton.
[*]A penetrációs tesztelőknek ismerniük kell a WAF-ot, mielőtt elkezdenének egy webalkalmazási tevékenységet, mivel ez befolyásolhatja támadásaik kimenetelét.
[*]De előtte…
Tartalomjegyzék
Mi az a WAF?
[*]WAF (Webes alkalmazások tűzfala ) jelentős szerepet játszik a webhely biztonságában. Szűrik és figyelik a forgalmat. A webalkalmazások tűzfalai védelmet nyújtanak a nagyobb hibák ellen. Sok szervezet modernizálja infrastruktúráját a webalkalmazások tűzfalainak beépítése érdekében. Az etikus hackelési szakértők szerint a webalkalmazások tűzfalai önmagukban nem tudják megoldani a biztonsági problémákat; megfelelő konfiguráció szükséges a külső fenyegetések felismeréséhez és blokkolásához.
[*]A WAF abban különbözik a hagyományos tűzfaltól, hogy bizonyos online alkalmazások tartalmát szűrheti, míg a hagyományos tűzfalak biztonsági korlátként működnek a szerverek között.
[*]
[*]A HTTP-interakciót szabályoknak kell alávetni. Ezek a szabályok az olyan tipikus sebezhetőségeket kezelik, mint a helyek közötti parancsfájlok és általában az SQL-befecskendezés.
[*]Az interneten számos ingyenes és nyílt forráskódú eszköz található, amelyek felfedezhetik a webalkalmazások mögötti tűzfalakat.
[*]Ebben a cikkben pedig megvizsgáljuk azokat a megközelítéseket és eszközöket, amelyek segítségével felfedezhető a WAF.
[*]Megjegyzés: Ebben az oktatóanyagban a saját webhelyemet használtam a részletek felsorolására. A tulajdonos előzetes engedélye nélkül ne végezzen szkennelést vagy más feltörési tevékenységet egyetlen webhelyen sem.
Manuális felfedezés
Észlelés TELNET segítségével
[*]Telnet főként hálózati rendszergazdák és penetrációs tesztelők használják. A Telnet lehetővé teszi a távoli gazdagépekhez való csatlakozást bármely porton keresztül, amint azt korábban említettük.
- A webalkalmazások tűzfalai gyakran hagyják (vagy beillesztik) a HTTP-paramétereket a válaszfejlécekbe.
- A Telnet segítségével olyan alapvető gyűjtőinformációkat szerezhet be, mint a szerver és az ujjlenyomat-vételhez használt cookie-k.
- Írja be: Telnet Targetwebsite.com 80
[email protected]: # telnet Targetwebsite.com 80 Trying 18.166.248.208... Connected to Targetwebsite.com. Escape character is '^]'.
[*]A fenti parancs futtatása után írja be a HEAD / HTTP / 1.1 parancsot, és nyomja meg az enter billentyűt.
[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.
[*]Jelzi a kiszolgálót, amelyen a webhely tárolva van, és azt a háttérnyelvet, amelyen a 80-as célporton a Telnet használata után létrehozták.
[*]Egyes WAF-rendszerek lehetővé teszik a fejléc módosítását, és a webszerver a szabványostól eltérő HTTP-válaszokat is küldhet.
[*]Ahogy a fenti eredmény is mutatja, a webszerver válaszolt kérésünkre, és felfedte, hogy a tűzfal/edge gateway Varnish.
Automatizált felfedezés
#1. Észlelés NMAP használatával
[*]Erre a célra az Nmap is használható, amely rendelkezik egy olyan szkripttel, amely képes azonosítani a webalkalmazások tűzfalát.
- Az Nmap egy biztonsági értékelő eszköz, amelyet sok tolltesztelő és hálózati rendszergazda gyakran használ.
- Az Nmap a céllal kapcsolatos információk beszerzésére szolgál.
- A szkript ugyanazon a weboldalon futott, mint korábban
- Írja be az nmap –script=http-waf-fingerprint targetweb.com parancsot
[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
[*]A fenti Nmap parancs használata után a rendszer a Citrix Netscaler tűzfalat észlelte.
#2. Észlelés Whatwaf használatával
[*]Whatwaf egy biztonsági eszköz a webalkalmazások ujjlenyomatának vételére és a WAF jelenlétének észlelésére. Ez az eszköz hasznos annak meghatározására, hogy egy webalkalmazást WAF véd-e a biztonsági felmérések során.
[*]Ha ez a helyzet, a megkerülési és elkerülési stratégiák hasznosak lehetnek az online alkalmazás további tesztelésében vagy kihasználásában.
[*]A WhatWaf gyakran használja a tűzfal megkerülését, az alkalmazásészlelést, az alkalmazás ujjlenyomatát és a szoftver azonosítását. Hálózat
A program tervezett felhasználói a tolltesztelők és a biztonsági szakemberek.
Hogyan kell telepíteni a WhatWaf-ot?
[*]Telepítés Kali-Linuxra
sudo apt install python3-pip git clone https://github.com/ekultek/whatwaf cd whatwaf sudo pip3 install -r requirements.txt
[*]Indításkor Python verzió nélkül könnyen megadhatunk egy futtatható fájlt:
./whatwaf --help
[*]Mivel azonban nem telepítettük a Python 2-függőségeket, javasoljuk, hogy kifejezetten a Python verziót adja meg.
python3 ./whatwaf --help
Eszközhasználat
[*]A Whatwaf tűzfalészlelő eszköz használata egyszerű! Csak a következő parancsot kell végrehajtanunk:
./whatwaf -u https://www.targetsite.com
[*]Amint az alábbiakban látható, ez az eszköz észlelte a tűzfalat a megadott webhely URL-címéhez.
[*]Emlékeztető! – A szkenneléshez a saját oldalamat használtam
┌──(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 ------------------------------
[*]Ahogy a fenti eredmény is mutatja, a webszerver válaszolt kérésünkre, és felfedte, hogy a tűzfal Apache. A tor szolgáltatást is használhatjuk a WAF keresésére, de ez növelheti a késleltetést.
./whatwaf -u https://www.targetsite.com --tor
[*]A Whatwaf eszköz fő előnye, hogy automatikusan megpróbálja átadni a hasznos terheket a felfedett tűzfal megkerülésére.
#3. Érzékelés a Wafw00f használatával
[*]A webalkalmazások tűzfalának észlelésének legismertebb eszköze az Wafw00f. A Wafw00f HTTP-kérést küld a webalkalmazás tűzfalának az azonosítás céljából. Ha a HTTP-kérések küldése sikertelen, a wafw00f rosszindulatú HTTP-kérést küld. Ha a rosszindulatú HTTP-kérés sikertelen, a wafw00f megvizsgálja a korábbi HTTP-kéréseket, és egy egyszerű algoritmust alkalmaz annak megállapítására, hogy a webalkalmazás tűzfala reagál-e a támadásainkra.
[*]A Wafw00f nincs előre telepítve a Kali Linux disztribúciókban.
Hogyan kell telepíteni a Wafw00f-et?
[*]A zip-csomag letölthető a hivatalos GitHub-forrásból.
[*]Töltse le a Wafwoof eszközt. A tár klónozásához a git klienst is használhatja. A csomag beszerzéséhez futtassa a következő parancsokat:
$ git clone https://github.com/EnableSecurity/wafw00f.git
[*]A wafw00f eszköz rendszerben történő letöltéséhez lépjen a wafw00f mappába vagy könyvtárba, és hajtsa végre a következő parancsot.
$ python setup.py install
[*]A telepítőfájl feldolgozásra kerül, és a wafw00f telepítésre kerül a rendszerbe.
Eszközhasználat
[*]Az eszköz használatához futtassa ezt a parancsot.
$ wafw00f <url>
[*]EMLÉKEZTETŐ – Csak azokat a webhelyeket ellenőrizze, amelyek tesztelésére jogosult
┌──(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
[*]Kár, de tűzfalat észleltünk!
[*]Megpróbálunk egy másik célwebhelyet a vita céljából.
┌──(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
[*]Ezúttal nem észlelhető tűzfal.
[*]Ha részletes módban szeretné használni, futtassa a következő parancsot.
wafw00f <url> -v
[*]A parancs végrehajtásával megtekintheti a segédprogram néhány további funkcióját.
wafw00f <url> --help
Befejezés 👨💻
[*]Ebben a cikkben különböző stratégiákat és eszközöket vizsgáltunk meg a webalkalmazások tűzfalainak észlelésére. Ez egy fontos tevékenység, amelyet minden webalkalmazás-penetrációs teszt információgyűjtési szakaszában el kell végezni.
[*]Ezen túlmenően a WAF használatának ismerete lehetővé teszi a penetrációs tesztelő számára, hogy különféle megközelítéseket próbáljon ki a védelmek megkerülésére, és kihasználja az online alkalmazás esetleges hiányosságait.
[*]Egy etikus hackerkutató szerint egyre nagyobb szükség van egy webalkalmazás-tűzfalra (WAF). Mindig fontos elemezni a webalkalmazás-naplókat a háttér webalkalmazás-kiszolgálón előforduló új támadások észlelése érdekében. Ez lehetővé teszi a szabályok testreszabását a webalkalmazás tűzfalában a legmagasabb szintű védelem biztosítása érdekében.
[*]Érdekelheti a következőt is: Sebezhetőségek a Nikto Scanner használatával.