Wapiti - kyk op jou eie die webwerf vir kwesbaarhede

Wapiti - kyk op jou eie die webwerf vir kwesbaarhede
In die laaste Artikel ons het oor gepraat Nemesida WAF Gratis - 'n gratis hulpmiddel om webwerwe en API's teen hacker-aanvalle te beskerm, en in hierdie een het ons besluit om 'n gewilde kwesbaarheidskandeerder te hersien Eland.

Om 'n webwerf vir kwesbaarhede te skandeer is 'n noodsaaklike maatreël, wat, tesame met die ontleding van die bronkode, jou toelaat om die vlak van sy sekuriteit teen bedreigings van kompromie te assesseer. U kan 'n webhulpbron skandeer deur gespesialiseerde gereedskap te gebruik.

Nikto, W3af (geskryf in Python 2.7, wat nie meer ondersteun word nie) of Arachni (nie meer ondersteun sedert Februarie nie) is die gewildste oplossings wat in die gratis segment aangebied word. Natuurlik is daar ander, byvoorbeeld Wapiti, waarop ons besluit het om te fokus.

Wapiti werk met die volgende tipes kwesbaarhede:

  • lêeruitbreiding (plaaslik en afgeleë, fopen, leeslêer);
  • inspuitings (PHP / JSP / ASP / SQL-inspuiting en XPath-inspuiting);
  • XSS (Cross Site Scripting) (reflektief en aanhoudend);
  • opsporing en uitvoering van opdragte (eval(), stelsel(), passtru());
  • CRLF-inspuitings (HTTP-reaksieverdeling, sessiefiksasie);
  • XXE (XML eksterne entiteit) inbedding;
  • SSRF (Server Side Request Forgery);
  • gebruik van bekende potensieel gevaarlike lêers (danksy die Nikto-databasis);
  • swak .htaccess-konfigurasies wat omseil kan word;
  • die teenwoordigheid van rugsteunlêers wat vertroulike inligting openbaar (openbaarmaking van bronkode);
  • Bomskok;
  • oop herleidings;
  • nie-standaard HTTP-metodes wat opgelos kan word (PUT).

kenmerke:

  • HTTP-, HTTPS- en SOCKS5-instaanbedienerondersteuning;
  • verifikasie met behulp van verskeie metodes: Basic, Digest, Kerberos of NTLM;
  • die vermoë om die skandeerarea (domein, gids, bladsy, URL) te beperk;
  • outomatiese verwydering van een van die parameters in die URL;
  • veelvuldige voorsorgmaatreëls teen eindelose skanderinglusse (byvoorbeeld: ifor, beperkende waardes vir 'n parameter);
  • die vermoë om 'n prioriteit te stel vir die ondersoek van URL's (selfs al is hulle nie in die skandering area nie);
  • die vermoë om sommige URL's van skandering en aanvalle uit te sluit (byvoorbeeld: URL-logout);
  • invoer koekies (kry dit met behulp van die wapiti-getcookie-nutsding);
  • vermoë om SSL-sertifikaatverifikasie te aktiveer/deaktiveer;
  • die vermoë om URL's uit JavaScript te onttrek ('n baie eenvoudige JS-tolk);
  • interaksie met HTML5;
  • verskeie opsies vir die bestuur van kruipergedrag en beperkings;
  • die instel van die maksimum tyd vir die skandering proses;
  • die byvoeging van 'n paar pasgemaakte HTTP-opskrifte of die opstel van 'n pasgemaakte gebruikersagent.

Bykomende funksies:

  • die skep van kwesbaarheidsverslae in verskeie formate (HTML, XML, JSON, TXT);
  • onderbreek en hervat 'n skandering of aanval (sessiemeganisme wat SQLite3-databasisse gebruik);
  • agtergrond in die terminale om kwesbaarhede uit te lig;
  • verskillende vlakke van aanteken;
  • 'n Vinnige en maklike manier om aanvalmodules te aktiveer/deaktiveer.

installasie

Die huidige weergawe van Wapiti kan op 2 maniere geïnstalleer word:

  • laai die bron van die amptenaar af werf en hardloop die installasie script, nadat jy voorheen Python3 geïnstalleer het;
  • gebruik die pip3 installeer wapiti3 opdrag.

Hierna sal Wapiti gereed wees om te gaan.

Werk met die gereedskap

