Wapiti — kontroll av webbplatsens sĂ„rbarheter pĂ„ egen hand

Wapiti — kontroll av webbplatsens sĂ„rbarheter pĂ„ egen hand
Tidigare artikeln har vi berĂ€ttat om Nemesida WAF Free — ett gratis verktyg för att skydda webbplatser och API:er frĂ„n hackaranfall, och i denna artikel har vi beslutat att ge en översikt över en populĂ€r sĂ„rbarhetsskanner Wapiti.

Sökning av webbplatsens sÄrbarheter Àr en nödvÀndig ÄtgÀrd som, tillsammans med analys av kÀllkoden, gör det möjligt att bedöma dess skyddsnivÄ mot risker för kompromiss. Att genomföra en sökning av webbresursen kan göras med hjÀlp av specialiserade verktyg.

Nikto, W3af (skriven i Python 2.7, vars support har upphört) eller Arachni (som inte lĂ€ngre stöds sedan februari) — de mest populĂ€ra lösningarna som erbjuds i det fria segmentet. SjĂ€lvklart finns det ocksĂ„ andra, exempelvis Wapiti, som vi har valt att fokusera pĂ„.

Wapiti fungerar med följande typer av sÄrbarheter:

  • filavslöjande (lokala och avlĂ€gsna, fopen, readfile);
  • injektioner (PHP / JSP / ASP / SQL-injektioner och XPath-injektioner);
  • XSS (cross-site scripting) (reflekterad och lagrad);
  • upptĂ€ck och utför kommandon (eval(), system(), passtru());
  • CRLF-injektioner (HTTP-svarssplittring, sessionskapning);
  • XXE (XML extern entitets) injektion;
  • SSRF (server-side request forgery);
  • anvĂ€ndning av kĂ€nda potentiellt farliga filer (tack vare Nikto-databasen);
  • svaga .htaccess-konfigurationer som kan kringgĂ„s;
  • förekomst av sĂ€kerhetskopieringsfiler som avslöjar konfidentiell information (kĂ€llkodsexponering);
  • Shellshock;
  • öppna omdirigeringar;
  • icke-standardiserade HTTP-metoder som kan tillĂ„tas (PUT).

Möjligheter:

  • stöd för HTTP, HTTPS och SOCKS5 proxy;
  • autentisering med flera metoder: Basic, Digest, Kerberos eller NTLM;
  • möjlighet att begrĂ€nsa omrĂ„det för inspektion (domĂ€n, mapp, sida, URL);
  • automatiserad borttagning av en parameter i URL;
  • flera försiktighetsĂ„tgĂ€rder mot oĂ€ndliga skanningscykler (exempel: ifor, begrĂ€nsning av vĂ€rden för parametern);
  • möjlighet att stĂ€lla in prioritet för att utforska URL:er (Ă€ven om de inte ligger inom inspektionsomrĂ„det);
  • möjlighet att utesluta vissa URL:er frĂ„n inspektion och attacker (t.ex.: logga ut URL);
  • import av cookies (hĂ€mta dem med verktyget wapiti-getcookie);
  • möjlighet att aktivera/deaktivera kontroll av SSL-certifikat;
  • möjlighet att extrahera URL:er frĂ„n JavaScript (mycket enkel JS-tolk);
  • interaktion med HTML5;
  • nĂ„gra alternativ för att hantera crawlerns beteende och begrĂ€nsningar;
  • instĂ€llning av maximal tid för skanningsprocessen;
  • tillĂ€gg av vissa anpassningsbara HTTP-huvuden eller instĂ€llning av en anpassad User-Agent.

Ytterligare funktioner:

  • skapa sĂ„rbarhetsrapporter i olika format (HTML, XML, JSON, TXT);
  • pausa och Ă„teruppta skanning eller attacker (sessionsmekanism med hjĂ€lp av SQLite3-databaser);
  • markeringsfunktion i terminalen för att framhĂ€va sĂ„rbarheter;
  • olika loggnivĂ„er;
  • ett snabbt och enkelt sĂ€tt att aktivera/avaktivera attackmoduler.

Installation

Den aktuella versionen av Wapiti kan installeras pÄ tvÄ sÀtt:

  • ladda ner kĂ€llkoden frĂ„n den officiella sidan och köra installationsskriptet efter att ha installerat Python3;
  • genom kommandot pip3 install wapiti3.

Efter detta kommer Wapiti att vara klart för anvÀndning.

Arbeta med verktyget

