
NĂ« tĂ« kaluarĂ«n Ne kemi folur pĂ«r Nemesida WAF Free â njĂ« mjet falas pĂ«r mbrojtjen e faqeve tĂ« internetit dhe API-ve nga sulmet e hackereve, dhe nĂ« kĂ«tĂ« rast kemi vendosur tĂ« japim njĂ« rishikim tĂ« skanerit tĂ« njohur tĂ« dobĂ«sive .
Skandimi i faqes për dobësi është një masë e nevojshme, e cila, në bashkëpunim me analizën e kodit burimor, lejon vlerësimin e nivelit të sigurisë nga kërcënimet e kompromentimit. Mund të kryhet skanimi i burimeve duke përdorur mjete të specializuara.
Nikto, W3af (i shkruar nĂ« Python 2.7, mbĂ«shtetjeja pĂ«r tĂ« ka mbaruar) ose Arachni (nuk mbĂ«shtetet mĂ« qĂ« nga shkurt) â janĂ« zgjidhjet mĂ« tĂ« njohura tĂ« disponueshme nĂ« segmentin falas. Sigurisht, ka edhe tĂ« tjera, si Wapiti, mbi tĂ« cilin kemi vendosur tĂ« fokusohemi.
Wapiti punon me llojet e mëposhtme të dobësive:
- zbrazja e skedarëve (lokale dhe të largëta, fopen, readfile);
- injeksione (PHP / JSP / ASP / injeksione SQL dhe injeksione XPath);
- XSS (skrimting ndërfaqe të kryqëzuara) (reflekse dhe permanente);
- zbulesa dhe ekzekutimi i komandave (eval (), system (), passtru ());
- injeksione CRLF (ndarja e përgjigjeve HTTP, fiksa e seancës);
- XXE (injeksion i entitetit të jashtëm XML);
- SSRF (falsifikimi i kërkesës në anën e serverit);
- përdorimi i skedarëve potencialisht të rrezikshëm të njohur (falë bazës së të dhënave Nikto);
- konfigurime të dobëta .htaccess që mund të kalohen;
- prania e skedarëve të kopjimit rezervë që zbulojnë informacion të ndjeshëm (zbrazja e kodit burimor);
- Shellshock;
- redirigjime të hapura;
- metoda të pazakonta HTTP që mund të lejohet (PUT).
Mundësitë:
- mbështetje për proxy HTTP, HTTPS dhe SOCKS5;
- autentikimi me metoda të ndryshme: Basic, Digest, Kerberos ose NTLM;
- mundësia për të kufizuar fushën e skanimit (domain, dosje, faqe, URL);
- fshirja automatike e njërit prej parametrave në URL;
- masa të shumta paraprake kundër rrethit të pafund të skanimit (shembuj: ifor, kufizimi i vlerave për parametrin);
- mundësia për të vendosur prioritet për shqyrtimin e URL-ve (edhe nëse nuk janë në fushën e skanimit);
- mundësia për të përjashtuar disa URL nga skanimi dhe sulmet (p.sh.: URL logout);
- importimi i skedarëve të cookie-së (marrja e tyre përmes mjetit wapiti-getcookie);
- mundësia për të aktivizuar / çaktivizuar verifikimin e certifikatave SSL;
- mundësia për të nxjerrë URL nga JavaScript (një interpreter shumë i thjeshtë JS);
- bashkëpunimi me HTML5;
- disa disa mënyra për të menaxhuar sjelljen dhe kufizimet e crawler-it;
- vendosja e kohës maksimale për procesin e skanimit;
- shtimi i disa titujve HTTP të personalizuar ose konfiguroja e User-Agent-it të personalizuar.
Karakteristika të tjera:
- krijimi i raporteve të dobësive në formate të ndryshme (HTML, XML, JSON, TXT);
- pezullimi dhe rinisja e skanimit ose sulmit (mekanizmi i sesionit duke përdorur databaza SQLite3);
- thekson në terminal për të identifikuar dobësinë;
- nivale të ndryshme të regjistrimit;
- një mënyrë e shpejtë dhe e lehtë për të aktivizuar / çaktivizuar modulat e sulmit.
Instalimi
Versioni aktual i Wapiti mund të instalohet në 2 mënyra:
- duke shkarkuar burimin nga zyrtarja dhe duke ekzekutuar skriptin e instalimit, pas instalimit të Python3;
- duke përdorur komandën pip3 install wapiti3.
Pas kësaj, Wapiti do të jetë gati për t'u përdorur.
Puna me mjetin
Për të demonstruar funksionimin e Wapiti, do të përdorim një platformë të përgatitur posaçërisht sites.vulns.pentestit.ru (burim i brendshëm), që përmban dobësi të ndryshme (Injection, XSS, LFI/RFI) dhe mangësi të tjera të aplikacioneve web.
Informacioni ofrohet ekskluzivisht për qëllime edukative. Mos shkelni ligjin!
Komanda bazë për të nisur skanerin:
# wapiti -u <target> <options>Në këtë mënyrë, ka një ndihmë mjaft të detajuar me një numër të madh opsionesh për nisjen, për shembull:
âscope â fusha e aplikimit
Nëse së bashku me URL-në për skanimin tregoni parametrin scope, mund të rregulloni fushën e skanimit të site-it, duke treguar si një faqe të veçantë ashtu edhe të gjitha faqet që mund të gjenden në site.
-s dhe -x â parametrat pĂ«r shtimin ose heqjen e URL-ve tĂ« caktuara. KĂ«to parametra janĂ« tĂ« dobishĂ«m kur duhet tĂ« shtoni ose hiqni njĂ« URL tĂ« caktuar nĂ« procesin e skanimit.
âskip â parametri i specifikuar me kĂ«tĂ« çelĂ«s do tĂ« skanohet, por nuk do tĂ« sulmohet. E dobishme, nĂ«se ka ndonjĂ« parametrat tĂ« rrezikshĂ«m qĂ« Ă«shtĂ« mĂ« mirĂ« tĂ« pĂ«rjashtohen gjatĂ« skanimit.
âverify-ssl â aktivizimi ose çaktivizimi i verifikimit tĂ« certifikatĂ«s.
Skaneri Wapiti është modular. Megjithatë, për të nisur module të veçanta nga ato që lidhen automatikisht gjatë punës së skaneri, duhet të përdorni çelësin -m dhe të renditni ato që nevojiten nëpërmjet presjes. Nëse çelësi nuk përdoret, të gjithë modulët do të jenë aktivë si parazgjedhje. Në variantin më të thjeshtë do të duket si më poshtë:
# wapiti -u http://sites.vulns.pentestit.ru/ -m sql,xss,xxeKy kyç pĂ«rdorimi do tĂ« thotĂ« se ne do tĂ« pĂ«rdorim vetĂ«m modulet SQL, XSS dhe XXE gjatĂ« skanimit tĂ« objektivit. PĂ«rveç kĂ«saj, Ă«shtĂ« e mundur tĂ« filtrohet puna e modulit nĂ« varĂ«si tĂ« metodĂ«s sĂ« kĂ«rkuar. PĂ«r shembull -m âxss: get, blindsql: post, xxe: postâ. NĂ« kĂ«tĂ« rast, moduli xss do tĂ« aplikohet nĂ« kĂ«rkesat e dĂ«rguara me metodĂ«n GET, ndĂ«rsa moduli blibdsql do tĂ« pĂ«rdoret pĂ«r kĂ«rkesat POST dhe kĂ«shtu me radhĂ«. PĂ«r mĂ« tepĂ«r, nĂ«se ndonjĂ« modul qĂ« ishte pĂ«rfshirĂ« nĂ« listĂ« nuk nevojitet gjatĂ« skanimit ose punon shumĂ« gjatĂ«, duke shtypur kombinimin Ctrl+C mund tĂ« anashkaloni pĂ«rdorimin e modulit aktual, duke zgjedhur pikĂ«n pĂ«rkatĂ«se nĂ« menunĂ« interaktive.
Wapiti mbështet dërgimin e kërkesave përmes një proxy me ndihmën e çelësit -p dhe autentikimin në faqen e synuar përmes parametrave -a. Gjithashtu, mund të specifikoni llojin e autentikimit: Basiç, Digest, Kerberos dhe NTLM. Për dy të fundit, mund të nevojitet instalimi i moduleve shtesë. Përveç kësaj, është e mundur të vendosni çdo titull në kërkesa (përfshirë ndonjë User-Agent) dhe shumë gjëra të tjera.
Për të përdorur autentikimin, mund të përdorni mjetin wapiti-getcookie. Me ndihmën e tij, ne formojmë cookie, të cilat Wapiti do të përdorë gjatë skanimit. Formimi cookie realizohet me ndihmën e komandës:
# wapiti-getcookie -u http://sites.vulns.pentestit.ru/login.php -c cookie.jsonGjatë punës në modin interaktiv, përgjigjeni pyetjeve dhe jepni informacionin e nevojshëm si: emri i përdoruesit, fjalëkalimi dhe të tjera:

