Wapiti - sjekker et nettsted for sårbarheter på egen hånd

Wapiti - sjekker et nettsted for sårbarheter på egen hånd
I den siste artikkel vi snakket om Nemesida WAF Gratis - et gratis verktøy for å beskytte nettsteder og API-er mot hackerangrep, og i denne bestemte vi oss for å vurdere en populær sårbarhetsskanner Elg.

Å skanne et nettsted for sårbarheter er et nødvendig tiltak, som, kombinert med analyse av kildekoden, lar deg vurdere sikkerhetsnivået mot trusler om kompromiss. Du kan skanne en nettressurs ved å bruke spesialiserte verktøy.

Nikto, W3af (skrevet i Python 2.7, som ikke lenger støttes) eller Arachni (støttes ikke lenger siden februar) er de mest populære løsningene som presenteres i gratissegmentet. Selvfølgelig er det andre, for eksempel Wapiti, som vi bestemte oss for å fokusere på.

Wapiti jobber med følgende typer sårbarheter:

  • filutvidelse (lokal og ekstern, fopen, readfile);
  • injeksjoner (PHP / JSP / ASP / SQL-injeksjon og XPath-injeksjon);
  • XSS (Cross Site Scripting) (reflekterende og vedvarende);
  • deteksjon og utførelse av kommandoer (eval(), system(), passtru());
  • CRLF-injeksjoner (HTTP-responsdeling, sesjonsfiksering);
  • XXE (XML ekstern enhet) innebygging;
  • SSRF (Server Side Request Forgery);
  • bruk av kjente potensielt farlige filer (takket være Nikto-databasen);
  • svake .htaccess-konfigurasjoner som kan omgås;
  • tilstedeværelsen av sikkerhetskopifiler som avslører konfidensiell informasjon (avsløring av kildekode);
  • Granatsjokk;
  • åpne omdirigeringer;
  • ikke-standard HTTP-metoder som kan løses (PUT).

funksjoner:

  • HTTP, HTTPS og SOCKS5 proxy-støtte;
  • autentisering ved hjelp av flere metoder: Basic, Digest, Kerberos eller NTLM;
  • muligheten til å begrense skanneområdet (domene, mappe, side, URL);
  • automatisk fjerning av en av parameterne i URL-en;
  • flere forholdsregler mot endeløse skanneløkker (eksempel: ifor, grenseverdier for en parameter);
  • muligheten til å angi en prioritet for å undersøke URL-er (selv om de ikke er i skanneområdet);
  • muligheten til å ekskludere enkelte URL-er fra skanning og angrep (for eksempel: URL-logg ut);
  • importere informasjonskapsler (hent dem ved hjelp av wapiti-getcookie-verktøyet);
  • muligheten til å aktivere/deaktivere SSL-sertifikatverifisering;
  • muligheten til å trekke ut URL-er fra JavaScript (en veldig enkel JS-tolk);
  • interaksjon med HTML5;
  • flere alternativer for å administrere robotsøkeoppførsel og restriksjoner;
  • angi maksimal tid for skanneprosessen;
  • legge til noen egendefinerte HTTP-hoder eller sette opp en egendefinert brukeragent.

Ytterligere funksjoner:

  • lage sårbarhetsrapporter i ulike formater (HTML, XML, JSON, TXT);
  • pause og gjenoppta en skanning eller angrep (sesjonsmekanisme ved bruk av SQLite3-databaser);
  • bakgrunnsbelysning i terminalen for å markere sårbarheter;
  • ulike nivåer av logging;
  • En rask og enkel måte å aktivere/deaktivere angrepsmoduler.

Installasjon

Den nåværende versjonen av Wapiti kan installeres på to måter:

  • Last ned kilden fra den offisielle сайта og kjør installasjonsskriptet etter å ha installert Python3 tidligere;
  • ved å bruke kommandoen pip3 install wapiti3.

Etter dette vil Wapiti være klar til å gå.

Arbeid med verktøyet

For å demonstrere arbeidet til Wapiti, vil vi bruke en spesiallaget stand sites.vulns.pentestit.ru (intern ressurs), som inneholder ulike sårbarheter (Injection, XSS, LFI/RFI) og andre mangler ved webapplikasjoner.

Informasjonen gis kun for informasjonsformål. Ikke bryt loven!

Grunnleggende kommando for å starte skanneren:

# wapiti -u <target> <options>

Samtidig er det ganske detaljert hjelp med et stort antall lanseringsalternativer, for eksempel:

--omfang - bruksområde
Hvis du spesifiserer omfangsparameteren sammen med gjennomsøkings-URLen, kan du justere nettstedets gjennomsøkingsområde ved å spesifisere både en enkelt side og alle sider som kan finnes på nettstedet.

-s и -x — alternativer for å legge til eller fjerne bestemte URL-er. Disse alternativene er nyttige når du trenger å legge til eller fjerne en spesifikk URL under gjennomsøkingsprosessen.

--hopp over — den angitte parameteren med denne nøkkelen vil bli skannet, men vil ikke bli angrepet. Nyttig hvis det er noen farlige parametere som best utelukkes under skanning.

--verify-ssl — aktiver eller deaktiver sertifikatverifisering.
Wapiti-skanneren er modulær. Men for å starte spesifikke moduler, inkludert de som kobles til automatisk mens skanneren kjører, må du bruke bryteren -m og liste opp de du trenger, atskilt med komma. Hvis nøkkelen ikke brukes, vil alle moduler fungere som standard. I den enkleste versjonen vil det se slik ut:

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

Dette brukseksemplet betyr at vi kun vil bruke SQL-, XSS- og XXE-modulene når vi skanner målet. I tillegg kan du filtrere driften av moduler avhengig av ønsket metode. For eksempel -m "xss: get, blindsql: post, xxe: post". I dette tilfellet modulen xss vil gjelde for forespørsler sendt med GET-metoden, og modulen blibdsql - å POST forespørsler, etc. Forresten, hvis en modul som var inkludert i listen ikke var nødvendig under skanning eller tar veldig lang tid, kan du ved å trykke på Ctrl+C-kombinasjonen hoppe over å bruke gjeldende modul ved å velge det tilsvarende elementet i den interaktive menyen.

Wapiti støtter å sende forespørsler gjennom en proxy ved hjelp av en nøkkel -p og autentisering på målstedet gjennom parameteren -a. Du kan også spesifisere autentiseringstypen: Grunnleggende, Fordøye, Kerberos и NTLM. De to siste kan kreve installasjon av tilleggsmoduler. I tillegg kan du sette inn alle overskrifter i forespørsler (inkludert vilkårlige User-Agent) og mye mer.

For å bruke autentisering kan du bruke verktøyet wapiti-getcookie. Med dens hjelp danner vi cookie, som Wapiti vil bruke ved skanning. Formasjon cookie ferdig med kommandoen:

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

Mens vi jobber interaktivt, svarer vi på spørsmål og angir nødvendig informasjon som pålogging, passord osv.:

Wapiti - sjekker et nettsted for sårbarheter på egen hånd

Utdataene er en fil i JSON-format. Et annet alternativ er å legge til all nødvendig informasjon gjennom parameteren -d:

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

Resultatet vil være likt:

Wapiti - sjekker et nettsted for sårbarheter på egen hånd

Når vi vurderer hovedfunksjonen til skanneren, var den endelige forespørselen om å teste nettapplikasjonen i vårt tilfelle:

# 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

hvor blant andre parametere:

-f и -o — format og bane for lagring av rapporten;

-m — Det anbefales ikke å koble til alle moduler, fordi vil påvirke testtid og rapportstørrelse;

-farge — fremheve funnet sårbarheter avhengig av deres kritikk i henhold til Wapiti selv;

-c - ved å bruke en fil med cookie, generert ved hjelp av wapiti-getcookie;

--omfang — å velge et mål for angrep. Velge et alternativ mappe Hver URL vil bli gjennomsøkt og angrepet, og starter med den grunnleggende. Basis-URLen må ha en skråstrek (ingen filnavn);

--flush-sesjon — tillater gjentatt skanning, der tidligere resultater ikke vil bli tatt i betraktning;

-A - egen User-Agent;

-p — proxy-serveradresse, om nødvendig.

Litt om rapporten

Skanningsresultatet presenteres i form av en detaljert rapport om alle funnet sårbarheter i HTML-sideformat, i en oversiktlig og lettlest form. Rapporten vil indikere kategoriene og antall sårbarheter funnet, deres beskrivelser, forespørsler, kommandoer for curl og tips om hvordan du lukker dem. For enkel navigering vil en lenke bli lagt til kategorinavnene, ved å klikke på den for å gå til den:

Wapiti - sjekker et nettsted for sårbarheter på egen hånd

En betydelig ulempe med rapporten er fraværet av et nettapplikasjonskart som sådan, uten hvilket det ikke vil være klart om alle adresser og parametere er analysert. Det er også en mulighet for falske positiver. I vårt tilfelle inkluderer rapporten "sikkerhetskopifiler" og "potensielt farlige filer." Antallet deres samsvarer ikke med virkeligheten, siden det ikke var slike filer på serveren:

Wapiti - sjekker et nettsted for sårbarheter på egen hånd

Kanskje feil fungerende moduler vil bli fikset over tid. En annen ulempe med rapporten er mangelen på fargelegging av de funnet sårbarhetene (avhengig av hvor kritisk de er), eller i det minste å dele dem inn i kategorier. Den eneste måten vi indirekte kan forstå kritiskheten til den funnet sårbarheten er å bruke parameteren -farge under skanning, og så vil sårbarhetene som blir funnet farget i forskjellige farger:

Wapiti - sjekker et nettsted for sårbarheter på egen hånd

Men selve rapporten gir ikke slik fargelegging.

Sårbarheter

SQLi

Skanneren taklet delvis SQLi-søket. Når du søker etter SQL-sårbarheter på sider der autentisering ikke er nødvendig, oppstår det ingen problemer:

Wapiti - sjekker et nettsted for sårbarheter på egen hånd

Det var ikke mulig å finne en sårbarhet på sider som bare var tilgjengelig etter autentisering, selv ved bruk av valid cookie, siden mest sannsynlig etter vellykket autentisering, vil økten deres "logges ut" og cookie vil bli ugyldig. Hvis avautoriseringsfunksjonen ble implementert som et eget skript som er ansvarlig for å behandle denne prosedyren, ville det være mulig å ekskludere den fullstendig gjennom parameteren -x, og dermed forhindre at den utløses. Ellers vil det ikke være mulig å utelukke behandlingen. Dette er ikke et problem med en spesifikk modul, men med verktøyet som helhet, men på grunn av denne nyansen var det ikke mulig å oppdage flere injeksjoner i et lukket ressursområde.

XSS

Skanneren taklet den gitte oppgaven perfekt og fant alle forberedte sårbarheter:

Wapiti - sjekker et nettsted for sårbarheter på egen hånd

LFI/RFI

Skanneren fant alle de underliggende sårbarhetene:

Wapiti - sjekker et nettsted for sårbarheter på egen hånd

Generelt, til tross for falske positiver og manglende sårbarheter, viser Wapiti, som et gratisverktøy, ganske gode ytelsesresultater. I alle fall er det verdt å erkjenne at skanneren er ganske kraftig, fleksibel og multifunksjonell, og viktigst av alt, den er gratis, så den har rett til å bli brukt til å hjelpe administratorer og utviklere med å få grunnleggende informasjon om sikkerhetsstatusen til en nett. applikasjon.

Hold deg frisk og beskyttet!

Kilde: www.habr.com

Legg til en kommentar