Wapiti - saidi turvaaukude kontrollimine

Wapiti - saidi turvaaukude kontrollimine
Viimases siit me rääkisime Nemesida WAF tasuta - tasuta tööriist veebisaitide ja API-de kaitsmiseks häkkerite rünnakute eest ning selles otsustasime üle vaadata populaarse haavatavuse skanneri Põder.

Veebisaidi turvaaukude skannimine on vajalik meede, mis koos lähtekoodi analüüsiga võimaldab hinnata selle turvalisuse taset ohtude eest. Veebiressurssi saate skannida spetsiaalsete tööriistade abil.

Nikto, W3af (kirjutatud Python 2.7-s, mida enam ei toetata) või Arachni (ei ole enam toetatud alates veebruarist) on tasuta segmendis esitletud kõige populaarsemad lahendused. Muidugi on ka teisi, näiteks Wapiti, millele otsustasime keskenduda.

Wapiti töötab järgmist tüüpi haavatavustega:

  • faili laiendamine (kohalik ja kaug, fopen, readfile);
  • süstid (PHP / JSP / ASP / SQL-i süstimine ja XPathi süstimine);
  • XSS (Cross Site Scripting) (peegeldav ja püsiv);
  • käskude tuvastamine ja täitmine (eval(), system(), passtru());
  • CRLF süstid (HTTP vastuse poolitamine, seansi fikseerimine);
  • XXE (XML-i välisolemi) manustamine;
  • SSRF (Server Side Request Forgery);
  • teadaolevate potentsiaalselt ohtlike failide kasutamine (tänu Nikto andmebaasile);
  • nõrgad .htaccess konfiguratsioonid, millest saab mööda minna;
  • konfidentsiaalset teavet paljastavate varukoopiafailide olemasolu (lähtekoodi avalikustamine);
  • Shellshock;
  • avatud ümbersuunamised;
  • mittestandardsed HTTP-meetodid, mida saab lahendada (PUT).

Omadused:

  • HTTP, HTTPS ja SOCKS5 puhverserveri tugi;
  • autentimine mitme meetodi abil: Basic, Digest, Kerberos või NTLM;
  • võimalus piirata skannimisala (domeen, kaust, leht, URL);
  • ühe URL-i parameetri automaatne eemaldamine;
  • mitmed ettevaatusabinõud lõputute skannimissilmuste vastu (näide: ifor, parameetri piirväärtused);
  • võimalus seada URL-ide uurimise prioriteet (isegi kui need ei asu skannimisalas);
  • võimalus välistada mõned URL-id kontrollimisest ja rünnakutest (näiteks: URL-i väljalogimine);
  • importige küpsiseid (hankige need wapiti-getcookie tööriista abil);
  • SSL-sertifikaadi kontrollimise aktiveerimise/deaktiveerimise võimalus;
  • võimalus JavaScriptist URL-e ekstraheerida (väga lihtne JS-i tõlk);
  • suhtlemine HTML5-ga;
  • mitu võimalust roomaja käitumise ja piirangute haldamiseks;
  • skannimisprotsessi maksimaalse aja määramine;
  • kohandatud HTTP-päiste lisamine või kohandatud kasutajaagendi seadistamine.

Lisavõimalused:

  • haavatavuse raportite loomine erinevates vormingutes (HTML, XML, JSON, TXT);
  • skannimise või rünnaku peatamine ja jätkamine (seansi mehhanism SQLite3 andmebaaside abil);
  • terminali taustvalgustus haavatavuste esiletõstmiseks;
  • erinevad metsaraie tasemed;
  • Kiire ja lihtne viis ründemoodulite aktiveerimiseks/desaktiveerimiseks.

Paigaldamine

Wapiti praeguse versiooni saab installida kahel viisil:

  • laadige allikas alla ametlikult сайта ja käivitage installiskript, olles eelnevalt installinud Python3;
  • kasutades käsku pip3 install wapiti3.

Pärast seda on Wapiti kasutamiseks valmis.

Tööriistaga töötamine

