Wapiti - samostalno provjerava ranjivosti stranice

Wapiti - samostalno provjerava ranjivosti stranice
U posljednjih članak razgovarali smo o Nemesida WAF Besplatno - besplatni alat za zaštitu web stranica i API-ja od hakerskih napada, au ovom smo odlučili recenzirati popularni skener ranjivosti Sjevernoamerički jelen.

Skeniranje web stranice u potrazi za ranjivostima nužna je mjera koja vam, zajedno s analizom izvornog koda, omogućuje procjenu razine njezine sigurnosti od prijetnji ugrožavanja. Možete skenirati web izvor pomoću specijaliziranih alata.

Nikto, W3af (napisano u Python 2.7, koji više nije podržan) ili Arachni (više nije podržan od veljače) najpopularnija su rješenja predstavljena u besplatnom segmentu. Naravno, tu su i drugi, na primjer, Wapiti, na koji smo se odlučili fokusirati.

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) (reflektirajuće i postojano);
  • otkrivanje i izvršavanje naredbi (eval(), system(), passtru());
  • CRLF injekcije (dijeljenje HTTP odgovora, fiksacija sesije);
  • XXE (XML vanjski entitet) ugrađivanje;
  • SSRF (Krivotvorenje zahtjeva na strani poslužitelja);
  • korištenje poznatih potencijalno opasnih datoteka (zahvaljujući Nikto bazi podataka);
  • slabe .htaccess konfiguracije koje se mogu zaobići;
  • prisutnost sigurnosnih kopija datoteka koje otkrivaju povjerljive informacije (otkrivanje izvornog koda);
  • Kontuzija;
  • otvorena preusmjeravanja;
  • nestandardne HTTP metode koje se mogu razriješiti (PUT).

Značajke:

  • HTTP, HTTPS i SOCKS5 proxy podrška;
  • provjera autentičnosti 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 beskonačnih petlji skeniranja (primjer: ifor, ograničavajuće vrijednosti za parametar);
  • mogućnost postavljanja prioriteta za ispitivanje URL-ova (čak i ako nisu u području skeniranja);
  • mogućnost isključivanja nekih URL-ova iz skeniranja i napada (na primjer: odjava URL-a);
  • uvesti kolačiće (dobiti ih pomoću alata wapiti-getcookie);
  • mogućnost aktiviranja/deaktiviranja provjere SSL certifikata;
  • mogućnost izvlačenja URL-ova iz JavaScripta (vrlo jednostavan JS interpreter);
  • interakcija s HTML5;
  • nekoliko opcija za upravljanje ponašanjem indeksiranja i ograničenjima;
  • postavljanje maksimalnog vremena za proces skeniranja;
  • dodavanjem nekih prilagođenih HTTP zaglavlja ili postavljanjem prilagođenog korisničkog agenta.

Dodatne mogućnosti:

  • izrada izvješća o ranjivostima u različitim formatima (HTML, XML, JSON, TXT);
  • pauziranje i nastavak skeniranja ili napada (mehanizam sesije koji koristi SQLite3 baze podataka);
  • pozadinsko osvjetljenje u terminalu za isticanje ranjivosti;
  • različite razine sječe;
  • Brz i jednostavan način aktiviranja/deaktiviranja modula napada.

Instalacija

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

  • preuzmite izvor sa službenog сайта i pokrenite instalacijsku skriptu, nakon što ste prethodno instalirali Python3;
  • pomoću naredbe pip3 install wapiti3.

Nakon ovoga, Wapiti će biti spreman za polazak.

Rad s alatom

Da bismo demonstrirali rad Wapitija, koristit ćemo se posebno pripremljenim štandom sites.vulns.pentestit.ru (interni resurs), koji sadrži razne ranjivosti (Injection, XSS, LFI/RFI) i druge nedostatke web aplikacija.

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

Osnovna naredba za pokretanje skenera:

# wapiti -u <target> <options>

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

-- opseg - područje primjene
Ako navedete parametar opsega zajedno s URL-om indeksiranja, možete prilagoditi područje skeniranja web-mjesta tako da navedete jednu stranicu i sve stranice koje se mogu pronaći na web-mjestu.

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

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

--provjeri-ssl — omogućite ili onemogućite provjeru certifikata.
Wapiti skener je modularan. Međutim, za pokretanje određenih modula, uključujući one koji se automatski povezuju dok skener radi, morate upotrijebiti prekidač -m i navesti one koji su vam potrebni, odvojene zarezima. Ako se ključ ne koristi, tada će svi moduli raditi prema zadanim postavkama. U najjednostavnijoj verziji izgledat će 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 prilikom skeniranja cilja. 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 modul blibdsql - za POST zahtjeve, itd. Usput, ako neki modul koji je bio uključen na popis nije bio potreban tijekom skeniranja ili je potrebno jako dugo, tada 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 provjera autentičnosti na ciljnom mjestu putem parametra -a. Također možete odrediti vrstu provjere autentičnosti: Osnovni, temeljni, probaviti, Kerberos и NTLM. Posljednja dva mogu zahtijevati ugradnju dodatnih modula. Osim toga, u zahtjeve možete umetnuti bilo koja zaglavlja (uključujući proizvoljna User-agent) i mnogo više.

Za korištenje autentifikacije možete koristiti alat wapiti-getcookie. Uz njegovu pomoć oblikujemo kolačić, koje će Wapiti koristiti prilikom skeniranja. Formiranje kolačić učinjeno naredbom:

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

Tijekom interaktivnog rada odgovaramo na pitanja i navodimo potrebne podatke kao što su prijava, lozinka itd.:

Wapiti - samostalno provjerava ranjivosti stranice

Izlaz je datoteka u JSON formatu. Druga mogućnost 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 stranice

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

# 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 je između ostalih parametara:

-f и -o — format i put za spremanje izvješća;

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

--boja — istaknuti pronađene ranjivosti ovisno o njihovoj kritičnosti prema samom Wapitiju;

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

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

--sesija ispiranja — omogućuje ponovljeno skeniranje, pri čemu prethodni rezultati neće biti uzeti u obzir;

-A - vlastiti User-agent;

-p — adresu proxy poslužitelja, ako je potrebno.

Malo o izvještaju

Rezultat skeniranja prikazuje se u obliku detaljnog izvješća o svim pronađenim propustima u HTML formatu stranice, u jasnom i lako čitljivom obliku. Izvješće će navesti kategorije i broj pronađenih ranjivosti, njihove opise, zahtjeve, naredbe za sklupčati i savjete kako ih zatvoriti. Radi lakšeg snalaženja, nazivima kategorija bit će dodana poveznica, klikom na koju možete otići na nju:

Wapiti - samostalno provjerava ranjivosti stranice

Značajan nedostatak izvješća je nepostojanje mape web aplikacije kao takve, bez koje neće biti jasno jesu li sve adrese i parametri analizirani. Također postoji mogućnost lažno pozitivnih rezultata. U našem slučaju izvješće uključuje "sigurnosne kopije datoteka" i "potencijalno opasne datoteke". Njihov broj ne odgovara stvarnosti, jer na poslužitelju nije bilo takvih datoteka:

Wapiti - samostalno provjerava ranjivosti stranice

Možda će moduli koji ne rade ispravno biti popravljeni s vremenom. Drugi nedostatak izvješća je nedostatak bojanja pronađenih ranjivosti (ovisno o njihovoj kritičnosti), ili barem njihove podjele u kategorije. Jedini način na koji neizravno možemo razumjeti kritičnost pronađene ranjivosti jest korištenje parametra --boja tijekom skeniranja, a zatim će pronađene ranjivosti biti obojene različitim bojama:

Wapiti - samostalno provjerava ranjivosti stranice

Ali samo izvješće ne daje takve boje.

Ranjivosti

SQLi

Skener se djelomično nosio s SQLi pretraživanjem. Prilikom traženja SQL ranjivosti na stranicama gdje nije potrebna provjera autentičnosti, nema problema:

Wapiti - samostalno provjerava ranjivosti stranice

Nije bilo moguće pronaći ranjivost na stranicama kojima se pristupa samo nakon autentifikacije, čak ni korištenjem valjane kolačić, budući da će najvjerojatnije nakon uspješne autentifikacije njihova sesija biti "odjavljena" i kolačić postat će 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 putem parametra -x i time spriječiti njezino pokretanje. U suprotnom, neće biti moguće isključiti njegovu obradu. To nije problem s određenim modulom, već s 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 zadanim zadatkom i pronašao sve pripremljene ranjivosti:

Wapiti - samostalno provjerava ranjivosti stranice

LFI/RFI

Skener je pronašao sve temeljne ranjivosti:

Wapiti - samostalno provjerava ranjivosti stranice

Općenito, unatoč lažnim pozitivnim rezultatima i nedostajućim ranjivostima, Wapiti, kao besplatni alat, pokazuje prilično dobre rezultate performansi. U svakom slučaju, vrijedi priznati da je skener prilično moćan, fleksibilan i višenamjenski, a što je najvažnije, besplatan je, pa se s pravom može koristiti kao pomoć administratorima i programerima u dobivanju osnovnih informacija o sigurnosnom statusu weba. primjena.

Ostanite zdravi i zaštićeni!

Izvor: www.habr.com

Dodajte komentar