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());
  • CRLF injekciók (HTTP válasz felosztás, munkamenet rögzítés);
  • XXE (XML külső entitás) beágyazás;
  • SSRF (Server Side Request Forgery);
  • 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:

# wapiti -u http://sites.vulns.pentestit.ru/ -m sql,xss,xxe

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:

# wapiti-getcookie -u http://sites.vulns.pentestit.ru/login.php -c cookie.json

Interaktív munka közben válaszolunk a kérdésekre és megadjuk a szükséges információkat, mint a bejelentkezés, jelszó stb.:

Wapiti - önállóan ellenőrizze a webhelyet a sebezhetőségek szempontjából

A kimenet egy JSON formátumú fájl. Egy másik lehetőség az összes szükséges információ hozzáadása a paraméteren keresztül -d:

# wapiti-getcookie - http://sites.vulns.pentestit.ru/login.php -c cookie.json -d "username=admin&password=admin&enter=submit"

Az eredmény hasonló lesz:

Wapiti - önállóan ellenőrizze a webhelyet a sebezhetőségek szempontjából

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á:

Wapiti - önállóan ellenőrizze a webhelyet a sebezhetőségek szempontjából

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:

Wapiti - önállóan ellenőrizze a webhelyet a sebezhetőségek szempontjából

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:

Wapiti - önállóan ellenőrizze a webhelyet a sebezhetőségek szempontjából

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:

Wapiti - önállóan ellenőrizze a webhelyet a sebezhetőségek szempontjából

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:

Wapiti - önállóan ellenőrizze a webhelyet a sebezhetőségek szempontjából

LFI/RFI

A szkenner megtalálta az összes mögöttes biztonsági rést:

Wapiti - önállóan ellenőrizze a webhelyet a sebezhetőségek szempontjából

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

Legyen egészséges és védett!

Forrás: will.com

Hozzászólás