Wapiti - kontrolanta retejon por vundeblecoj memstare

Wapiti - kontrolanta retejon por vundeblecoj memstare
En la lasta artikolo pri ni parolis Nemesida WAF Senpaga - senpaga ilo por protekti retejojn kaj API-ojn kontraŭ pirataj atakoj, kaj en ĉi tiu ni decidis revizii popularan vundeblecon skanilo Alko.

Skani retejon por vundeblecoj estas necesa mezuro, kiu, kunigita kun analizo de la fontkodo, ebligas al vi taksi la nivelon de ĝia sekureco kontraŭ minacoj de kompromiso. Vi povas skani retan rimedon uzante specialajn ilojn.

Nikto, W3af (skribita en Python 2.7, kiu ne plu estas subtenata) aŭ Arachni (ne plu subtenata ekde februaro) estas la plej popularaj solvoj prezentitaj en la libera segmento. Kompreneble, estas aliaj, ekzemple, Wapiti, pri kiuj ni decidis koncentriĝi.

Wapiti funkcias kun la sekvaj specoj de vundeblecoj:

  • dosiera ekspansio (loka kaj fora, fopen, readfile);
  • injektoj (PHP / JSP / ASP / SQL-injekto kaj XPath-injekto);
  • XSS (Cross Site Scripting) (reflekta kaj persista);
  • detekto kaj plenumo de ordonoj (eval(), system(), passtru());
  • CRLF-injektoj (HTTP-responddividado, sesiofiksado);
  • XXE (XML ekstera ento) enkonstruado;
  • SSRF (Servilo Flanka Peto Falsiĝo);
  • uzo de konataj eble danĝeraj dosieroj (danke al la datumbazo Nikto);
  • malfortaj .htaccess agordoj kiuj povas esti preterpasitaj;
  • la ĉeesto de rezervaj dosieroj, kiuj malkaŝas konfidencajn informojn (malkonigo de fontkodo);
  • Ŝoko;
  • malfermi alidirektilojn;
  • ne-normaj HTTP-metodoj kiuj povas esti solvitaj (PUT).

Karakterizaĵoj:

  • HTTP, HTTPS kaj SOCKS5 prokura subteno;
  • aŭtentigo uzante plurajn metodojn: Baza, Digest, Kerberos aŭ NTLM;
  • la kapablo limigi la skanan areon (domajno, dosierujo, paĝo, URL);
  • aŭtomata forigo de unu el la parametroj en la URL;
  • multoblaj antaŭzorgoj kontraŭ senfinaj skanaj bukloj (ekzemplo: ifor, limigaj valoroj por parametro);
  • la kapablo agordi prioritaton por ekzamenado de URL-oj (eĉ se ili ne estas en la skana areo);
  • kapablo ekskludi iujn URL-ojn de skanado kaj atakoj (ekzemple: URL-elsaluto);
  • importi kuketojn (akiru ilin per la ilo wapiti-getcookie);
  • kapablo aktivigi/malaktivigi SSL-atestilon;
  • la kapablo ĉerpi URL-ojn el JavaScript (tre simpla JS-interpretilo);
  • interago kun HTML5;
  • pluraj ebloj por administri krawl-konduton kaj limigojn;
  • fiksante la maksimuman tempon por la skana procezo;
  • aldonante iujn kutimajn HTTP-kapojn aŭ agordi kutiman Uzanto-Agent.

Pliaj ecoj:

  • kreado de vundeblaj raportoj en diversaj formatoj (HTML, XML, JSON, TXT);
  • paŭzi kaj rekomenci skanadon aŭ atakon (seanca mekanismo uzante SQLite3-datumbazon);
  • retrolumado en la terminalo por reliefigi vundeblecojn;
  • malsamaj niveloj de arbohakado;
  • Rapida kaj facila maniero aktivigi/malaktivigi atakmodulojn.

fikso

La nuna versio de Wapiti povas esti instalita laŭ 2 manieroj:

  • elŝutu la fonton de la oficiala ejo kaj rulu la instalan skripton, antaŭe instalinte Python3;
  • uzante la pip3 instali wapiti3-komandon.

Post ĉi tio, Wapiti estos preta iri.

Laborante kun la ilo

Por pruvi la laboron de Wapiti, ni uzos speciale preparitan standon sites.vulns.pentestit.ru (interna rimedo), enhavanta diversajn vundeblecojn (Injekto, XSS, LFI/RFI) kaj aliajn mankojn de TTT-aplikoj.

La informoj estas provizitaj nur por informaj celoj. Ne malobeu la leĝon!

Baza komando por lanĉi la skanilon:

# wapiti -u <target> <options>

Samtempe, ekzistas sufiĉe detala helpo kun grandega nombro da lanĉaj opcioj, ekzemple:

--skopo - aplika areo
Se vi specifas la amplekson parametron kune kun la rampa URL, vi povas ĝustigi la rampan areon de la retejo specifante kaj ununuran paĝon kaj ĉiujn paĝojn troveblajn en la retejo.

-s и -x — opcioj por aldoni aŭ forigi specifajn URL-ojn. Ĉi tiuj opcioj estas utilaj kiam vi bezonas aldoni aŭ forigi specifan URL dum la rampa procezo.

--salti — la specifita parametro kun ĉi tiu ŝlosilo estos skanita, sed ne estos atakita. Utila se estas danĝeraj parametroj, kiuj estas plej bone ekskluditaj dum skanado.

--verify-ssl — ebligi aŭ malŝalti atestilon.
La skanilo Wapiti estas modula. Tamen, por lanĉi specifajn modulojn, inkluzive de tiuj, kiuj estas aŭtomate konektitaj dum la skanilo funkcias, vi devas uzi la -m-ŝaltilon kaj listigi tiujn, kiujn vi bezonas, apartigitaj per komoj. Se la ŝlosilo ne estas uzata, tiam ĉiuj moduloj funkcios defaŭlte. En la plej simpla versio ĝi aspektos jene:

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

Ĉi tiu uzekzemplo signifas, ke ni nur uzos la SQL, XSS kaj XXE-modulojn dum skanado de la celo. Krome, vi povas filtri la funkciadon de moduloj depende de la dezirata metodo. Ekzemple -m "xss: ricevi, blindsql: afiŝo, xxe: afiŝu". En ĉi tiu kazo, la modulo xss aplikiĝos al petoj senditaj per la GET-metodo, kaj la modulo blibdsql - al POST petoj, ktp. Cetere, se iu modulo, kiu estis inkluzivita en la listo, ne estis bezonata dum skanado aŭ daŭras tre longan tempon, tiam premante la kombinaĵon Ctrl+C vi povas preterlasi uzi la nunan modulon elektante la respondan eron en la interaga menuo.

Wapiti subtenas pasi petojn tra prokurilo uzante ŝlosilon -p kaj aŭtentigo sur la cela retejo per la parametro -a. Vi ankaŭ povas specifi la aŭtentikigtipon: Baza, Komisiono, Kerberos и NTLM. La lastaj du eble postulas la instaladon de pliaj moduloj. Krome, vi povas enmeti ajnajn kapliniojn en petojn (inkluzive arbitrajn Uzanto-Agento) kaj multe pli.

Por uzi aŭtentikigon vi povas uzi la ilon wapiti-getcookie. Per ĝia helpo ni formas kuketo, kiun Wapiti uzos dum skanado. Formacio kuketo farita kun la komando:

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

Laborante interage, ni respondas demandojn kaj indikas la necesajn informojn kiel ensaluton, pasvorton, ktp.:

Wapiti - kontrolanta retejon por vundeblecoj memstare

La eligo estas dosiero en formato JSON. Alia eblo estas aldoni ĉiujn necesajn informojn per la parametro -d:

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

La rezulto estos simila:

Wapiti - kontrolanta retejon por vundeblecoj memstare

Konsiderante la ĉefan funkciojn de la skanilo, la fina peto por provi la TTT-aplikaĵon en nia kazo estis:

# 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

kie inter aliaj parametroj:

-f и -o — formato kaj vojo por konservi la raporton;

-m — konekti ĉiujn modulojn ne rekomendas, ĉar influos testan tempon kaj raportan grandecon;

--koloro — reliefigi trovitajn vundeblecojn depende de ilia kritikeco laŭ Wapiti mem;

-c - uzante dosieron kun kuketo, generita uzante wapiti-getcookie;

