Wapiti - kontrollimi i një siti për dobësi më vete

Wapiti - kontrollimi i një siti për dobësi më vete
Në të fundit artikull folëm për Nemesida WAF Falas - një mjet falas për mbrojtjen e faqeve të internetit dhe API-ve nga sulmet e hakerëve, dhe në këtë ne vendosëm të shqyrtojmë një skaner popullor të cenueshmërisë Elk.

Skanimi i një faqe interneti për dobësi është një masë e nevojshme, e cila, së bashku me analizën e kodit burimor, ju lejon të vlerësoni nivelin e sigurisë së saj ndaj kërcënimeve të kompromisit. Ju mund të skanoni një burim në internet duke përdorur mjete të specializuara.

Nikto, W3af (i shkruar në Python 2.7, i cili nuk mbështetet më) ose Arachni (nuk mbështetet më që nga shkurti) janë zgjidhjet më të njohura të paraqitura në segmentin falas. Sigurisht, ka të tjerë, për shembull, Wapiti, në të cilin vendosëm të përqendrohemi.

Wapiti punon me llojet e mëposhtme të dobësive:

  • zgjerimi i skedarit (lokal dhe i largët, hap, skedar i lexuar);
  • injeksione (PHP / JSP / ASP / injeksion SQL dhe injeksion XPath);
  • XSS (Cross Site Scripting) (reflektues dhe i vazhdueshëm);
  • zbulimi dhe ekzekutimi i komandave (eval(), system(), passtru());
  • Injeksione CRLF (ndarja e përgjigjes HTTP, fiksimi i sesionit);
  • XXE (entitet i jashtëm XML) ngulitje;
  • SSRF (Falsifikim i kërkesës nga ana e serverit);
  • përdorimi i skedarëve të njohur potencialisht të rrezikshëm (në sajë të bazës së të dhënave Nikto);
  • konfigurime të dobëta .htaccess që mund të anashkalohen;
  • prania e skedarëve rezervë që zbulojnë informacione konfidenciale (zbulimi i kodit burimor);
  • Shellshock;
  • ridrejtime të hapura;
  • metoda jo standarde HTTP që mund të zgjidhen (PUT).

Features:

  • Mbështetje për proxy HTTP, HTTPS dhe SOCKS5;
  • vërtetimi duke përdorur disa metoda: Basic, Digest, Kerberos ose NTLM;
  • aftësia për të kufizuar zonën e skanimit (domeni, dosje, faqe, URL);
  • heqja automatike e njërit prej parametrave në URL;
  • masa paraprake të shumta kundër sytheve të skanimit të pafund (shembull: ifor, vlerat kufizuese për një parametër);
  • aftësia për të vendosur një prioritet për ekzaminimin e URL-ve (edhe nëse ato nuk janë në zonën e skanimit);
  • aftësia për të përjashtuar disa URL nga skanimi dhe sulmet (për shembull: dalja nga URL);
  • importoni cookie (merrni ato duke përdorur mjetin wapiti-getcookie);
  • aftësia për të aktivizuar/çaktivizuar verifikimin e certifikatës SSL;
  • aftësia për të nxjerrë URL nga JavaScript (një interpretues shumë i thjeshtë JS);
  • ndërveprim me HTML5;
  • disa opsione për menaxhimin e sjelljes dhe kufizimeve të zvarritësit;
  • vendosja e kohës maksimale për procesin e skanimit;
  • shtimi i disa titujve të personalizuar HTTP ose konfigurimi i një agjenti të personalizuar të përdoruesit.

Karakteristika shtesë:

  • krijimi i raporteve të dobësive në formate të ndryshme (HTML, XML, JSON, TXT);
  • ndalimi dhe rifillimi i një skanimi ose sulmi (mekanizmi i sesionit duke përdorur bazat e të dhënave SQLite3);
  • ndriçimi i pasëm në terminal për të theksuar dobësitë;
  • nivele të ndryshme të prerjeve;
  • Një mënyrë e shpejtë dhe e thjeshtë për të aktivizuar/çaktivizuar modulet e sulmit.

Instalim

Versioni aktual i Wapiti mund të instalohet në 2 mënyra:

  • shkarkoni burimin nga zyrtari faqe dhe ekzekutoni skriptin e instalimit, pasi të keni instaluar më parë Python3;
  • duke përdorur komandën pip3 install wapiti3.

Pas kësaj, Wapiti do të jetë gati për të shkuar.

Puna me mjetin

Për të demonstruar punën e Wapiti, ne do të përdorim një stendë 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 në internet.

Informacioni jepet vetëm për qëllime informative. Mos e shkelni ligjin!

Komanda bazë për të nisur skanerin:

# wapiti -u <target> <options>

Në të njëjtën kohë, ekziston një ndihmë mjaft e detajuar me një numër të madh opsionesh nisjeje, për shembull:

-- fushëveprimi - zona e aplikimit
Nëse specifikoni parametrin e shtrirjes së bashku me URL-në e zvarritjes, mund të rregulloni zonën e zvarritjes së sajtit duke specifikuar një faqe të vetme dhe të gjitha faqet që mund të gjenden në sajt.

-s и -x — opsionet për të shtuar ose hequr URL specifike. Këto opsione janë të dobishme kur ju duhet të shtoni ose hiqni një URL specifike gjatë procesit të zvarritjes.

-- kapërce — parametri i specifikuar me këtë çelës do të skanohet, por nuk do të sulmohet. E dobishme nëse ka ndonjë parametër të rrezikshëm që më së miri përjashtohet gjatë skanimit.

--verify-ssl — aktivizoni ose çaktivizoni verifikimin e certifikatës.
Skaneri Wapiti është modular. Megjithatë, për të nisur module specifike, duke përfshirë ato që lidhen automatikisht ndërsa skaneri është në punë, duhet të përdorni çelësin -m dhe të listoni ato që ju nevojiten, të ndara me presje. Nëse çelësi nuk përdoret, atëherë të gjitha modulet do të funksionojnë si parazgjedhje. Në versionin më të thjeshtë do të duket kështu:

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

Ky shembull përdorimi do të thotë që ne do të përdorim vetëm modulet SQL, XSS dhe XXE kur skanojmë objektivin. Përveç kësaj, ju mund të filtroni funksionimin e moduleve në varësi të metodës së dëshiruar. Për shembull -m "xss: marr, blindsql: post, xxe: post". Në këtë rast, moduli xss do të zbatohet për kërkesat e dërguara duke përdorur metodën GET dhe modulin blibdsql - për kërkesat POST, etj. Nga rruga, nëse ndonjë modul që ishte përfshirë në listë nuk ishte i nevojshëm gjatë skanimit ose kërkon shumë kohë, atëherë duke shtypur kombinimin Ctrl+C mund të kaloni duke përdorur modulin aktual duke zgjedhur artikullin përkatës në menunë interaktive.

Wapiti mbështet kalimin e kërkesave përmes një përfaqësuesi duke përdorur një çelës -p dhe vërtetimi në sitin e synuar përmes parametrit -a. Ju gjithashtu mund të specifikoni llojin e vërtetimit: bazë, tretet, Kerberos и NTLM. Dy të fundit mund të kërkojnë instalimin e moduleve shtesë. Përveç kësaj, ju mund të futni çdo titull në kërkesa (përfshirë arbitrarinë Agjenti i përdoruesit) edhe me shume.

Për të përdorur vërtetimin, mund të përdorni mjetin wapiti-getcookie. Me ndihmën e tij ne formojmë biskotë, të cilën Wapiti do ta përdorë gjatë skanimit. Formimi biskotë bëhet me komandën:

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

Ndërsa punojmë në mënyrë interaktive, ne u përgjigjemi pyetjeve dhe tregojmë informacionin e nevojshëm si login, fjalëkalimin, etj.:

Wapiti - kontrollimi i një siti për dobësi më vete

Dalja është një skedar në formatin JSON. Një tjetër mundësi është të shtoni të gjithë informacionin e nevojshëm përmes parametrit -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:

Wapiti - kontrollimi i një siti për dobësi më vete

Kur merret parasysh funksionaliteti kryesor i skanerit, kërkesa përfundimtare për testimin e aplikacionit në internet 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:3128

ku ndër parametra të tjerë:

-f и -o — formati dhe rruga për ruajtjen e raportit;

-m — Lidhja e të gjitha moduleve nuk rekomandohet, sepse do të ndikojë në kohën e testimit dhe madhësinë e raportit;

--ngjyrë — nënvizoni dobësitë e gjetura në varësi të kritikës së tyre sipas vetë Wapiti;

-c - duke përdorur një skedar me biskotë, i krijuar duke përdorur wapiti-getcookie;