För att demonstrera hur Wapiti fungerar kommer vi att anvÀnda en sÀrskilt förberedd testmiljö sites.vulns.pentestit.ru (intern resurs) som innehÄller olika sÄrbarheter (Injection, XSS, LFI/RFI) och andra brister i webbapplikationer.

Informationen tillhandahÄlls endast för informationsÀndamÄl. Bryt inte mot lagarna!

Bas kommandot för att starta skannern:

# wapiti -u <target> <options>

DÀr det finns ganska detaljerad hjÀlp med ett stort antal startalternativ, till exempel:

—scope — tillĂ€mpningsomrĂ„de
Om man anger parameter scope tillsammans med URL:en som ska skannas kan man justera skanningsomrÄdet för webbplatsen genom att ange antingen enskilda sidor eller alla sidor som gÄr att hitta pÄ webbplatsen.

-s och -x — parametrar för att lĂ€gga till eller ta bort specifika URL-adresser. Dessa parametrar Ă€r anvĂ€ndbara nĂ€r man behöver lĂ€gga till eller ta bort en specifik URL under skanningsprocessen.

—skip — den angivna parametern med denna nyckel kommer att skannas, men inte attackeras. AnvĂ€ndbart om det finns nĂ„gra farliga parametrar som det Ă€r bĂ€ttre att utesluta under skanningen.

—verify-ssl — aktivering eller deaktivering av certifikatkontroll.
Wapiti-skannern Àr modulÀr. För att starta specifika moduler, av de som automatiskt ansluts under arbetet med skannern, mÄste man anvÀnda nyckeln -m och lista dem som behövs med kommatecken. Om man inte anvÀnder nyckeln kommer alla moduler att aktiveras som standard. I det enklaste fallet kan det se ut sÄ hÀr:

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

Det hĂ€r exemplet innebĂ€r att vi endast kommer att anvĂ€nda SQL-, XSS- och XXE-modulerna vid skanning av mĂ„let. Utöver detta kan man filtrera modulernas funktion baserat pĂ„ den önskade metoden. Till exempel -m “xss: get, blindsql: post, xxe: post”. I sĂ„ fall kommer modulen xss att tillĂ€mpas pĂ„ förfrĂ„gningar som skickas med GET-metoden, medan modulen blibdsql — kommer att gĂ€lla för POST-förfrĂ„gningar, etc. Förresten, om nĂ„gon modul som har inkluderats i listan inte behövdes under skanningen eller arbetar vĂ€ldigt lĂ€nge, kan man genom att trycka pĂ„ Ctrl+C hoppa över anvĂ€ndningen av den aktuella modulen och vĂ€lja motsvarande punkt i den interaktiva menyn.

Wapiti stödjer att skicka förfrÄgningar via en proxyserver med hjÀlp av nyckeln -p och autentisering pÄ den mÄlsidan via parametern -a. Man kan ocksÄ ange typ av autentisering: Basiс, Digest, Kerberos och NTLM. För de tvÄ senaste kan det krÀvas installation av ytterligare moduler. Dessutom kan man infoga valfria rubriker i förfrÄgningarna (inklusive godtycklig User-Agent) och mycket mer.

För att anvÀnda autentisering kan man anvÀnda verktyget wapiti-getcookie. Med det hÀr verktyget formar vi cookie, som Wapiti kommer att anvÀnda vid skanning. Formandet cookie genomförs med kommandot:

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

Under arbete i det interaktiva lÀget svarar vi pÄ frÄgor och anger nödvÀndig information som: anvÀndarnamn, lösenord och sÄ vidare:

Wapiti — kontroll av webbplatsens sĂ„rbarheter pĂ„ egen hand

Vid utgÄngen fÄr vi en fil i JSON-format. Ett annat alternativ Àr att lÀgga till all nödvÀndig information via parametern -d:

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

Resultatet blir liknande:

Wapiti — kontroll av webbplatsens sĂ„rbarheter pĂ„ egen hand

Vid granskning av skannerns grundlÀggande funktionalitet blev den slutgiltiga förfrÄgan för att genomföra tester av webbapplikationen i vÄrt fall:

# 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

dÀr bland andra parametrar:

-f och -o — format och vĂ€g för att spara rapporten;

-m — ansluta alla moduler — rekommenderas inte, eftersom det pĂ„verkar testtiden och storleken pĂ„ rapporten;

—color — markera funna sĂ„rbarheter baserat pĂ„ deras allvarlighetsgrad enligt Wapiti;

-c — anvĂ€ndning av en fil med cookie, genererad med hjĂ€lp av wapiti-getcookie;

