Wapiti - samostalno provjerava ranjivosti na web lokaciji

Wapiti - samostalno provjerava ranjivosti na web lokaciji
U poslednjem članak razgovarali smo o tome Nemesida WAF Besplatno - besplatni alat za zaštitu web stranica i API-ja od hakerskih napada, a u ovom smo odlučili pregledati popularni skener ranjivosti Elk.

Skeniranje web stranice u potrazi za ranjivostima je neophodna mjera, koja, zajedno s analizom izvornog koda, omogućava procjenu nivoa njegove sigurnosti od prijetnji kompromitacije. Možete skenirati web resurs pomoću specijaliziranih alata.

Nikto, W3af (napisan u Python 2.7, koji više nije podržan) ili Arachni (više nije podržan od februara) su najpopularnija rješenja predstavljena u besplatnom segmentu. Naravno, postoje i drugi, na primjer Wapiti, na koje smo odlučili da se fokusiramo.

Wapiti radi sa sljedećim vrstama ranjivosti:

  • proširenje datoteka (lokalno i udaljeno, fopen, readfile);
  • injekcije (PHP / JSP / ASP / SQL injekcija i XPath injekcija);
  • XSS (Cross Site Scripting) (refleksivan i postojan);
  • otkrivanje i izvršavanje komandi (eval(), system(), passtru());
  • CRLF injekcije (HTTP podjela odgovora, fiksacija sesije);
  • XXE (XML eksterni entitet) ugrađivanje;
  • SSRF (Falsifikovanje zahteva na strani servera);
  • korištenje poznatih potencijalno opasnih datoteka (zahvaljujući Nikto bazi podataka);
  • slabe .htaccess konfiguracije koje se mogu zaobići;
  • prisustvo rezervnih datoteka koje otkrivaju povjerljive informacije (otkrivanje izvornog koda);
  • Shellshock;
  • otvorena preusmjeravanja;
  • nestandardne HTTP metode koje se mogu riješiti (PUT).

Karakteristike:

  • HTTP, HTTPS i SOCKS5 proxy podrška;
  • autentikacija korištenjem nekoliko metoda: Basic, Digest, Kerberos ili NTLM;
  • mogućnost ograničavanja područja skeniranja (domena, mapa, stranica, URL);
  • automatsko uklanjanje jednog od parametara u URL-u;
  • višestruke mjere opreza protiv beskrajnih petlji skeniranja (primjer: ifor, granične vrijednosti za parametar);
  • mogućnost postavljanja prioriteta za ispitivanje URL-ova (čak i ako se ne nalaze u području skeniranja);
  • mogućnost isključivanja nekih URL-ova iz skeniranja i napada (na primjer: URL odjava);
  • uvoz kolačića (dobite ih pomoću alata wapiti-getcookie);
  • mogućnost aktiviranja/deaktiviranja verifikacije SSL sertifikata;
  • mogućnost izdvajanja URL-ova iz JavaScripta (veoma jednostavan JS interpreter);
  • interakcija sa HTML5;
  • nekoliko opcija za upravljanje ponašanjem i ograničenjima puzača;
  • postavljanje maksimalnog vremena za proces skeniranja;
  • dodavanje nekih prilagođenih HTTP zaglavlja ili postavljanje prilagođenog korisničkog agenta.

Dodatne karakteristike:

  • kreiranje izvještaja o ranjivosti u različitim formatima (HTML, XML, JSON, TXT);
  • pauziranje i nastavak skeniranja ili napada (mehanizam sesije koji koristi SQLite3 baze podataka);
  • pozadinsko osvjetljenje terminala za isticanje ranjivosti;
  • različiti nivoi sječe;
  • Brz i lak način za aktiviranje/deaktiviranje napadačkih modula.

postavljanje

Trenutna verzija Wapitija može se instalirati na 2 načina:

  • preuzmite izvor sa službenog stranice i pokrenite instalacijsku skriptu, nakon što ste prethodno instalirali Python3;
  • koristeći naredbu pip3 install wapiti3.

Nakon ovoga, Wapiti će biti spreman za polazak.

Rad sa alatom

Da bismo demonstrirali rad Wapiti-ja, koristićemo posebno pripremljen štand sites.vulns.pentestit.ru (interni resurs), koji sadrži različite ranjivosti (Injection, XSS, LFI/RFI) i druge nedostatke web aplikacija.

Informacije su date samo u informativne svrhe. Ne kršite zakon!

Osnovna naredba za pokretanje skenera:

# wapiti -u <target> <options>

Istovremeno, postoji prilično detaljna pomoć s velikim brojem opcija pokretanja, na primjer:

--scope - područje primjene
Ako navedete parametar opsega zajedno sa URL-om indeksiranja, možete podesiti područje indeksiranja web lokacije tako što ćete navesti i jednu stranicu i sve stranice koje se mogu naći na web lokaciji.

-s и -x — opcije za dodavanje ili uklanjanje određenih URL-ova. Ove opcije su korisne kada trebate dodati ili ukloniti određeni URL tokom procesa indeksiranja.

--skip — navedeni parametar sa ovim ključem će biti skeniran, ali neće biti napadnut. Korisno ako postoje opasni parametri koje je najbolje isključiti tokom skeniranja.

--verify-ssl — omogućite ili onemogućite verifikaciju sertifikata.
Wapiti skener je modularan. Međutim, da biste pokrenuli određene module, uključujući one koji se automatski povezuju dok skener radi, trebate koristiti prekidač -m i navesti one koje su vam potrebne, odvojene zarezima. Ako se ključ ne koristi, svi moduli će raditi prema zadanim postavkama. U najjednostavnijoj verziji to će izgledati ovako:

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

Ovaj primjer upotrebe znači da ćemo koristiti samo SQL, XSS i XXE module kada skeniramo cilj. Osim toga, možete filtrirati rad modula ovisno o željenoj metodi. Na primjer -m “xss: get, blindsql: post, xxe: post”. U ovom slučaju, modul xss primjenjivat će se na zahtjeve poslane metodom GET i modulom blibdsql - na POST zahtjeve, itd. Inače, ako neki modul koji je uvršten na listu nije bio potreban tokom skeniranja ili traje jako dugo, onda pritiskom na kombinaciju Ctrl+C možete preskočiti korištenje trenutnog modula odabirom odgovarajuće stavke u interaktivnom izborniku.

Wapiti podržava prosljeđivanje zahtjeva kroz proxy pomoću ključa -p i autentifikaciju na ciljnom mjestu preko parametra -a. Također možete odrediti vrstu provjere autentičnosti: Basic, Digest, Kerberos и NTLM. Posljednja dva mogu zahtijevati instalaciju dodatnih modula. Osim toga, možete umetnuti bilo koja zaglavlja u zahtjeve (uključujući proizvoljna Korisnički agent) i mnogo više.

Da biste koristili autentifikaciju, možete koristiti alat wapiti-getcookie. Uz njegovu pomoć formiramo kolačić, koji će Wapiti koristiti prilikom skeniranja. Formacija kolačić uradjeno sa komandom:

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

Dok radimo interaktivno, odgovaramo na pitanja i navodimo potrebne podatke kao što su login, lozinka, itd.:

Wapiti - samostalno provjerava ranjivosti na web lokaciji

Izlaz je datoteka u JSON formatu. Druga opcija je dodavanje svih potrebnih informacija kroz parametar -d:

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

Rezultat će biti sličan:

Wapiti - samostalno provjerava ranjivosti na web lokaciji

Kada se uzme u obzir glavna funkcionalnost skenera, konačni zahtjev za testiranje web aplikacije u našem slučaju je bio:

# 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

gdje između ostalih parametara:

-f и -o — format i putanju za pohranjivanje izvještaja;

-m — povezivanje svih modula se ne preporučuje, jer će uticati na vrijeme testiranja i veličinu izvještaja;

--boja — istaći pronađene ranjivosti u zavisnosti od njihove kritičnosti prema samom Wapitiju;

-c - koristeći datoteku sa kolačić, generirano korištenjem wapiti-getcookie;

--scope — odabir mete za napad. Odabir opcije folder Svaki URL će biti indeksiran i napadnut, počevši od osnovnog. Osnovni URL mora imati kosu crtu (bez imena datoteke);

--flush-session — omogućava ponovljeno skeniranje, pri čemu se prethodni rezultati neće uzeti u obzir;

-A - sopstveni Korisnički agent;

-p — adresa proxy servera, ako je potrebno.

Malo o izveštaju

Rezultat skeniranja je predstavljen u obliku detaljnog izvještaja o svim pronađenim ranjivostima u HTML formatu stranice, u jasnom i lako čitljivom obliku. U izvještaju će biti navedene kategorije i broj pronađenih ranjivosti, njihovi opisi, zahtjevi, naredbe za curl i savjete kako ih zatvoriti. Radi lakše navigacije, nazivima kategorija će biti dodan link, klikom na koji možete ići na nju:

Wapiti - samostalno provjerava ranjivosti na web lokaciji

Značajan nedostatak izvještaja je nepostojanje mape web aplikacije kao takve, bez koje neće biti jasno da li su analizirane sve adrese i parametri. Postoji i mogućnost lažnih pozitivnih rezultata. U našem slučaju, izvještaj uključuje "fajlove sigurnosne kopije" i "potencijalno opasne datoteke". Njihov broj ne odgovara stvarnosti, jer na serveru nije bilo takvih datoteka:

Wapiti - samostalno provjerava ranjivosti na web lokaciji

Možda će se moduli koji nepravilno rade vremenom popraviti. Još jedan nedostatak izvještaja je nedostatak bojenja pronađenih ranjivosti (u zavisnosti od njihove kritičnosti), ili barem podjele u kategorije. Jedini način na koji možemo indirektno razumjeti kritičnost pronađene ranjivosti je korištenje parametra --boja tokom skeniranja, a zatim će pronađene ranjivosti biti obojene u različite boje:

Wapiti - samostalno provjerava ranjivosti na web lokaciji

Ali sam izvještaj ne daje takvu boju.

Ranjivosti

SQLi

Skener se djelomično nosi sa SQLi pretraživanjem. Prilikom traženja SQL ranjivosti na stranicama na kojima autentifikacija nije potrebna, ne nastaju problemi:

Wapiti - samostalno provjerava ranjivosti na web lokaciji

Nije bilo moguće pronaći ranjivost na stranicama dostupnim tek nakon provjere autentičnosti, čak ni koristeći valid kolačić, budući da će najvjerovatnije nakon uspješne autentifikacije njihova sesija biti “odjavljena” i kolačić će postati nevažeći. Kada bi se funkcija deautorizacije implementirala kao zasebna skripta odgovorna za obradu ove procedure, tada bi je bilo moguće potpuno isključiti preko -x parametra i na taj način spriječiti njeno pokretanje. U suprotnom, neće biti moguće isključiti njegovu obradu. Ovo nije problem sa određenim modulom, već sa alatom u cjelini, ali zbog ove nijanse nije bilo moguće otkriti nekoliko injekcija u zatvorenom području resursa.

XSS

Skener se savršeno nosio sa zadatim zadatkom i pronašao sve pripremljene ranjivosti:

Wapiti - samostalno provjerava ranjivosti na web lokaciji

LFI/RFI

Skener je pronašao sve temeljne ranjivosti:

Wapiti - samostalno provjerava ranjivosti na web lokaciji

Generalno, uprkos lažnim pozitivnim rezultatima i nedostajućim ranjivostima, Wapiti, kao besplatan alat, pokazuje prilično dobre rezultate. U svakom slučaju, valja priznati da je skener prilično moćan, fleksibilan i multifunkcionalan, a što je najvažnije, besplatan je, pa ima pravo da se koristi u pomaganju administratorima i programerima da dobiju osnovne informacije o sigurnosnom statusu weba. aplikacija.

Ostanite zdravi i zaštićeni!

izvor: www.habr.com

Dodajte komentar