Wapiti - gune bat ahultasunik dagoen egiaztatzea bere kabuz

Wapiti - gune bat ahultasunik dagoen egiaztatzea bere kabuz
Azkenean Artikulu buruz hitz egin dugu Nemesida WAF Doakoa - Webguneak eta APIak hackerren erasoetatik babesteko doako tresna bat, eta honetan ahultasun eskaner ezagun bat berrikustea erabaki dugu. Elk.

Webgune bat ahultasunen bila eskaneatzea beharrezko neurria da, eta, iturburu-kodea aztertzearekin batera, arrisku-mehatxuen aurrean bere segurtasun-maila ebaluatzeko aukera ematen du. Web-baliabide bat eskaneatu dezakezu tresna espezializatuak erabiliz.

Nikto, W3af (Python 2.7-n idatzia, jada onartzen ez dena) edo Arachni (jada ez da onartzen otsailetik) doako segmentuan aurkezten diren soluzio ezagunenak dira. Noski, badira beste batzuk, adibidez, Wapiti, zeinetan arreta jartzea erabaki genuen.

Wapiti ahultasun mota hauekin lan egiten du:

  • fitxategien hedapena (lokala eta urrunekoa, fopen, readfile);
  • injekzioak (PHP / JSP / ASP / SQL injekzio eta XPath injekzio);
  • XSS (Cross Site Scripting) (islatzailea eta iraunkorra);
  • komandoak hautematea eta exekuzioa (eval(), system(), passtru());
  • CRLF injekzioak (HTTP erantzunen zatiketa, saioaren finkapena);
  • XXE (XML kanpoko entitatea) txertatzea;
  • SSRF (Server Side Request Forgery);
  • arriskutsuak izan daitezkeen fitxategi ezagunak erabiltzea (Nikto datu-baseari esker);
  • saihestu daitezkeen .htaccess konfigurazio ahulak;
  • informazio konfidentziala erakusten duten babeskopien fitxategien presentzia (iturburu-kodea ezagutaraztea);
  • Shellshock;
  • birzuzenketak ireki;
  • ebatzi daitezkeen HTTP metodo ez-estandarrak (PUT).

Ezaugarriak:

  • HTTP, HTTPS eta SOCKS5 proxy laguntza;
  • autentifikazioa hainbat metodo erabiliz: Basic, Digest, Kerberos edo NTLM;
  • eskaneatzeko eremua (domeinua, karpeta, orria, URL) mugatzeko gaitasuna;
  • URLko parametroetako bat automatikoki kentzea;
  • eskaneatu amaigabeko begiztak aurre egiteko hainbat neurri (adibidez: ifor, parametro baten balio mugatzaileak);
  • URLak aztertzeko lehentasuna ezartzeko gaitasuna (nahiz eta eskaneatzeko eremuan ez egon);
  • URL batzuk eskaneatu eta erasoetatik kanpo uzteko gaitasuna (adibidez: URL saioa amaitzea);
  • cookieak inportatu (lortu wapiti-getcookie tresna erabiliz);
  • SSL ziurtagiriaren egiaztapena aktibatzeko/desaktibatzeko gaitasuna;
  • JavaScript-etik URLak ateratzeko gaitasuna (JS interprete oso sinplea);
  • HTML5 interakzioa;
  • arakatzailearen portaera eta murrizketak kudeatzeko hainbat aukera;
  • eskaneatzeko prozesurako gehienezko denbora ezartzea;
  • HTTP goiburu pertsonalizatu batzuk gehitzea edo Erabiltzaile-Agente pertsonalizatua konfiguratzea.

Ezaugarri osagarriak:

  • ahultasun-txostenak hainbat formatutan (HTML, XML, JSON, TXT) sortzea;
  • eskaneatzea edo erasoa pausatzea eta berriro hastea (saio-mekanismoa SQLite3 datu-baseak erabiliz);
  • atzeko argia terminalean ahultasunak nabarmentzeko;
  • erregistro-maila desberdinak;
  • Eraso-moduluak aktibatzeko/desaktibatzeko modu azkar eta erraz bat.

Instalazio-

Wapitiren egungo bertsioa 2 modutara instalatu daiteke:

  • deskargatu iturria ofizialetik webgune eta exekutatu instalazio-scripta, aldez aurretik Python3 instalatu ondoren;
  • pip3 install wapiti3 komandoa erabiliz.

Honen ostean, Wapiti joateko prest egongo da.

Erremintarekin lan egitea