—scope — val av mĂ„l för attack. Genom att vĂ€lja alternativet folder kommer varje URL som börjar med basen att skannas och attackeras. Bas-URL:en mĂ„ste ha ett snedstreck (utan filnamn);

—flush-session — tillĂ„ter omskanning utan att ta hĂ€nsyn till tidigare resultat;

-A — egen User-Agent;

-p — proxy-serveradress, om det behövs.

Lite om rapporten

Resultatet av skanningen presenteras i form av en detaljerad rapport om alla hittade sÄrbarheter i HTML-sidesformat, pÄ ett lÀttförstÄeligt och överskÄdligt sÀtt. Rapporten kommer att ange kategorier och antalet hittade sÄrbarheter, deras beskrivningar, förfrÄgningar, kommandon för curl och tips om hur man ÄtgÀrdar dem. För att underlÀtta navigeringen kommer en lÀnk att lÀggas till i rubrikerna för kategorier, sÄ att man kan klicka för att gÄ till dem:

Wapiti — kontroll av webbplatsens sĂ„rbarheter pĂ„ egen hand

En betydande nackdel med rapporten Àr avsaknaden av en karta över webbtjÀnsten, utan vilken det Àr oklart om alla adresser och parametrar har blivit analyserade. Det finns ocksÄ en risk för falska positiva resultat. I vÄrt fall nÀmns "backup-filer" och "potentiellt farliga filer" i rapporten. Deras antal motsvarar inte verkligheten, eftersom sÄdana filer inte fanns pÄ servern:

Wapiti — kontroll av webbplatsens sĂ„rbarheter pĂ„ egen hand

Det Ă€r möjligt att modulernas ofullstĂ€ndiga funktionalitet kommer att rĂ€ttas till med tiden. En annan nackdel med rapporten Ă€r bristen pĂ„ fĂ€rgmĂ€rkning av hittade sĂ„rbarheter (beroende pĂ„ deras kritikalitet), eller Ă„tminstone deras uppdelning i kategorier. Det enda sĂ€ttet vi kan förstĂ„ den hittade sĂ„rbarhetens kritikalitet pĂ„ ett indirekt sĂ€tt — Ă€r att anvĂ€nda parametern —color vid skanning och dĂ„ kommer de hittade sĂ„rbarheterna att fĂ€rgas i olika fĂ€rger:

Wapiti — kontroll av webbplatsens sĂ„rbarheter pĂ„ egen hand

Men i sjÀlva rapporten Àr sÄdan fÀrgmÀrkning inte förutsedd.

SÄrbarheter

SQLi

Skannern har delvis lyckats att hitta SQLi. Vid sökning av SQL-sÄrbarheter pÄ sidor dÀr autentisering inte krÀvs, uppstÄr inga problem:

Wapiti — kontroll av webbplatsens sĂ„rbarheter pĂ„ egen hand

Det var inte möjligt att hitta nÄgon sÄrbarhet pÄ sidor som bara Àr tillgÀngliga efter autentisering, Àven med anvÀndning av giltiga cookie, eftersom det troligen efter en lyckad autentisering kommer att ske en "utlogging frÄn sessionen" och cookie blir ogiltiga. Om deautentiseringsfunktionen hade utförts som ett separat skript, ansvarigt för att hantera denna procedur, skulle den helt kunna uteslutas genom parametern -x, och dÀrmed förhindra dess utlösning. Annars Àr det omöjligt att utesluta dess behandling. Detta Àr ett problem med hela verktyget, inte bara en specifik modul, men pÄ grund av denna nyans misslyckades det att upptÀcka flera injektioner i den stÀngda delen av resursen.

XSS

Med uppdraget att skanna klarade skannern sig utmÀrkt och hittade alla förberedda sÄrbarheter:

Wapiti — kontroll av webbplatsens sĂ„rbarheter pĂ„ egen hand

LFI/RFI

Skannern hittade alla inlagda sÄrbarheter:

Wapiti — kontroll av webbplatsens sĂ„rbarheter pĂ„ egen hand

Sammanfattningsvis, trots falska positiva resultat och missade sÄrbarheter, visar Wapiti som ett gratisverktyg ganska bra prestanda. I alla fall mÄste man erkÀnna att skannern Àr ganska kraftfull, flexibel och multifunktionell, och framför allt gratis, sÄ det Àr vÀrt att anvÀnda, vilket hjÀlper administratörer och utvecklare att fÄ grundlÀggande information om webbapplikationens sÀkerhetsstatus.

HÄll er friska och skyddade!

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster