Wapiti - sivuston haavoittuvuuksien tarkistaminen

Wapiti - sivuston haavoittuvuuksien tarkistaminen
Viimeisessä статье me puhuimme Nemesida WAF ilmainen - ilmainen työkalu verkkosivustojen ja API:iden suojaamiseen hakkerihyökkäyksiltä, ​​ja tässä päätimme tarkastella suosittua haavoittuvuusskanneria kanadanhirvi.

Verkkosivuston haavoittuvuuksien tarkistaminen on välttämätön toimenpide, jonka avulla voit yhdessä lähdekoodin analyysin kanssa arvioida sen suojaustasoa vaarantumisuhkia vastaan. Voit skannata verkkoresurssin erikoistyökaluilla.

Nikto, W3af (kirjoitettu Python 2.7:ssä, jota ei enää tueta) tai Arachni (ei enää tuettu helmikuusta lähtien) ovat suosituimpia ilmaisen segmentin ratkaisuja. Tietysti on muitakin, esimerkiksi Wapiti, johon päätimme keskittyä.

Wapiti toimii seuraavan tyyppisten haavoittuvuuksien kanssa:

  • tiedostonlaajennus (paikallinen ja kauko, fopen, readfile);
  • injektiot (PHP / JSP / ASP / SQL-injektio ja XPath-injektio);
  • XSS (Cross Site Scripting) (heijastava ja pysyvä);
  • komentojen havaitseminen ja suorittaminen (eval(), system(), passtru());
  • CRLF-injektiot (HTTP-vasteen jakaminen, istunnon kiinnitys);
  • XXE (ulkoinen XML-yksikkö) upottaminen;
  • SSRF (Server Side Request Forgery);
  • tunnettujen mahdollisesti vaarallisten tiedostojen käyttö (Nikto-tietokannan ansiosta);
  • heikot .htaccess-kokoonpanot, jotka voidaan ohittaa;
  • luottamuksellisia tietoja paljastavien varmuuskopiotiedostojen olemassaolo (lähdekoodin paljastaminen);
  • Shellshock;
  • avoimet uudelleenohjaukset;
  • ei-standardi HTTP-menetelmät, jotka voidaan ratkaista (PUT).

ominaisuudet:

  • HTTP-, HTTPS- ja SOCKS5-välityspalvelintuki;
  • todennus useilla menetelmillä: Basic, Digest, Kerberos tai NTLM;
  • kyky rajoittaa skannausaluetta (verkkotunnus, kansio, sivu, URL-osoite);
  • yhden URL-osoitteen parametrien automaattinen poistaminen;
  • useita varotoimia loputtomia skannaussilmukoita vastaan ​​(esimerkki: ifor, parametrin raja-arvot);
  • kyky asettaa prioriteetti URL-osoitteiden tutkimiselle (vaikka ne eivät olisikaan tarkistusalueella);
  • kyky sulkea jotkin URL-osoitteet pois tarkistuksesta ja hyökkäyksistä (esimerkiksi: URL-uloskirjautuminen);
  • tuoda evästeet (hankkia ne wapiti-getcookie -työkalulla);
  • kyky aktivoida/deaktivoida SSL-varmenteen vahvistus;
  • kyky purkaa URL-osoitteita JavaScriptistä (hyvin yksinkertainen JS-tulkki);
  • vuorovaikutus HTML5:n kanssa;
  • useita vaihtoehtoja indeksointirobotin käyttäytymisen ja rajoitusten hallintaan;
  • skannausprosessin enimmäisajan asettaminen;
  • lisäämällä mukautettuja HTTP-otsikoita tai määrittämällä mukautetun User-Agentin.

Lisäominaisuudet:

  • haavoittuvuusraporttien luominen eri muodoissa (HTML, XML, JSON, TXT);
  • tarkistuksen tai hyökkäyksen keskeyttäminen ja jatkaminen (istuntomekanismi SQLite3-tietokantoja käyttäen);
  • terminaalin taustavalo haavoittuvuuksien korostamiseksi;
  • eri tasoiset hakkuut;
  • Nopea ja helppo tapa aktivoida/deaktivoida hyökkäysmoduuleja.

Asennus

Wapitin nykyinen versio voidaan asentaa kahdella tavalla:

  • lataa lähde viralliselta sivulta paikka ja suorita asennuskomentosarja, kun olet aiemmin asentanut Python3:n;
  • käyttämällä pip3 install wapiti3 -komentoa.

Tämän jälkeen Wapiti on valmis lähtöön.

Työskentely työkalun kanssa

Wapitin työn esittelyyn käytämme erityisesti valmistettua osastoa sites.vulns.pentestit.ru (sisäinen resurssi), joka sisältää erilaisia ​​haavoittuvuuksia (Injection, XSS, LFI/RFI) ja muita verkkosovellusten puutteita.

Tiedot annetaan vain tiedoksi. Älä riko lakia!

Peruskomento skannerin käynnistämiseksi:

# wapiti -u <target> <options>

Samaan aikaan on melko yksityiskohtaista apua valtavalla määrällä käynnistysvaihtoehtoja, esimerkiksi:

--laajuus - sovellusalue
Jos määrität laajuusparametrin indeksoinnin URL-osoitteen kanssa, voit säätää sivuston indeksointialuetta määrittämällä sekä yhden sivun että kaikki sivustolta löytyvät sivut.

-s и -x — vaihtoehdot tiettyjen URL-osoitteiden lisäämiseen tai poistamiseen. Nämä vaihtoehdot ovat hyödyllisiä, kun sinun on lisättävä tai poistettava tietty URL-osoite indeksointiprosessin aikana.

-- Ohita — tällä avaimella määritetty parametri tarkistetaan, mutta siihen ei hyökätä. Hyödyllinen, jos on olemassa vaarallisia parametreja, jotka on parasta sulkea pois skannauksen aikana.

--verify-ssl — ota käyttöön tai poista käytöstä varmenteen tarkistus.
Wapiti-skanneri on modulaarinen. Kuitenkin, jos haluat käynnistää tiettyjä moduuleja, mukaan lukien ne, jotka yhdistetään automaattisesti skannerin ollessa käynnissä, sinun on käytettävä -m-kytkintä ja lueteltava tarvitsemasi moduulit pilkuilla erotettuina. Jos avainta ei käytetä, kaikki moduulit toimivat oletusarvoisesti. Yksinkertaisimmassa versiossa se näyttää tältä:

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

Tämä käyttöesimerkki tarkoittaa, että käytämme vain SQL-, XSS- ja XXE-moduuleja skannattaessa kohdetta. Lisäksi voit suodattaa moduulien toimintaa halutun menetelmän mukaan. Esimerkiksi -m “xss: get, blindsql: post, xxe: post”. Tässä tapauksessa moduuli XSS sovelletaan GET-menetelmällä lähetettyihin pyyntöihin ja moduuliin blibdsql - POST-pyyntöihin jne. Muuten, jos jotakin luettelossa olevaa moduulia ei tarvittu skannauksen aikana tai kestää hyvin kauan, Ctrl+C-yhdistelmää painamalla voit ohittaa nykyisen moduulin käytön valitsemalla vastaavan kohdan interaktiivisesta valikosta.

Wapiti tukee pyyntöjen välittämistä välityspalvelimen kautta avaimella -p ja todennus kohdesivustolla parametrin kautta -a. Voit myös määrittää todennustyypin: Perus, Sulattaa, Kerberos и NTLM. Kaksi viimeistä saattavat edellyttää lisämoduulien asentamista. Lisäksi voit lisätä pyyntöihin mitä tahansa otsikoita (mukaan lukien mielivaltaiset User-Agent) ja paljon enemmän.

Voit käyttää todennusta työkalun avulla wapati-getcookie. Sen avulla muodostamme pikkuleipä, jota Wapiti käyttää skannattaessa. Muodostus pikkuleipä tehty komennolla:

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

Vuorovaikutteisessa työskentelyssä vastaamme kysymyksiin ja ilmoitamme tarvittavat tiedot, kuten kirjautumistunnuksen, salasanan jne.:

Wapiti - sivuston haavoittuvuuksien tarkistaminen

Tulos on JSON-muodossa oleva tiedosto. Toinen vaihtoehto on lisätä kaikki tarvittavat tiedot parametrin kautta -d:

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

Tulos on samanlainen:

Wapiti - sivuston haavoittuvuuksien tarkistaminen

Tarkasteltaessa skannerin päätoimintoja, viimeinen pyyntö verkkosovelluksen testaamiseksi tapauksessamme oli:

# 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

missä muiden parametrien joukossa:

-f и -o — raportin tallennusmuoto ja polku;

-m — kaikkien moduulien kytkemistä ei suositella, koska vaikuttaa testausaikaan ja raportin kokoon;

--väri — Korosta löydetyt haavoittuvuudet niiden kriittisyyden mukaan Wapitin itsensä mukaan;

-c - käyttämällä tiedostoa pikkuleipä, luotu käyttämällä wapati-getcookie;

--laajuus - hyökkäyksen kohteen valinta. Vaihtoehtojen valitseminen kansio Jokainen URL-osoite indeksoidaan ja niihin hyökätään, alkaen perusosoitteesta. Perus-URL-osoitteessa on oltava vinoviiva (ei tiedostonimeä);

--huuhteluistunto — mahdollistaa toistuvan skannauksen, jossa aikaisempia tuloksia ei oteta huomioon;

-A - omaa User-Agent;

-p — välityspalvelimen osoite tarvittaessa.

Vähän raportista

Skannaustulos esitetään yksityiskohtaisen raportin muodossa kaikista löydetyistä haavoittuvuuksista HTML-sivumuodossa selkeässä ja helposti luettavassa muodossa. Raportissa ilmoitetaan löydettyjen haavoittuvuuksien luokat ja lukumäärä, niiden kuvaukset, pyynnöt ja komennot kiemura ja vinkkejä niiden sulkemiseen. Luokkien nimiin lisätään navigoinnin helpottamiseksi linkki, jota klikkaamalla pääset siihen:

Wapiti - sivuston haavoittuvuuksien tarkistaminen

Raportin merkittävä haittapuoli on sellaisen web-sovelluskartan puuttuminen, jota ilman ei ole selvää, onko kaikki osoitteet ja parametrit analysoitu. Myös väärien positiivisten tulosten mahdollisuus on olemassa. Meidän tapauksessamme raportti sisältää "varmuuskopiotiedostot" ja "mahdollisesti vaaralliset tiedostot". Niiden lukumäärä ei vastaa todellisuutta, koska palvelimella ei ollut tällaisia ​​tiedostoja:

Wapiti - sivuston haavoittuvuuksien tarkistaminen

Ehkä väärin toimivat moduulit korjataan ajan myötä. Toinen raportin haittapuoli on löydettyjen haavoittuvuuksien värityksen puute (riippuen niiden kriittisyydestä) tai ainakin niiden jakaminen luokkiin. Ainoa tapa, jolla voimme epäsuorasti ymmärtää löydetyn haavoittuvuuden kriittisyyttä, on käyttää parametria --väri skannauksen aikana, ja sitten löydetyt haavoittuvuudet värjätään eri väreillä:

Wapiti - sivuston haavoittuvuuksien tarkistaminen

Mutta itse raportti ei tarjoa tällaista väritystä.

Haavoittuvuudet

SQLi

Skanneri selviytyi osittain SQLi-hausta. Kun etsit SQL-haavoittuvuuksia sivuilta, joilla todennusta ei vaadita, ongelmia ei ilmene:

Wapiti - sivuston haavoittuvuuksien tarkistaminen

Haavoittuvuutta ei voitu löytää sivuilta, joihin pääsee vain todennuksen jälkeen, edes validia käyttämällä pikkuleipä, koska todennäköisesti onnistuneen todennuksen jälkeen heidän istuntonsa "kirjataan ulos" ja pikkuleipä tulee mitättömäksi. Jos valtuutuksenpoistotoiminto toteutettaisiin erillisenä komentosarjana, joka vastaa tämän menettelyn käsittelystä, se olisi mahdollista sulkea kokonaan pois -x-parametrin kautta ja siten estää sen laukaisu. Muuten sen käsittelyä ei voida sulkea pois. Tämä ei ole ongelma tietyssä moduulissa, vaan koko työkalussa, mutta tämän vivahteen vuoksi ei ollut mahdollista havaita useita injektioita suljetulla resurssialueella.

XSS

Skanneri selviytyi annetusta tehtävästä täydellisesti ja löysi kaikki valmistetut haavoittuvuudet:

Wapiti - sivuston haavoittuvuuksien tarkistaminen

LFI/RFI

Skanneri löysi kaikki taustalla olevat haavoittuvuudet:

Wapiti - sivuston haavoittuvuuksien tarkistaminen

Yleisesti ottaen, vääristä positiivisista tuloksista ja puuttuvista haavoittuvuuksista huolimatta, Wapiti ilmaisena työkaluna näyttää melko hyviä suorituskykytuloksia. Joka tapauksessa on syytä huomata, että skanneri on varsin tehokas, joustava ja monikäyttöinen, ja mikä tärkeintä, se on ilmainen, joten sillä on oikeus käyttää apuna järjestelmänvalvojia ja kehittäjiä hankkimaan perustietoja verkon suojaustilasta. sovellus.

Pysy terveenä ja suojattuna!

Lähde: will.com

Lisää kommentti