Wapitiren lana erakusteko, site.vulns.pentestit.ru (barne baliabidea) bereziki prestatutako stand bat erabiliko dugu, hainbat ahultasun (Injection, XSS, LFI/RFI) eta web aplikazioen beste gabezi batzuk dituena.

Informazioa helburu informatiboetarako soilik ematen da. Ez hautsi legea!

Eskanerra abiarazteko oinarrizko komandoa:

# wapiti -u <target> <options>

Aldi berean, laguntza nahiko zehatza dago abiarazteko aukera ugarirekin, adibidez:

--esparrua - aplikazio eremua
Arakatze-URLarekin batera irismen-parametroa zehazten baduzu, gunearen arakatze-eremua doi dezakezu orri bakarra eta gunean aurki daitezkeen orrialde guztiak zehaztuz.

-s ΠΈ -x β€” URL zehatzak gehitzeko edo kentzeko aukerak. Aukera hauek erabilgarriak dira arakatze-prozesuan URL zehatz bat gehitu edo kendu behar duzunean.

--saltatu β€” Gako honekin zehaztutako parametroa eskaneatu egingo da, baina ez da erasotuko. Baliagarria eskaneatzean hobekien baztertzen diren parametro arriskutsuak badaude.

--egiaztatu-ssl β€” ziurtagiriaren egiaztapena gaitu edo desgaitu.
Wapiti eskanerra modularra da. Hala ere, modulu zehatzak abiarazteko, eskanerra martxan dagoen bitartean automatikoki konektatuta daudenak barne, -m etengailua erabili behar duzu eta behar dituzunak zerrendatu, komaz bereizita. Gakoa erabiltzen ez bada, modulu guztiek funtzionatuko dute lehenespenez. Bertsio sinpleenean itxura hau izango du:

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

Erabilera-adibide honek esan nahi du SQL, XSS eta XXE moduluak soilik erabiliko ditugula helburua eskaneatzen denean. Horrez gain, moduluen funtzionamendua iragazi dezakezu nahi den metodoaren arabera. Adibidez -m "xss: lortu, blindsql: mezua, xxe: argitaratu". Kasu honetan, modulua xss GET metodoa eta modulua erabiliz bidalitako eskaerei aplikatuko zaie blibdsql - POST eskaerak, etab. Bide batez, zerrendan sartutako moduluren bat eskaneatzean behar ez bada edo oso denbora luzea hartzen badu, Ctrl+C konbinazioa sakatuz uneko modulua erabiltzea salta dezakezu menu interaktiboan dagokion elementua hautatuz.

Wapiti-k eskaerak proxy baten bidez pasatzea onartzen du gako bat erabiliz -p eta helburuko gunean autentifikazioa parametroaren bidez -a. Autentifikazio mota ere zehaztu dezakezu: Oinarrizkoa, Digestioa, Kerberos ΠΈ NTLM. Azken biek modulu osagarriak instalatzea eska dezakete. Horrez gain, edozein goiburu txerta dezakezu eskaeretan (arbitrioak barne Erabiltzaile Agente) eta askoz gehiago.

Autentifikazioa erabiltzeko tresna erabil dezakezu wapiti-getcookie. Haren laguntzarekin osatzen dugu cookiea, Wapitik eskaneatzean erabiliko duena. Formakuntza cookiea komandoarekin eginda:

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

Interaktiboki lan egiten dugun bitartean, galderei erantzuten diegu eta beharrezko informazioa adierazten dugu, hala nola saioa hasteko, pasahitza, etab.:

Wapiti - gune bat ahultasunik dagoen egiaztatzea bere kabuz

Irteera JSON formatuan dagoen fitxategi bat da. Beste aukera bat parametroaren bidez beharrezko informazio guztia gehitzea da -d:

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

Emaitza antzekoa izango da:

Wapiti - gune bat ahultasunik dagoen egiaztatzea bere kabuz

Eskanerraren funtzionalitate nagusia kontuan hartuta, gure kasuan web aplikazioa probatzeko azken eskaera hau izan zen:

# 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

non beste parametro batzuen artean:

-f ΠΈ -o β€” txostena gordetzeko formatua eta bidea;

-m β€” Ez da gomendagarria modulu guztiak konektatzea, zeren azterketa denboran eta txostenaren tamainan eragina izango du;

--kolore β€” Nabarmendu aurkitutako ahultasunak haien kritikotasunaren arabera, Wapitiren beraren arabera;

-c - fitxategi bat erabiliz cookiea, erabiliz sortua wapiti-getcookie;