Në dalje marrim një skedar në formatin JSON. Një tjetër mundësi është të shtoni gjithë informacionin e nevojshëm përmes parametrave -d:
# wapiti-getcookie - http://sites.vulns.pentestit.ru/login.php -c cookie.json -d "username=admin&password=admin&enter=submit"Rezultati do të jetë i ngjashëm:

Duke shqyrtuar funksionalitetin kryesor të skanerit, kërkesa finale për kryerjen e testeve të aplikacionit web në rastin tonë ishte:
# 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:3128ku midis parametrave tĂ« tjerĂ«:
--follow dhe -o â formati dhe rruga pĂ«r ruajtjen e raportit;
-m â aktivizimi i tĂ« gjithĂ« moduleve â nuk rekomandohet, pasi do tĂ« ndikojĂ« nĂ« kohĂ«n e testimit dhe madhĂ«sinĂ« e raportit;
âcolor â tĂ« theksojĂ« dobĂ«sitĂ« e gjetura nĂ« varĂ«si tĂ« rĂ«ndĂ«sisĂ« sĂ« tyre sipas versionit tĂ« vetĂ« Wapiti;
-c â pĂ«rdorimi i njĂ« skedari me cookie, tĂ« gjeneruar me ndihmĂ«n e wapiti-getcookie;
âscope â zgjedhja e objektivit pĂ«r sulm. Duke zgjedhur opsionin folder do tĂ« skanohet dhe sulmohet çdo URL, duke filluar nga baza. URL bazĂ« duhet tĂ« ketĂ« njĂ« slash (pa emrin e skedarit);
âflush-session â lejon pĂ«rsĂ«ritjen e skanimit, nĂ« tĂ« cilin nuk do tĂ« merren parasysh rezultatet e mĂ«parshme;
-A â e vetja User-Agent;
-p â adresa e serverit proxy, nĂ«se Ă«shtĂ« e nevojshme.
Pak për raportin
Rezultati i skanimit paraqitet në formën e një raporti të detajuar për të gjitha dobësitë e gjetura në formatin e një faqe HTML, në një formë të kuptueshme dhe të lehtë për t'u perceptuar. Në raport do të përmenden kategori dhe numri i dobësive të gjetura, përshkrimi i tyre, kërkesat, komandat për curl dhe këshilla se si t'i mbyllni. Për lehtësinë e navigimit, do të shtohet një lidhje në titujt e kategorive, duke klikuar mbi të cilat mund të kaloni tek ajo:

Një mangësi e konsiderueshme e raportit është mungesa e një harta të tillë të aplikacionit web, pa të cilën nuk do të jetë e qartë, nëse të gjitha adresat dhe parametrat janë analizuar. Gjithashtu, ekziston mundësia e rreziqeve të gabuara. Në rastin tonë, raporti përfshin 'skedarë backup' dhe 'skedarë potencialisht të rrezikshëm'. Numri i tyre nuk përputhet me realitetin, pasi skedarët e tillë nuk ishin në server:

Ndoshta, modulĂ«t qĂ« funksionojnĂ« gabim do tĂ« korrigjohen me kalimin e kohĂ«s. NjĂ« tjetĂ«r mangĂ«si e raportit Ă«shtĂ« mungesa e ngjyrave pĂ«r dobĂ«sitĂ« e gjetura (nĂ« pĂ«rputhje me kriticitetin e tyre), ose tĂ« paktĂ«n ndarja e tyre sipas kategorive. E vetmja mĂ«nyrĂ« qĂ« mund tĂ« kuptojmĂ« pĂ«r kriticitetin e dobĂ«sisĂ« sĂ« gjetur Ă«shtĂ« tĂ« aplikojmĂ« parametrin âcolor nĂ« skanim dhe atĂ«herĂ« dobĂ«sitĂ« e gjetura do tĂ« ngjyrosĂ«n me ngjyra tĂ« ndryshme:

Por në vetë raportin një ngjyrosje e tillë nuk parashikohet.
Dobësitë
SQLi
Skandari u përball me pjesën e kërkimit të SQLi. Kur kërkohen dobësi SQL në faqet ku nuk kërkohet autentifikim, nuk ka probleme:

Nuk arritëm të gjejmë dobësinë në faqet që aksesohen vetëm pas autentifikimit, madje edhe me përdorimin e validit cookie, pasi me siguri pas autentifikimit të suksesshëm do të ndodhte "dalja e sesionit" dhe cookie do të bëheshin të pavlefshme. Nëse funksioni i deautentifikimit do të ishte realizuar në formën e një skenari të veçantë që merret me përpunimin e kësaj procedure, atëherë do të ishte e mundur ta përjashtojmë plotesisht atë me parametrin -x, duke parandaluar kështu aktivizimin e tij. Përndryshe, nuk do të jetë e mundur të përjashtohet përpunimi i tij. Kjo është një problem i mjetit në tërësi dhe jo i një moduli të caktuar, por për shkak të këtij detaji nuk arritëm të zbulojmë disa injeksione në zonën private të burimit.
XSS
Me detyrën e caktuar, skaneri u përball me sukses dhe gjeti të gjitha dobësitë e përgatitura:

LFI/RFI
Skeneri zbuloi të gjitha vulnerabilitetet e instaluara:

NĂ« pĂ«rgjithĂ«si, pavarĂ«sisht rreziqeve false dhe humbjeve tĂ« vulnerabiliteteve, Wapiti, si njĂ« mjet falas, tregon rezultate mjaft tĂ« mira. ĂfarĂ«do qĂ« tĂ« ndodhi, duhet tĂ« pranojmĂ« se skeneri Ă«shtĂ« mjaft i fuqishĂ«m, fleksibĂ«l dhe shumĂ«funksional, dhe mĂ« e rĂ«ndĂ«sishmja â Ă«shtĂ« falas, prandaj meriton pĂ«rdorim, duke ndihmuar administratorĂ«t dhe zhvilluesit tĂ« marrin informacion bazĂ« mbi gjendjen e sigurisĂ« sĂ« aplikacionit web.
Qëndroni të shëndetshëm dhe të sigurt!
Burimi: habr.com