Om die werk van Wapiti te demonstreer, sal ons 'n spesiaal voorbereide staanplek sites.vulns.pentestit.ru (interne hulpbron) gebruik wat verskeie kwesbaarhede (Inspuiting, XSS, LFI/RFI) en ander tekortkominge van webtoepassings bevat.

Die inligting word slegs vir inligtingsdoeleindes verskaf. Moenie die wet oortree nie!

Basiese opdrag om die skandeerder te begin:

# wapiti -u <target> <options>

Terselfdertyd is daar redelik gedetailleerde hulp met 'n groot aantal bekendstellingsopsies, byvoorbeeld:

--omvang - toepassingsarea
As jy die omvangparameter saam met die deurkruip-URL spesifiseer, kan jy die werf se deurkruiparea aanpas deur beide 'n enkele bladsy en alle bladsye wat op die werf gevind kan word, te spesifiseer.

-s и -x - opsies om spesifieke URL's by te voeg of te verwyder. Hierdie opsies is nuttig wanneer jy 'n spesifieke URL moet byvoeg of verwyder tydens die deurkruipproses.

--huppel — die gespesifiseerde parameter met hierdie sleutel sal geskandeer word, maar sal nie aangeval word nie. Nuttig as daar enige gevaarlike parameters is wat die beste tydens skandering uitgesluit word.

--verifieer-ssl - aktiveer of deaktiveer sertifikaatverifikasie.
Die Wapiti-skandeerder is modulêr. Om egter spesifieke modules te begin, insluitend dié wat outomaties gekoppel word terwyl die skandeerder loop, moet jy die -m skakelaar gebruik en die een lys wat jy nodig het, geskei deur kommas. As die sleutel nie gebruik word nie, sal alle modules by verstek werk. In die eenvoudigste weergawe sal dit soos volg lyk:

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

Hierdie gebruiksvoorbeeld beteken dat ons slegs die SQL-, XSS- en XXE-modules sal gebruik wanneer ons die teiken skandeer. Daarbenewens kan u die werking van modules filter, afhangende van die verlangde metode. Byvoorbeeld -m “xss: kry, blindsql: pos, xxe: pos”. In hierdie geval, die module xss sal van toepassing wees op versoeke wat met die AOO-metode gestuur word, en die module blibdsql - om versoeke te POST, ens. Terloops, as een of ander module wat in die lys ingesluit is nie nodig was tydens skandering nie of baie lank neem, dan kan u deur die Ctrl+C-kombinasie te druk oorslaan deur die huidige module te gebruik deur die ooreenstemmende item in die interaktiewe kieslys te kies.

Wapiti ondersteun om versoeke deur 'n instaanbediener deur 'n sleutel te gebruik -p en verifikasie op die teikenwebwerf deur die parameter -a. U kan ook die tipe stawing spesifiseer: Basies, Digest, Kerberos и NTLM. Die laaste twee kan die installering van bykomende modules vereis. Daarbenewens kan u enige opskrifte in versoeke invoeg (insluitend arbitrêr Gebruikersagent) en baie meer.

Om verifikasie te gebruik, kan jy die instrument gebruik wapiti-get-koekie. Met sy hulp vorm ons koekie, wat Wapiti sal gebruik tydens skandering. Vorming koekie gedoen met die opdrag:

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

Terwyl ons interaktief werk, beantwoord ons vrae en dui die nodige inligting soos login, wagwoord, ens. aan:

Wapiti - kyk op jou eie die webwerf vir kwesbaarhede

Die uitvoer is 'n lêer in JSON-formaat. Nog 'n opsie is om al die nodige inligting deur die parameter by te voeg -d:

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

Die resultaat sal soortgelyk wees:

Wapiti - kyk op jou eie die webwerf vir kwesbaarhede

By die oorweging van die hooffunksie van die skandeerder, was die finale versoek om die webtoepassing in ons geval te toets:

# 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

waar onder andere parameters:

-f и -o — formaat en pad om die verslag te stoor;

-m — die koppeling van alle modules word nie aanbeveel nie, want sal toetstyd en verslaggrootte beïnvloed;

--kleur — beklemtoon gevind kwesbaarhede afhangende van hul kritiekheid volgens Wapiti self;

-c - die gebruik van 'n lêer met koekie, gegenereer met behulp van wapiti-get-koekie;