--skopo — elektante celon por atako. Elektante opcion dosierujo Ĉiu URL estos rampita kaj atakita, komencante de la baza. La baza URL devas havi strekon (neniu dosiernomo);

--flush-session — permesas ripetitan skanadon, en kiu antaŭaj rezultoj ne estos konsiderataj;

-A - propra Uzanto-Agento;

-p — adreso de prokura servilo, se necese.

Iom pri la raporto

La skanado rezulto estas prezentita en formo de detala raporto pri ĉiuj trovitaj vundeblecoj en HTML-paĝa formato, en klara kaj facile legebla formo. La raporto indikos la kategoriojn kaj nombron da vundeblecoj trovitaj, iliaj priskriboj, petoj, komandoj por buklo kaj konsiletoj pri kiel fermi ilin. Por facileco de navigado, ligilo estos aldonita al la kategorinomoj, alklakante sur kiu vi povas iri al ĝi:

Wapiti - kontrolanta retejon por vundeblecoj memstare

Grava malavantaĝo de la raporto estas la foresto de ret-aplika mapo kiel tia, sen kiu ne estos klare ĉu ĉiuj adresoj kaj parametroj estis analizitaj. Ankaŭ ekzistas ebleco de falsaj pozitivoj. En nia kazo, la raporto inkluzivas "rezervajn dosierojn" kaj "eble danĝerajn dosierojn". Ilia nombro ne respondas al la realo, ĉar tiaj dosieroj ne estis en la servilo:

Wapiti - kontrolanta retejon por vundeblecoj memstare

Eble malĝuste laborantaj moduloj estos riparitaj kun la tempo. Alia malavantaĝo de la raporto estas la manko de kolorigo de la trovitaj vundeblecoj (depende de ilia kritiko), aŭ almenaŭ dividi ilin en kategoriojn. La nura maniero kiel ni nerekte povas kompreni la kritikon de la trovita vundebleco estas uzi la parametron --koloro dum skanado, kaj tiam la trovitaj vundeblecoj estos kolorigitaj en malsamaj koloroj:

Wapiti - kontrolanta retejon por vundeblecoj memstare

Sed la raporto mem ne provizas tian kolorigon.

Vundeblecoj

SQLi

La skanilo parte traktis la SQLi-serĉon. Serĉante SQL-vundeblecojn sur paĝoj kie aŭtentikigo ne estas bezonata, ne aperas problemoj:

Wapiti - kontrolanta retejon por vundeblecoj memstare

Ne eblis trovi vundeblecon sur paĝoj alireblaj nur post aŭtentigo, eĉ uzante validan kuketo, ĉar plej verŝajne post sukcesa aŭtentigo, ilia sesio estos "elsalutita" kaj kuketo malvalidiĝos. Se la malrajtiga funkcio estus efektivigita kiel aparta skripto respondeca pri prilaborado de ĉi tiu proceduro, tiam eblus tute ekskludi ĝin per la parametro -x, kaj tiel malhelpi ĝin ekfunkciigi. Alie, ne eblos ekskludi ĝian prilaboradon. Ĉi tio ne estas problemo kun specifa modulo, sed kun la ilo entute, sed pro ĉi tiu nuanco, ne eblis detekti plurajn injektojn en fermita rimeda areo.

XSS

La skanilo perfekte traktis la donitan taskon kaj trovis ĉiujn pretajn vundeblecojn:

Wapiti - kontrolanta retejon por vundeblecoj memstare

LFI/RFI

La skanilo trovis ĉiujn subestajn vundeblecojn:

Wapiti - kontrolanta retejon por vundeblecoj memstare

Ĝenerale, malgraŭ falsaj pozitivoj kaj mankantaj vundeblecoj, Wapiti, kiel senpaga ilo, montras sufiĉe bonajn rendimentajn rezultojn. Ĉiukaze, indas rekoni, ke la skanilo estas sufiĉe potenca, fleksebla kaj multfunkcia, kaj plej grave, ĝi estas senpaga, do ĝi rajtas esti uzata por helpi administrantojn kaj programistojn akiri bazajn informojn pri la sekureca stato de retejo. aplikaĵo.

Restu sana kaj protektita!

fonto: www.habr.com

Aldoni komenton