Wapiti töö demonstreerimiseks kasutame spetsiaalselt ettevalmistatud stendi sites.vulns.pentestit.ru (siseressurss), mis sisaldab erinevaid turvaauke (Injection, XSS, LFI/RFI) ja muid veebirakenduste puudusi.

Teave on esitatud ainult informatiivsel eesmärgil. Ärge rikkuge seadust!

Skänneri käivitamise põhikäsk:

# wapiti -u <target> <options>

Samal ajal on üsna üksikasjalik abi tohutu hulga käivitamisvõimalustega, näiteks:

-- ulatus - rakendusala
Kui määrate ulatuse parameetri koos roomamise URL-iga, saate kohandada saidi roomamisala, määrates nii ühe lehe kui ka kõik saidilt leitavad lehed.

-s и -x — valikud konkreetsete URL-ide lisamiseks või eemaldamiseks. Need valikud on kasulikud, kui peate roomamisprotsessi ajal konkreetse URL-i lisama või eemaldama.

--vahele jätma — selle võtmega määratud parameetrit kontrollitakse, kuid seda ei rünnata. Kasulik, kui on ohtlikke parameetreid, mida on kõige parem skannimise ajal välistada.

--verify-ssl — lubage või keelake sertifikaadi kontrollimine.
Wapiti skanner on modulaarne. Konkreetsete moodulite käivitamiseks, sealhulgas need, mis skanneri töötamise ajal automaatselt ühendatakse, peate kasutama lülitit -m ja loetlema vajalikud moodulid, eraldades need komadega. Kui võtit ei kasutata, töötavad kõik moodulid vaikimisi. Lihtsaimas versioonis näeb see välja järgmine:

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

See kasutusnäide tähendab, et kasutame sihtmärgi skannimisel ainult mooduleid SQL, XSS ja XXE. Lisaks saate sõltuvalt soovitud meetodist filtreerida moodulite tööd. Näiteks -m “xss: hanki, blindsql: postita, xxe: postita”. Sel juhul moodul XSS rakendub GET-meetodil saadetud päringutele ja moodulile blibdsql - POST-i päringutele jne. Muide, kui mõnda nimekirja sattunud moodulit skaneerimisel vaja ei läinud või see võtab väga kaua aega, siis Ctrl+C kombinatsiooni vajutades saab aktiivse mooduli kasutamise vahele jätta, valides interaktiivsest menüüst vastava elemendi.

Wapiti toetab päringute edastamist puhverserveri kaudu võtme abil -p ja autentimine sihtsaidil parameetri kaudu -a. Samuti saate määrata autentimise tüübi: Põhiline, Digest, Kerberos и NTLM-. Viimased kaks võivad nõuda lisamoodulite paigaldamist. Lisaks saate päringutesse lisada mis tahes päiseid (sh suvalisi Kasutaja Agent) ja palju muud.

Autentimise kasutamiseks võite kasutada tööriista wapiti-getcookie. Tema abiga moodustame küpsis, mida Wapiti skannimisel kasutab. Moodustamine küpsis выполняется с помощью команды:

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

Interaktiivselt töötades vastame küsimustele ja näitame vajalikku infot nagu sisselogimine, parool jne:

Wapiti - saidi turvaaukude kontrollimine

Väljund on JSON-vormingus fail. Teine võimalus on lisada parameetri kaudu kogu vajalik teave -d:

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

Tulemus on sarnane:

Wapiti - saidi turvaaukude kontrollimine

Arvestades skanneri põhifunktsioone, oli meie puhul viimane veebirakenduse testimise taotlus:

# 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

kus muude parameetrite hulgas:

-f и -o — aruande vorming ja salvestamise tee;

-m — kõigi moodulite ühendamine pole soovitatav, kuna mõjutab testimise aega ja aruande suurust;

--värv — tõsta esile leitud haavatavused sõltuvalt nende kriitilisusest vastavalt Wapitile endale;

-c - kasutades faili koos küpsis, mis on loodud kasutades wapiti-getcookie;