--esparrua β€” erasorako helburua aukeratzea. Aukera bat hautatzea karpeta URL bakoitza arakatu eta erasotuko da, oinarritik hasita. Oinarrizko URLak barra-barra izan behar du (fitxategi-izenik ez);

--flux-saio β€” behin eta berriz eskaneatzea ahalbidetzen du, eta horretan ez dira kontuan hartuko aurreko emaitzak;

-A - propioa Erabiltzaile Agente;

-p β€” Proxy zerbitzariaren helbidea, beharrezkoa bada.

Txostenari buruz pixka bat

Eskanearen emaitza HTML orri formatuan aurkitutako ahultasun guztiei buruzko txosten zehatz baten moduan aurkezten da, modu argian eta erraz irakurtzeko moduan. Txostenean aurkitutako ahultasunen kategoriak eta kopurua, haien deskribapenak, eskaerak, komandoak adieraziko dira curl eta horiek ixteko aholkuak. Nabigazioa errazteko, esteka bat gehituko zaie kategorien izenei, eta bertan joan zaitezke klik eginez:

Wapiti - gune bat ahultasunik dagoen egiaztatzea bere kabuz

Txostenaren desabantaila esanguratsu bat web-aplikazioen maparik ez izatea da, eta hori gabe ez da argituko helbide eta parametro guztiak aztertu diren ala ez. Positibo faltsuak izateko aukera ere badago. Gure kasuan, txostenak "backup fitxategiak" eta "arriskutsuak izan daitezkeen fitxategiak" biltzen ditu. Haien kopurua ez dator bat errealitatearekin, zerbitzarian horrelako fitxategirik ez zegoelako:

Wapiti - gune bat ahultasunik dagoen egiaztatzea bere kabuz

Beharbada gaizki funtzionatzen duten moduluak denborarekin konponduko dira. Txostenaren beste eragozpen bat aurkitutako ahultasunen kolorerik ez izatea da (kritikotasunaren arabera), edo, gutxienez, kategorietan banatzea. Aurkitutako ahultasunaren kritikotasuna zeharka ulertzeko modu bakarra parametroa erabiltzea da --kolore eskaneatzean, eta orduan aurkitutako ahuleziak kolore ezberdinetan margotuko dira:

Wapiti - gune bat ahultasunik dagoen egiaztatzea bere kabuz

Baina txostenak berak ez du halako kolorerik ematen.

Ahultasunak

SQLi

Eskanerrak partzialki egin zion aurre SQLi bilaketari. Autentifikazioa behar ez den orrietan SQL ahultasunak bilatzean, ez da arazorik sortzen:

Wapiti - gune bat ahultasunik dagoen egiaztatzea bere kabuz

Ezin izan da autentifikazioaren ondoren soilik eskura daitezkeen orrialdeetan ahultasunik aurkitu, baliozko erabilita ere cookiea, ziurrenik autentifikazio arrakastatsuaren ondoren, haien saioa "saioa amaitu" egingo da eta cookiea baliogabe geratuko da. Desbaimenaren funtzioa prozedura hau prozesatzeko ardura duen script bereizi gisa ezarriko balitz, orduan posible izango litzateke guztiz baztertzea -x parametroaren bidez, eta horrela abiarazterik ez izatea. Bestela, ezin izango da haren tratamendua baztertu. Hau ez da modulu zehatz baten arazoa, tresna osoarekin baizik, baina Γ±abardura hori dela eta, ezin izan da hainbat injekzio detektatu baliabide itxi batean.

XSS

Eskanerrak primeran egin zion aurre emandako zereginari eta prestaturiko ahultasun guztiak aurkitu zituen:

Wapiti - gune bat ahultasunik dagoen egiaztatzea bere kabuz

LFI/RFI

Eskanerrak azpiko ahultasun guztiak aurkitu zituen:

Wapiti - gune bat ahultasunik dagoen egiaztatzea bere kabuz

Orokorrean, positibo faltsuak eta ahuleziak falta diren arren, Wapitik, doako tresna gisa, errendimendu emaitza nahiko onak erakusten ditu. Nolanahi ere, merezi du aitortzea eskanerra nahiko indartsua, malgua eta funtzio anitzekoa dela, eta, batez ere, doakoa dela, beraz, administratzaile eta garatzaileei web baten segurtasun-egoerari buruzko oinarrizko informazioa eskuratzen laguntzeko eskubidea duela. aplikazio.

Egon osasuntsu eta babestuta!

Iturria: www.habr.com

Gehitu iruzkin berria