
An der leschter mir geschwat iwwer Nemesida WAF FrĂ€i - e gratis Tool fir WebsĂ€iten an APIe vu Hackerattacken ze schĂŒtzen, an an dĂ«sem hu mir beschloss e populĂ€re Schwachstelle Scanner ze iwwerprĂ©iwen .
Scannen vun enger WebsÀit fir Schwachstelle ass eng noutwendeg Moossnam, déi, gekoppelt mat der Analyse vum Quellcode, Iech erlaabt den Niveau vu senger Sécherheet géint Gefore vu Kompromëss ze bewÀerten. Dir kënnt eng Webressource scannen mat spezialiséierten Tools.
Nikto, W3af (geschriwwen am Python 2.7, deen net méi ënnerstëtzt gëtt) oder Arachni (net méi zënter Februar ënnerstëtzt) sinn déi populÀrste Léisungen, déi am gratis Segment presentéiert ginn. Natierlech ginn et anerer, zum Beispill Wapiti, op déi mir beschloss hunn ze fokusséieren.
Wapiti schafft mat de folgenden Zorte vu Schwachstelle:
- Dateiexpansioun (lokal a Remote, fopen, readfile);
- Injektiounen (PHP / JSP / ASP / SQL Injektioun an XPath Injektioun);
- XSS (Cross Site Scripting) (reflektiv a persistent);
- Detektioun an Ausféierung vun Kommandoen (eval (), System (), passstru ());
- CRLF Injektiounen (HTTP Ăntwert Spaltung, Sessiounsfixatioun);
- XXE (XML extern Entitéit) Embedding;
- SSRF (Server Side Request Forgery);
- Benotzung vu bekannte potenziell geféierleche Dateien (dank der Nikto Datebank);
- schwaach .htaccess Konfiguratiounen déi ëmgoen kënnen;
- d'PrÀsenz vu Backupdateien déi vertraulech Informatioun verroden (Offenbarung vum Quellcode);
- Shellshock;
- oppe Viruleedungen;
- Net-Standard HTTP Methoden déi geléist kënne ginn (PUT).
Features:
- HTTP, HTTPS an SOCKS5 Proxy ĂnnerstĂ«tzung;
- Authentifikatioun mat verschiddene Methoden: Basis, Digest, Kerberos oder NTLM;
- d'Kapazitéit fir d'Scannengebitt ze limitéieren (Domain, Dossier, SÀit, URL);
- automatesch Entfernung vun engem vun de Parameteren an der URL;
- Multiple Virsiichtsmoossname géint endlos Scan Loops (Beispill: ifor, limitéierend WÀerter fir e Parameter);
- d'Kapazitéit fir eng Prioritéit fir d'Untersuchung vun URLen ze setzen (och wa se net am ScannenberÀich sinn);
- FÀegkeet fir e puer URLen aus Scannen an Attacken auszeschléissen (zum Beispill: URL Logout);
- Import Cookien (kréien se mat dem wapiti-getcookie Tool);
- FÀegkeet fir SSL Zertifika Verifizéierung z'aktivéieren / deaktivéieren;
- d'FĂ€egkeet URLen aus JavaScript ze extrahieren (e ganz einfache JS Dolmetscher);
- Interaktioun mat HTML5;
- verschidde Méiglechkeeten fir d'Gestioun vum Crawler Verhalen a Restriktiounen;
- Astellung vun der maximal ZĂ€it fir de Scannen Prozess;
- e puer personalisĂ©iert HTTP Header bĂ€izefĂŒgen oder e personalisĂ©ierte User-Agent opzestellen.
ZousÀtzlech Funktiounen:
- Schafung vu Schwachstelleberichter a verschiddene Formater (HTML, XML, JSON, TXT);
- Pausen a weidergoen e Scan oder Attack (Sessiounsmechanismus mat SQLite3 Datenbanken);
- Backlighting am Terminal fir Schwachstelle ze markéieren;
- verschidden Niveaue vu Logbicher;
- Eng séier an einfach Manéier Attack Moduler ze aktivéieren / deaktivéieren.
Kader
Déi aktuell Versioun vu Wapiti kann op 2 Weeër installéiert ginn:
- download d'Quell vum offiziellen a lafen d'Installatiounsskript, nodeems se virdru Python3 installéiert hunn;
- mam pip3 installéieren wapiti3 Kommando.
Duerno wÀert Wapiti prett sinn fir ze goen.
Schafft mam Tool
Fir d'Aarbecht vun Wapiti ze demonstréieren, wÀerte mir e speziell virbereet Stand benotzen Sites.vulns.pentestit.ru (intern Ressource), déi verschidde Schwachstelle enthÀlt (Injektioun, XSS, LFI / RFI) an aner MÀngel vu Webapplikatiounen.
D'Informatioun gëtt nëmme fir Informatiounszwecker geliwwert. Paus net d'Gesetz!
Basis Kommando fir de Scanner ze starten:
# wapiti -u <target> <options>Zur selwechter ZÀit gëtt et zimmlech detailléiert Hëllef mat enger grousser Zuel vu Startoptiounen, zum Beispill:
-- Ămfang - Applikatioun BerĂ€ich
Wann Dir den Ămfangparameter zesumme mat der Crawl URL spezifizĂ©iert, kĂ«nnt Dir de CrawlberĂ€ich vum Site upassen andeems Dir souwuel eng eenzeg SĂ€it an all SĂ€iten spezifizĂ©iert, dĂ©i um Site fonnt ginn.
-s О -x - Optiounen fir spezifesch URLen ze addéieren oder ze lÀschen. Dës Optiounen sinn nëtzlech wann Dir eng spezifesch URL wÀrend dem Crawlprozess derbÀigesat oder ewechhuelt.
--sprangen - de spezifizéierte Parameter mat dësem Schlëssel gëtt gescannt, awer net attackéiert. Nëtzlech wann et geféierlech Parameteren sinn, déi am beschten ausgeschloss sinn beim Scannen.
--verify-ssl - aktivéiert oder deaktivéiert d'Zertifikaverifizéierung.
De Wapiti Scanner ass modulÀr. Wéi och ëmmer, fir spezifesch Moduler ze lancéieren, och déi, déi automatesch verbonne sinn, wÀhrend de Scanner leeft, musst Dir den -m Schalter benotzen an déi oplëschten, déi Dir braucht, getrennt vu Kommaen. Wann de Schlëssel net benotzt gëtt, funktionnéieren all Moduler als Standard. An der einfachster Versioun gesÀit et esou aus:
# wapiti -u http://sites.vulns.pentestit.ru/ -m sql,xss,xxeDĂ«st Benotzungsbeispill bedeit datt mir nĂ«mmen d'SQL, XSS an XXE Moduler benotze wann Dir d'Ziel scannen. ZousĂ€tzlech kĂ«nnt Dir d'Operatioun vu Moduler filteren ofhĂ€ngeg vun der gewĂ«nschter Method. Zum Beispill -m "xss: get, blindsql: post, xxe: post". An dĂ«sem Fall, de Modul xss gĂ«llen op Ufroe geschĂ©ckt mat der GET Method, an de Modul blibdsql - fir POST Ufroen, etc. Iwwregens, wann e Modul, deen an der LĂ«scht abegraff war, net gebraucht gouf beim Scannen oder ganz laang dauert, da kĂ«nnt Dir andeems Dir d'Ctrl+C Kombinatioun drĂ©ckt, iwwersprangen andeems Dir den aktuellen Modul benotzt andeems Dir dat entspriechend Element am interaktiven MenĂŒ auswielt.
Wapiti ënnerstëtzt Ufroen duerch e Proxy mat engem Schlëssel -p an Authentifikatioun op der Zil- Site duerch de Parameter -a. Dir kënnt och d'Authentifikatiounstyp uginn: Basis, Verdauung, Kerberos О NTLM. Déi lescht zwee kënnen d'Installatioun vun zousÀtzleche Moduler erfuerderen. ZousÀtzlech kënnt Dir all Header an Ufroe setzen (inklusiv arbitrÀr Benotzer Agent) a vill méi.
Fir d'Authentifikatioun ze benotzen, kënnt Dir den Tool benotzen wapiti-getcookie. Mat senger Hëllef bilden mir Cookie, déi Wapiti beim Scannen benotzt. Formatioun Cookie gemaach mam Kommando:
# wapiti-getcookie -u http://sites.vulns.pentestit.ru/login.php -c cookie.jsonWÀrend interaktiv schaffe mir op Froen an weisen déi néideg Informatioune wéi Login, Passwuert asw.