-- ulatus - rünnaku sihtmärgi valimine. Suvandi valimine kausta Kõik URL-id roomatakse ja rünnatakse, alustades algsest. Baas-URL-il peab olema kaldkriips (failinimi puudub);

--loputusseanss — võimaldab korduvat skaneerimist, mille puhul varasemaid tulemusi ei võeta arvesse;

-A - oma Kasutaja Agent;

-p — vajaduse korral puhverserveri aadress.

Natuke aruandest

Skannimistulemus esitatakse üksikasjaliku aruande kujul kõigi leitud turvaaukude kohta HTML-lehe vormingus, selgel ja hõlpsasti loetaval kujul. Aruandes näidatakse leitud turvaaukude kategooriad ja arv, nende kirjeldused, päringud, käsud Curl ja näpunäiteid nende sulgemiseks. Liikumise hõlbustamiseks lisatakse kategooriate nimedele link, millel klõpsates saate selle juurde minna:

Wapiti - saidi turvaaukude kontrollimine

Aruande oluliseks puuduseks on veebirakenduste kaardi kui sellise puudumine, ilma milleta ei saa aru, kas kõik aadressid ja parameetrid on analüüsitud. Samuti on võimalus saada valepositiivseid tulemusi. Meie puhul sisaldab aruanne "varukoopiafaile" ja "potentsiaalselt ohtlikke faile". Nende arv ei vasta tegelikkusele, kuna serveris selliseid faile polnud:

Wapiti - saidi turvaaukude kontrollimine

Võib-olla parandatakse aja jooksul valesti töötavad moodulid. Aruande teine ​​puudus on leitud haavatavuste värvimise puudumine (sõltuvalt nende kriitilisusest) või vähemalt kategooriatesse jagamine. Ainus viis, kuidas saame leitud haavatavuse kriitilisust kaudselt mõista, on parameetri kasutamine --värv skannimise ajal ja seejärel värvitakse leitud haavatavused erinevates värvides:

Wapiti - saidi turvaaukude kontrollimine

Kuid aruanne ise sellist värvingut ei paku.

Haavatavused

SQLi

Skanner sai SQLi otsinguga osaliselt hakkama. Kui otsite SQL-i haavatavusi lehtedel, kus autentimine pole vajalik, ei teki probleeme:

Wapiti - saidi turvaaukude kontrollimine

Haavatavust ei olnud võimalik leida lehtedelt, millele pääseb ligi ainult pärast autentimist, isegi kui kasutati kehtivat küpsis, kuna tõenäoliselt pärast edukat autentimist logitakse nende seanss välja ja küpsis muutub kehtetuks. Kui volituse tühistamise funktsioon rakendataks selle protseduuri töötlemise eest vastutava eraldi skriptina, oleks võimalik see parameetri -x kaudu täielikult välistada ja seeläbi selle käivitumist vältida. Vastasel juhul ei saa selle töötlemist välistada. See ei ole probleem konkreetse mooduli, vaid tööriista kui terviku puhul, kuid selle nüansi tõttu ei olnud võimalik tuvastada mitut süstimist suletud ressursipiirkonnas.

XSS

Skänner sai antud ülesandega suurepäraselt hakkama ja leidis kõik ettevalmistatud haavatavused:

Wapiti - saidi turvaaukude kontrollimine

LFI/RFI

Skanner leidis kõik aluseks olevad haavatavused:

Wapiti - saidi turvaaukude kontrollimine

Üldiselt, hoolimata valepositiivsetest tulemustest ja puuduvatest turvaaukudest, näitab Wapiti tasuta tööriistana päris häid jõudlustulemusi. Igal juhul tasub tunnistada, et skanner on üsna võimas, paindlik ja multifunktsionaalne ning mis kõige tähtsam – tasuta, seega on seda õigus kasutada administraatoritel ja arendajatel veebi turvaoleku kohta põhiteabe hankimisel. rakendus.

Olge terved ja kaitstud!

Allikas: www.habr.com

Lisa kommentaar