
Eelmises osas oleme rÀÀkinud Nemesida WAF Free â tasuta tööriist, mis kaitseb veebisaite ja API-sid hĂ€kkerite rĂŒnnakute eest, ning seekord teeme ĂŒlevaate populaarsest haavatavuste skannerist .
Veebisaidi haavatavuste skaneerimine on hĂ€davajalik tegevus, mis koos lĂ€htekoodi analĂŒĂŒsiga vĂ”imaldab hinnata selle kaitset ohte eest. Veebiresurssi saab skaneerida spetsialiseeritud tööriistade abil.
Nikto, W3af (kirjutatud Python 2.7-s, mille toetamine on lĂ”ppenud) vĂ”i Arachni (pole enam toetatud alates veebruarist) â need on kĂ”ige populaarsemad lahendused tasuta segmentis. Loomulikult on ka teisi, nĂ€iteks Wapiti, millele me keskendume.
Wapiti töötab jÀrgmiste haavatavus liikidega:
- failide avamine (kohalikud ja eemalolevad, fopen, readfile);
- sisestused (PHP / JSP / ASP / SQL-sisestused ja XPath-sisestused);
- XSS (rist-saitide skripteerimine) (peegeldunud ja pĂŒsiv);
- kÀskude avastamine ja tÀitmine (eval(), system(), passtru());
- CRLF-sisestused (HTTP vastuste eraldamine, sessiooni fikseerimine);
- XXE (XML vÀline entiteet) sisestamine;
- SSRF (serveri poolel pÀringu vale esitamine);
- kuulsate potentsiaalselt ohtlike failide kasutamine (tÀnu Nikto andmebaasile);
- .htaccess nĂ”rkade konfiguratsioonide vĂ”imalus, mida saab ĂŒletada;
- tagatseid faile, mis paljastavad konfidentsiaalset teavet (allika kood);
- Shellshock;
- avatud suunamised;
- ebastandardsete HTTP meetodite lubamine (PUT).
VÔimalused:
- HTTP, HTTPS ja SOCKS5 proxy tugi;
- mitme autentimismeetodi tugi: Basic, Digest, Kerberos vÔi NTLM;
- vÔime piirata skaneerimisala (domeen, kaust, leht, URL);
- ĂŒhe URL parameetri automaatne eemaldamine;
- mitmed ettevaatusabinĂ”ud lĂ”pmatute skaneerimise tsĂŒklite vastu (nĂ€ide: ifor, parameetri vÀÀrtuste piiramise abil);
- vÔime seada prioriteedi URL-ide uurimiseks (isegi kui need ei ole skaneerimisalas);
- vĂ”ime teatud URL-e skaneerimisest ja rĂŒnnakutest vĂ€lja jĂ€tta (nt: URL logout);
- kĂŒpsiste importimine (neid saamine tööriista wapiti-getcookie abil);
- vÔime aktiveerida / deaktiveerida SSL-sertifikaatide kontrolli;
- vÔime JavaScriptist URL-e vÀljavÔtta (vÀga lihtne JS tÔlgendan);
- interaktsioon HTML5-ga;
- mitmesuguseid crawler'i kÀitumise ja piirangute juhtimise vÔimalusi;
- skaneerimisprotsessi maksimaalse aja seadmine;
- mÔnede kohandatavate HTTP-pealkirjade lisamine vÔi kasutajakonto User-Agent seadistamine.
Lisafunktsioonid:
- haavatavuste aruannete genereerimine erinevates formaatides (HTML, XML, JSON, TXT);
- skaneerimise vĂ”i rĂŒnnakute peatamine ja taastamine (seansimehhanism SQLite3 andmebaasiga);
- terminali silendamine haavatavuse esitlemiseks;
- erinevad logimise tasemed;
- kiire ja lihtne viis rĂŒnnakumoodulite aktiveerimiseks / deaktiveerimiseks.
Installeerimine
Wapiti uusimat versiooni saab installida 2 viisil:
- laadige alla allikas ametlikult ja kÀivitage installiskript, eelnevalt installides Python3;
- kasutades kÀsku pip3 install wapiti3.
PĂ€rast seda on Wapiti kasutamiseks valmis.
Tööriista kasutamine
Wapiti töö demonstreerimiseks kasutame spetsiaalselt ette valmistatud seisu sites.vulns.pentestit.ru (siseressurss), mis sisaldab erinevaid haavatavusi (Injection, XSS, LFI/RFI) ja muid veebirakenduste puudusi.
Teave antakse ainult tutvumiseks. Ăra riku seadusandlust!
PÔhikÀsk skanneri kÀivitamiseks:
# wapiti -u <target> <options>Sellel on ĂŒsna pĂ”hjalik juhend, kus on suur hulk kĂ€ivitamisvĂ”imalusi, nĂ€iteks:
âscope â rakendusalad
Kui koos URL-iga skaneerimiseks mÀÀrata parameter scope, saab reguleerida saidi skaneerimist, mÀÀrates nii eraldi lehekĂŒlge kui ka kĂ”ik lehed, mida on vĂ”imalik saidilt leida.
-s ja -x â spetsiifiliste URL-ide lisamise vĂ”i eemaldamise parameetrid. Need parameetrid on kasulikud, kui on vaja lisada vĂ”i eemaldada konkreetne URL skaneerimise protsessis.
âskip â mĂ€rgitud parameeter koos selle vĂ”tmega skaneeritakse, kuid rĂŒnnatakse mitte. Kasulik, kui on mingeid ohtlikke parameetreid, mida on parem skaneerimise ajal vĂ€ltida.
âverify-ssl â sertifikaadi kontrollimise sisselĂŒlitamine vĂ”i vĂ€ljalĂŒlitamine.
Wapiti skanner on modulaarselt seadistatud. Siiski, et kĂ€ivitada konkreetseid mooduleid, mis automaatselt ĂŒhendatakse skanneri töö ajal, tuleb kasutada vĂ”tmeid -m ja loetleda vajalikud komadega. Kui vĂ”tme kasutamist ei toimu, siis töötavad vaikimisi kĂ”ik moodulid. KĂ”ige lihtsam variant nĂ€eb vĂ€lja jĂ€rgmiselt:
# wapiti -u http://sites.vulns.pentestit.ru/ -m sql,xss,xxeSee nĂ€ide tĂ€hendab, et kasutame skaneerimisel ainult SQL, XSS ja XXE mooduleid. Lisaks saab moodulite tööd filtreerida vastavalt soovitud meetodile. NĂ€iteks -m âxss: get, blindsql: post, xxe: postâ. Sellisel juhul moodul xss rakendatakse GET meetodiga edastatavatele pĂ€ringutele, samas kui moodul blibdsql rakendatakse POST-pĂ€ringutele jne. Muide, kui mĂ”ni loetellu kuuluv moodul ei osutunud skaneerimise ajal vajalikuks vĂ”i töötab liiga kaua, siis kombinatsiooni Ctrl+C vajutamine vĂ”imaldab mööda pÀÀseda praegusest moodulist, valides vastava punkti interaktiivses menĂŒĂŒs.
Wapiti toetab pĂ€ringute edastamist lĂ€bi proksi-serveri, kasutades vĂ”tit -p ja autentimist sihtveebisaidil lĂ€bi parameetri -a. Samuti on vĂ”imalik mÀÀrata autentimise tĂŒĂŒp: BasiŃ, Digest, Kerberos ja NTLM. Viimaste kahe jaoks vĂ”ib osutuda vajalikuks tĂ€iendavate moodulite installimine. Samuti on vĂ”imalik pĂ€ringutesse lisada igasuguseid pĂ€iseid (sh vabalt valitud User-Agent) ja palju muud.
Autentimise kasutamiseks saab kasutada tööriista wapiti-getcookie. Selle abiga vormindame kĂŒpsiseid, mida Wapiti skaneerimisel kasutab. Formeerimine kĂŒpsiseid toimub kĂ€su abil:
# wapiti-getcookie -u http://sites.vulns.pentestit.ru/login.php -c cookie.jsonTöötamise kĂ€igus interaktiivses reĆŸiimis vastame kĂŒsimustele ja anname vajalikku teavet, nagu: kasutajanimi, parool ja muud:

Saame vÀlja faili JSON-formaadis. Teine variant on kogu vajalik teave lisada parameetri kaudu -d:
# wapiti-getcookie - http://sites.vulns.pentestit.ru/login.php -c cookie.json -d "username=admin&password=admin&enter=submit"Tulemus on analoogne:

Skanneri pÔhifunktsiooni arvesse vÔttes oli meie juhtumi lÔpp-pÀring veebirakenduse testimiseks jÀrgmine:
# 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:3128kus teiste parameetrite seas:
-f ja -o â aruande salvestamise formaat ja tee;
-m â kĂ”igi moodulite ĂŒhendamine â ei soovitata, kuna see mĂ”jutab testimise aega ja aruande suurust;
âcolor â rĂ”hutada leitud haavatavusi vastavalt nende kriitilisusele Wapiti enda versiooni jĂ€rgi;
-c â kasutada faili kĂŒpsiseid, genereeritud kasutades wapiti-getcookie;
âscope â rĂŒndeesmĂ€rgi valik. Valides variandi kaust skaneeritakse ja rĂŒnnatakse iga URL-i alates baasist. Baas-URL peab lĂ”ppema kaldkriipsuga (ilma failinime);
âflush-session â vĂ”imaldab uuesti skaneerida, arvestamata varasemaid tulemusi;
-A â kohandatud User-Agent;
-p â vahepealse serveri aadress, kui see on vajalik.
Veidi aruandest
Skaneerimistulemus esitatakse detailse aruandena kÔigi leitud haavatavuste kohta HTML-lehe vormingus, selge ja arusaadava esitusega. Aruandes on mÀrgitud kategooriad ja leitud haavatavuste arv, nende kirjeldus, pÀringud, kÀsud curl ja soovitused nende sulgemiseks. Lihtsustatud navigeerimise huvides lisatakse kategooriate pealkirjadele link, millele klikkides saab neid vaadata:

Oluline puudus raportis on, et seal puudub veebirakenduse kaart, mille abil ei ole selge, kas kĂ”ik aadressid ja parameetrid on analĂŒĂŒsitud. Samuti on valehĂ€irete tĂ”enĂ€osus. Meie puhul on raportis mainitud 'varukoopia faile' ja 'potentsiaalselt ohtlikke faile'. Nende arv ei vasta tĂ”ele, kuna selliseid faile serveris ei olnud:

VĂ”imalik, et vale tööga moodulid parandatakse aja jooksul. Samuti vĂ”ib raporti puuduseks pidada leitud haavatavuste vĂ€rvilise tuvastamise puudumist (vastavalt nende kriitilisusele) vĂ”i vĂ€hemalt nende jagamist kategooriatesse. Ainsana saame me kaudselt mĂ”ista leitud haavatavuse kriitilisust, kui rakendada parameetrit âcolor skaneerimise ajal ja siis vĂ€rvilise kodeerimisega tuvastatud haavatavused:

Kuid raportis sarnast vÀrvikoodimist ei ole ette nÀhtud.
Haavatavused
SQLi
Skanner suutis osaliselt leida SQL-i haavatavusi. Halduse nÔudmist mitte vajavatel lehtedel SQL haavatavuste otsimisel ei esine mingeid probleeme:

Viga leidmine lehtedel, mis on saadaval ainult autentimise jĂ€rel, ei Ă”nnestunud isegi valideeritud andmeid kasutades, kĂŒpsiseid, kuna tĂ”enĂ€oliselt toimub pĂ€rast edukat autentimist "istungi lahkumine" ja kĂŒpsiseid need muutuvad kehtetuks. Kui deautoriseerimise funktsioon oleks teostatud eraldi skriptina, mis vastutab selle protseduuri töötlemise eest, oleks seda vĂ”imalik tĂ€ielikult vĂ€listada -x parameetri abil, vĂ€ltides sellega selle aktiveerimist. Vastasel juhul ei saa seda töötlemist vĂ€ltida. See ei ole konkreetse mooduli probleem, vaid tööriista ĂŒldine kĂŒsimus, kuid selle nĂŒansi tĂ”ttu ei Ă”nnestunud leida mitmeid sĂŒstimise katseid ressurssi suletud alal.
XSS
Antud ĂŒlesandega skaneerija tegeles suurepĂ€raselt ja leidis kĂ”ik ettevalmistatud haavatavused:

LFI/RFI
Skaneerija leidis kÔik peidetud haavatavused:

KokkuvĂ”ttes nĂ€itab Wapiti, tasuta tööriist, vaatamata valehĂ€iretele ja haavatavuste vahelejĂ€tmistele, ĂŒsna hĂ€id tulemusi. Igal juhul tuleb tunnistada, et skanner on tundlik, paindlik ja mitmekesine ning mis kĂ”ige tĂ€htsam â tasuta, seega on seda Ă”igust kasutada, aidates administraatoreil ja arendajatel saada pĂ”hiteavet veebirakenduse turvalisuse seisukorrast.
PĂŒsige terved ja kaitstud!
Allikas: habr.com
