ProHoster > Blog > Adminisztráció > Wapiti - önállóan ellenőrizze a webhelyet a sebezhetőségek szempontjából
Wapiti - önállóan ellenőrizze a webhelyet a sebezhetőségek szempontjából
Az utolsóban cikk beszéltünk róla Nemesida WAF Ingyenes - egy ingyenes eszköz webhelyek és API-k védelmére a hackertámadásokkal szemben, és ebben úgy döntöttünk, hogy áttekintünk egy népszerű sebezhetőség-ellenőrzőt Amerikai szarvas.
Egy webhely sebezhetőségeinek vizsgálata szükséges intézkedés, amely a forráskód elemzésével párosulva lehetővé teszi a webhely biztonságának felmérését a kompromittálással szemben. A webes erőforrásokat speciális eszközökkel ellenőrizheti.
A Nikto, a W3af (a Python 2.7-ben íródott, amely már nem támogatott) vagy az Arachni (február óta már nem támogatott) a legnépszerűbb megoldások az ingyenes szegmensben. Természetesen vannak mások, például a Wapiti, amelyre úgy döntöttünk, hogy összpontosítunk.
A Wapiti a következő típusú sebezhetőségekkel működik:
fájlbővítés (helyi és távoli, fopen, readfile);
injekciók (PHP / JSP / ASP / SQL injekció és XPath injekció);
XSS (Cross Site Scripting) (visszaverő és állandó);
parancsok észlelése és végrehajtása (eval(), system(), passtru());
ismert potenciálisan veszélyes fájlok használata (hála a Nikto adatbázisnak);
gyenge .htaccess konfigurációk, amelyek megkerülhetők;
bizalmas információkat felfedő biztonsági mentési fájlok jelenléte (forráskód közzététele);
Shellshock;
nyitott átirányítások;
nem szabványos HTTP metódusok, amelyek feloldhatók (PUT).
Jellemzők:
HTTP, HTTPS és SOCKS5 proxy támogatás;
hitelesítés többféle módszerrel: Basic, Digest, Kerberos vagy NTLM;
a szkennelési terület korlátozásának lehetősége (domain, mappa, oldal, URL);
az URL egyik paraméterének automatikus eltávolítása;
többszörös óvintézkedések a végtelen szkennelési hurkok ellen (például: ifor, egy paraméter határértékei);
az URL-ek vizsgálatának prioritás beállításának képessége (még akkor is, ha azok nincsenek a vizsgálati területen);
bizonyos URL-ek kizárása a vizsgálatból és a támadásokból (például: URL kijelentkezés);
cookie-k importálása (a wapiti-getcookie eszközzel szerezheti be őket);
az SSL-tanúsítvány-ellenőrzés aktiválásának/deaktiválásának képessége;
az URL-ek kinyerésének lehetősége a JavaScriptből (egy nagyon egyszerű JS-értelmezés);
interakció a HTML5-tel;
számos lehetőség a bejáró viselkedésének és korlátozásainak kezelésére;
a szkennelési folyamat maximális idejének beállítása;
egyéni HTTP-fejlécek hozzáadása vagy egyéni User-Agent beállítása.
További jellemzők:
sebezhetőségi jelentések készítése különféle formátumokban (HTML, XML, JSON, TXT);
vizsgálat vagy támadás szüneteltetése és folytatása (SQLite3 adatbázisokat használó munkamenet mechanizmus);
háttérvilágítás a terminálban a sebezhetőségek kiemelésére;
különböző szintű fakitermelés;
Gyors és egyszerű módja a támadómodulok aktiválásának/deaktiválásának.
Telepítés
A Wapiti jelenlegi verziója kétféleképpen telepíthető:
töltse le a forrást a hivatalos oldalról hely és futtassa a telepítő szkriptet, miután korábban telepítette a Python3-at;
a pip3 install wapiti3 paranccsal.
Ezt követően a Wapiti készen áll az indulásra.
Munka a szerszámmal
A Wapiti munkájának bemutatására egy speciálisan elkészített sites.vulns.pentestit.ru (belső erőforrás) standot használunk, amely különféle sebezhetőségeket (Injection, XSS, LFI/RFI) és a webes alkalmazások egyéb hiányosságait tartalmazza.
Az információk kizárólag tájékoztatási célokat szolgálnak. Ne sértsd meg a törvényt!
Alapvető parancs a szkenner elindításához:
# wapiti -u <target> <options>
Ugyanakkor meglehetősen részletes segítség található számos indítási lehetőséggel, például:
-- hatókör - alkalmazási terület
Ha megadja a hatókör paramétert a feltérképezési URL-lel együtt, akkor módosíthatja a webhely feltérképezési területét egyetlen oldal és a webhelyen található összes oldal megadásával.
-s и -x — adott URL-ek hozzáadásának vagy eltávolításának lehetőségei. Ezek a beállítások akkor hasznosak, ha egy adott URL-t kell hozzáadnia vagy eltávolítania a feltérképezési folyamat során.
-- kihagyni — a megadott paramétert ezzel a kulccsal megvizsgálja, de nem támadja meg. Hasznos, ha vannak olyan veszélyes paraméterek, amelyeket legjobban kizárni a szkennelés során.
--verify-ssl — a tanúsítvány ellenőrzésének engedélyezése vagy letiltása.
A Wapiti szkenner moduláris. Azonban bizonyos modulok elindításához, beleértve azokat is, amelyek automatikusan csatlakoznak a lapolvasó működése közben, a -m kapcsolót kell használnia, és vesszővel elválasztva listáznia kell a szükségeseket. Ha nem használja a kulcsot, akkor alapértelmezés szerint minden modul működik. A legegyszerűbb változatban így fog kinézni:
Ez a használati példa azt jelenti, hogy csak az SQL, XSS és XXE modulokat fogjuk használni a cél vizsgálatakor. Ezenkívül a kívánt módszertől függően szűrheti a modulok működését. Például -m “xss: get, blindsql: post, xxe: post”. Ebben az esetben a modul xss a GET metódussal küldött kérésekre és a modulra vonatkozik blibdsql - POST kérésekre stb. Egyébként, ha valamelyik listában szereplő modulra nem volt szükség a szkennelés során, vagy nagyon sokáig tart, akkor a Ctrl+C kombináció lenyomásával átugorhatjuk az aktuális modul használatát az interaktív menü megfelelő elemének kiválasztásával.
A Wapiti támogatja a kérések proxyn keresztül történő továbbítását kulcs használatával -p és hitelesítés a célhelyen a paraméteren keresztül -a. Megadhatja a hitelesítés típusát is: Alapvető, megemészteni, Kerberos и NTLM. Az utolsó kettő további modulok telepítését igényelheti. Ezenkívül bármilyen fejlécet beszúrhat a kérésekbe (beleértve az önkényeseket is User-Agent) és még sok más.
A hitelesítés használatához használhatja az eszközt wapati-getcookie. Segítségével formálunk aprósütemény, amelyet a Wapiti fog használni a szkennelés során. Képződés aprósütemény paranccsal kész:
A szkenner fő funkcióinak mérlegelésekor a webalkalmazás tesztelésére vonatkozó végső kérés esetünkben a következő volt:
# wapiti --level 1 -u http://sites.vulns.pentestit.ru/ -f html -o /tmp/vulns.html -m all --color -с cookie.json --scope folder --flush-session -A 'Pentestit Scans' -p http://proxy.office.pentestit.ru:3128
ahol egyéb paraméterek mellett:
-f и -o — a jelentés mentésének formátuma és elérési útja;
-m — az összes modul csatlakoztatása nem javasolt, mert hatással lesz a tesztelési időre és a jelentés méretére;
--szín — a talált sebezhetőségek kiemelése azok kritikusságától függően magának Wapitinek megfelelően;
-c - egy fájl használatával aprósüteménysegítségével generált wapati-getcookie;
-- hatókör - a támadás célpontjának kiválasztása. Egy opció kiválasztása mappa Minden URL-t feltérképeznek és megtámadnak, kezdve az alap URL-lel. Az alap URL-nek perjelnek kell lennie (nincs fájlnév);
--flush-session — lehetővé teszi az ismételt szkennelést, amely során a korábbi eredményeket nem veszik figyelembe;
-A - saját User-Agent;
-p — a proxyszerver címe, ha szükséges.
Egy kicsit a riportról
A vizsgálat eredménye az összes talált sebezhetőségről szóló részletes jelentés formájában jelenik meg HTML oldal formátumban, világos és könnyen olvasható formában. A jelentés tartalmazza a talált sebezhetőségek kategóriáit és számát, azok leírását, kéréseit, parancsait becsavar és tippeket a bezáráshoz. A könnyebb eligazodás érdekében a kategórianevekhez egy hivatkozás kerül, amelyre kattintva eljuthat hozzá:
A jelentés jelentős hátránya a webalkalmazás-térkép mint olyan hiánya, amely nélkül nem lesz egyértelmű, hogy minden címet és paramétert elemeztek-e. Fennáll a hamis pozitív eredmény lehetősége is. Esetünkben a jelentés „biztonsági mentési fájlokat” és „potenciálisan veszélyes fájlokat” tartalmaz. Számuk nem felel meg a valóságnak, mivel nem voltak ilyen fájlok a szerveren:
Lehet, hogy a hibásan működő modulokat idővel kijavítják. A jelentés másik hátránya, hogy a talált sebezhetőségeket (a kritikusságuktól függően) nem színesítik, vagy legalább kategóriákba bontják. Az egyetlen módja annak, hogy közvetve megértsük a talált sebezhetőség kritikusságát, a paraméter használata --szín szkennelés közben, majd a talált sebezhetőségek különböző színekkel jelennek meg:
De maga a jelentés nem ad ilyen színezést.
Sebezhetőségek
SQLi
A szkenner részben megbirkózott az SQLi kereséssel. Ha olyan oldalakon keres SQL sebezhetőséget, ahol nincs szükség hitelesítésre, nem merül fel probléma:
A csak hitelesítés után elérhető oldalakon még érvényes használatával sem lehetett sebezhetőséget találni aprósütemény, hiszen nagy valószínűséggel a sikeres hitelesítés után a munkamenetük „kijelentkezett” és aprósütemény érvénytelenné válik. Ha a deauthorization függvényt külön szkriptként valósítanák meg, amely ennek az eljárásnak a feldolgozásáért felelős, akkor az -x paraméteren keresztül teljesen kizárható lenne, és ezáltal megakadályozható lenne az aktiválás. Ellenkező esetben a feldolgozást nem lehet kizárni. Ez nem egy adott modulnál, hanem az eszköz egészénél jelent problémát, de ebből az árnyalatból kifolyólag nem lehetett több befecskendezést észlelni egy zárt erőforrás-területen.
XSS
A szkenner tökéletesen megbirkózott az adott feladattal, és megtalálta az összes előkészített sebezhetőséget:
LFI/RFI
A szkenner megtalálta az összes mögöttes biztonsági rést:
Általánosságban elmondható, hogy a téves pozitívumok és a hiányzó sebezhetőségek ellenére a Wapiti, mint ingyenes eszköz, elég jó teljesítményt mutat. Mindenesetre érdemes felismerni, hogy a szkenner meglehetősen nagy teljesítményű, rugalmas és többfunkciós, és ami a legfontosabb: ingyenes, így jogában áll a rendszergazdák és a fejlesztők segítségére lenni abban, hogy alapvető információkat szerezzenek a web biztonsági állapotáról. Alkalmazás.