--omvang - die keuse van 'n teiken vir aanval. Kies 'n opsie gids Elke URL sal deurkruis en aangeval word, begin met die basis een. Die basis-URL moet 'n voorwaartse skuinsstreep hê (geen lêernaam);

--spoelsessie - maak voorsiening vir herhaalde skandering, waarin vorige resultate nie in ag geneem sal word nie;

-A - eie Gebruikersagent;

-p - instaanbedieneradres, indien nodig.

'n Bietjie oor die verslag

Die skanderingsresultaat word aangebied in die vorm van 'n gedetailleerde verslag oor alle gevind kwesbaarhede in HTML-bladsy formaat, in 'n duidelike en maklik om te lees vorm. Die verslag sal die kategorieë en aantal kwesbaarhede wat gevind is, hul beskrywings, versoeke, opdragte aandui krul en wenke oor hoe om dit toe te maak. Vir gemak van navigasie, sal 'n skakel by die kategoriename gevoeg word, deur te klik waarop jy daarna kan gaan:

Wapiti - kyk op jou eie die webwerf vir kwesbaarhede

'n Beduidende nadeel van die verslag is die afwesigheid van 'n webtoepassingskaart as sodanig, waarsonder dit nie duidelik sal wees of alle adresse en parameters ontleed is nie. Daar is ook 'n moontlikheid van vals positiewe. In ons geval bevat die verslag "rugsteunlêers" en "potensieel gevaarlike lêers." Hul nommer stem nie ooreen met die werklikheid nie, aangesien daar nie sulke lêers op die bediener was nie:

Wapiti - kyk op jou eie die webwerf vir kwesbaarhede

Miskien sal foutief werkende modules mettertyd reggestel word. Nog 'n nadeel van die verslag is die gebrek aan kleur van die gevind kwesbaarhede (na gelang van hul kritiekheid), of ten minste die verdeling van hulle in kategorieë. Die enigste manier waarop ons indirek die kritiekheid van die gevind kwesbaarheid kan verstaan, is om die parameter te gebruik --kleur tydens skandering, en dan sal die kwesbaarhede wat gevind word in verskillende kleure gekleur word:

Wapiti - kyk op jou eie die webwerf vir kwesbaarhede

Maar die verslag self verskaf nie sulke kleuring nie.

Kwesbaarhede

SQLi

Die skandeerder het die SQLi-soektog gedeeltelik hanteer. Wanneer jy soek na SQL-kwesbaarhede op bladsye waar stawing nie vereis word nie, ontstaan ​​geen probleme nie:

Wapiti - kyk op jou eie die webwerf vir kwesbaarhede

Dit was nie moontlik om 'n kwesbaarheid te vind op bladsye wat slegs na verifikasie toeganklik was nie, selfs met geldige gebruik koekie, aangesien hul sessie heel waarskynlik na suksesvolle stawing "afgeteken" sal wees en koekie ongeldig sal word. As die ontmagtigingsfunksie geïmplementeer is as 'n aparte skrif wat verantwoordelik is vir die verwerking van hierdie prosedure, dan sou dit moontlik wees om dit heeltemal uit te sluit deur die -x parameter, en daardeur te verhoed dat dit aktiveer. Andersins sal dit nie moontlik wees om die verwerking daarvan uit te sluit nie. Dit is nie 'n probleem met 'n spesifieke module nie, maar met die instrument as 'n geheel, maar as gevolg van hierdie nuanse was dit nie moontlik om verskeie inspuitings in 'n geslote hulpbrongebied op te spoor nie.

XSS

Die skandeerder het die gegewe taak perfek hanteer en al die voorbereide kwesbaarhede gevind:

Wapiti - kyk op jou eie die webwerf vir kwesbaarhede

LFI/RFI

Die skandeerder het al die onderliggende kwesbaarhede gevind:

Wapiti - kyk op jou eie die webwerf vir kwesbaarhede

Oor die algemeen, ten spyte van vals positiewe en ontbrekende kwesbaarhede, toon Wapiti, as 'n gratis hulpmiddel, redelik goeie prestasieresultate. In elk geval is dit die moeite werd om te erken dat die skandeerder redelik kragtig, buigsaam en multifunksioneel is, en bowenal, dit is gratis, so dit het die reg om gebruik te word om administrateurs en ontwikkelaars te help om basiese inligting oor die sekuriteitstatus van 'n web te bekom. aansoek.

Bly gesond en beskerm!

Bron: will.com

Voeg 'n opmerking