-- fushëveprimi - Zgjedhja e një objektivi për sulm. Zgjedhja e një opsioni dosje Çdo URL do të zvarritet dhe sulmohet, duke filluar me atë bazë. URL-ja bazë duhet të ketë një prerje përpara (pa emër skedari);

-- flush-sesion — lejon skanimin e përsëritur, në të cilin rezultatet e mëparshme nuk do të merren parasysh;

-A - vet Agjenti i përdoruesit;

-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 faqes HTML, në një formë të qartë dhe të lehtë për t'u lexuar. Raporti do të tregojë kategoritë dhe numrin e dobësive të gjetura, përshkrimet, kërkesat, komandat e tyre përdridhem dhe këshilla se si t'i mbyllni ato. Për lehtësinë e lundrimit, një lidhje do t'i shtohet emrave të kategorive, duke klikuar mbi të cilën mund të shkoni tek ajo:

Wapiti - kontrollimi i një siti për dobësi më vete

Një disavantazh i rëndësishëm i raportit është mungesa e një harte të aplikacionit në internet si e tillë, pa të cilën nuk do të jetë e qartë nëse të gjitha adresat dhe parametrat janë analizuar. Ekziston edhe mundësia e rezultateve false. Në rastin tonë, raporti përfshin "skedarë rezervë" dhe "skedarë potencialisht të rrezikshëm". Numri i tyre nuk korrespondon me realitetin, pasi nuk kishte skedarë të tillë në server:

Wapiti - kontrollimi i një siti për dobësi më vete

Ndoshta modulet që funksionojnë gabimisht do të rregullohen me kalimin e kohës. Një tjetër pengesë e raportit është mungesa e ngjyrosjes së dobësive të gjetura (në varësi të kritikës së tyre), ose të paktën ndarja e tyre në kategori. E vetmja mënyrë për të kuptuar indirekt kritikitetin e cenueshmërisë së gjetur është të përdorim parametrin --ngjyrë gjatë skanimit, dhe më pas dobësitë e gjetura do të ngjyrosen me ngjyra të ndryshme:

Wapiti - kontrollimi i një siti për dobësi më vete

Por vetë raporti nuk jep një ngjyrosje të tillë.

Dobësitë

SQLi

Skaneri u përball pjesërisht me kërkimin SQLi. Kur kërkoni për dobësi SQL në faqet ku nuk kërkohet vërtetimi, nuk shfaqen probleme:

Wapiti - kontrollimi i një siti për dobësi më vete

Nuk ishte e mundur të gjendej një cenueshmëri në faqet e aksesueshme vetëm pas vërtetimit, madje edhe duke përdorur të vlefshmen biskotë, pasi ka shumë të ngjarë pas vërtetimit të suksesshëm, sesioni i tyre do të "dalë" dhe biskotë do të bëhet i pavlefshëm. Nëse funksioni i deautorizimit do të zbatohej si një skript i veçantë përgjegjës për përpunimin e kësaj procedure, atëherë do të ishte e mundur që të përjashtohej plotësisht ai përmes parametrit -x dhe në këtë mënyrë të parandalohej që të aktivizohej. Përndryshe, nuk do të jetë e mundur të përjashtohet përpunimi i tij. Ky nuk është një problem me një modul specifik, por me mjetin në tërësi, por për shkak të kësaj nuance, nuk ishte e mundur të zbuloheshin disa injeksione në një zonë të burimit të mbyllur.

XSS

Skaneri u përball në mënyrë të përsosur me detyrën e dhënë dhe gjeti të gjitha dobësitë e përgatitura:

Wapiti - kontrollimi i një siti për dobësi më vete

LFI/RFI

Skaneri gjeti të gjitha dobësitë themelore:

Wapiti - kontrollimi i një siti për dobësi më vete

Në përgjithësi, pavarësisht nga pozitivet e rreme dhe dobësitë që mungojnë, Wapiti, si një mjet falas, tregon rezultate mjaft të mira të performancës. Në çdo rast, ia vlen të pranohet se skaneri është mjaft i fuqishëm, fleksibël dhe shumëfunksional, dhe më e rëndësishmja, është falas, kështu që ka të drejtë të përdoret për të ndihmuar administratorët dhe zhvilluesit të marrin informacionin bazë për statusin e sigurisë së një ueb. aplikacion.

Qëndroni të shëndetshëm dhe të mbrojtur!

Burimi: www.habr.com

Shto një koment