D'Ausgab ass eng Datei am JSON Format. Eng aner Optioun ass all néideg Informatioun duerch de Parameter ze addéieren -d:
# wapiti-getcookie - http://sites.vulns.pentestit.ru/login.php -c cookie.json -d "username=admin&password=admin&enter=submit"D'Resultat wÀert Àhnlech sinn:

Wann Dir d'HaaptfunktionalitĂ©it vum Scanner berĂŒcksichtegt, war dĂ©i lescht Ufro fir d'Webapplikatioun an eisem Fall ze testen:
# 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:3128wou Ă«nner anerem Parameteren:
-f О -o - Format a Wee fir de Bericht ze spÀicheren;
-m - all Moduler ze verbannen ass net recommandéiert, well wÀert TestzÀit a Berichtgréisst beaflossen;
--faarf - Highlight fonnt Schwachstelle ofhÀngeg vun hirer Kritik no Wapiti selwer;
-c - benotzt engem Fichier mat Cookie, generéiert benotzt wapiti-getcookie;
-- Ămfang - d'Auswiel vun engem Zil fir Attack. Auswiel vun enger Optioun Dossier All URL gĂ«tt gekrabbelt an attackĂ©iert, ugefaange mat der Basis. D'Basis URL muss e Forward Slash hunn (kee Dateinumm);
--flush-Sessioun - erlaabt widderholl Scannen, an deem virdrun Resultater net berĂŒcksichtegt ginn;
-A - eegen Benotzer Agent;
-p - Proxy Server Adress, wann néideg.
E bëssen iwwer de Bericht
D'Scannenresultat gĂ«tt a Form vun engem detaillĂ©ierte Bericht iwwer all fonnt Schwachstelle am HTML SĂ€itformat presentĂ©iert, an enger kloerer an einfach ze liesen Form. De Bericht weist d'Kategorien an d'Zuel vun de Schwachstelle fonnt, hir Beschreiwungen, Ufroen, Kommandoen fir esouvill an Tipps wĂ©i se zoumaachen. Fir d'Navigatioun ze vereinfachen, gĂ«tt e Link op d'Kategoriennimm bĂ€igefĂŒĂŒgt, klickt op dĂ©i Dir dohinner kĂ«nnt:

E wesentlechen Nodeel vum Bericht ass d'Feele vun enger Webapplikatiounskaart als solch, ouni déi et net kloer ass ob all Adressen a Parameteren analyséiert goufen. Et gëtt och eng Méiglechkeet vu falsche Positiven. An eisem Fall enthÀlt de Bericht "Backupdateien" an "potenziell geféierlech Dateien." Hir Zuel entsprécht net der Realitéit, well et keng esou Dateien um Server waren:

VlÀicht falsch funktionéierend Moduler ginn iwwer ZÀit fixéiert. En aneren Nodeel vum Bericht ass de Mangel u Faarf vun de fonnte Schwachstelle (ofhÀngeg vun hirer Kritik), oder op d'mannst se a Kategorien opzedeelen. Deen eenzege Wee wéi mir indirekt d'Kritikitéit vun der fonnter Schwachstelle kënnen verstoen ass de Parameter ze benotzen --faarf wÀhrend dem Scannen, an da ginn d'Schwachstelle fonnt a verschiddene Faarwen faarweg:

MÀ de Rapport selwer gëtt net esou Faarf.
Schwachstelle
SQLi
De Scanner huet deelweis mat der SQLi Sich gekëmmert. Wann Dir no SQL Schwachstelle sicht op SÀiten wou d'Authentifikatioun net erfuerderlech ass, entstinn keng Probleemer:

Et war net méiglech eng Schwachstelle op SÀiten ze fannen, déi nëmmen no der Authentifikatioun zougÀnglech sinn, och mat valabel Cookie, well héchstwahrscheinlech no der erfollegrÀicher Authentifikatioun, hir Sessioun gëtt "ausgeloggt" an Cookie wÀert ongëlteg ginn. Wann d'Deautoriséierungsfunktioun als separat Skript ëmgesat gouf, verantwortlech fir d'Veraarbechtung vun dëser Prozedur, da wier et méiglech, se komplett duerch den -x Parameter auszeschléissen, an doduerch ze verhënneren datt se ausléisen. Soss ass et net méiglech seng Veraarbechtung auszeschléissen. Dëst ass net e Problem mat engem spezifesche Modul, mÀ mat der Outil als Ganzt, mÀ wéinst dëser Nuancen war et net méiglech e puer Injektiounen an engem zouenen Ressource BerÀich z'entdecken.
XSS
De Scanner huet déi gegebene Aufgab perfekt gepackt an huet all preparéiert Schwachstelle fonnt:

LFI/RFI
De Scanner huet all déi ënnerierdesch Schwachstelle fonnt:

Am Allgemengen, trotz falschen Positiven a fehlende Schwachstelle, weist Wapiti, als gratis Tool, zimlech gutt Leeschtungsresultater. Op alle Fall ass et derwÀert ze erkennen datt de Scanner zimlech mÀchteg, flexibel a multifunktionell ass, an am wichtegsten ass et gratis, sou datt et d'Recht huet fir Administrateuren an Entwéckler ze hëllefen Basisinformatioun iwwer de Sécherheetsstatus vun engem Web ze kréien Applikatioun.
Bleift gesond a geschĂŒtzt!
Source: will.com
