Naprej pogovor o uporabnih orodjih za pentesterje. V novem članku si bomo ogledali orodja za analizo varnosti spletnih aplikacij.
Naš kolega BeLove Nekaj takega sem že naredil kompilacija pred približno sedmimi leti. Zanimivo je videti, katera orodja so obdržala in utrdila svoje položaje, katera pa so zbledela v ozadju in se redko uporabljajo.
Upoštevajte, da to vključuje tudi Burp Suite, vendar bo o njem in njegovih uporabnih vtičnikih na voljo ločena publikacija.
Amass - orodje Go za iskanje in naštevanje poddomen DNS ter preslikavo zunanjega omrežja. Amass je projekt OWASP, zasnovan tako, da pokaže, kakšne so organizacije na internetu zunanjim osebam. Amass pridobiva imena poddomen na različne načine; orodje uporablja tako rekurzivno oštevilčenje poddomen kot odprtokodno iskanje.
Za odkrivanje medsebojno povezanih omrežnih segmentov in avtonomnih sistemskih številk Amass uporablja naslove IP, pridobljene med delovanjem. Vse najdene informacije se uporabijo za izdelavo zemljevida omrežja.
Profesionalci:
Tehnike zbiranja informacij vključujejo:
* DNS - slovarsko iskanje poddomen, bruteforce poddomen, pametno iskanje z uporabo mutacij na podlagi najdenih poddomen, povratne DNS poizvedbe in iskanje DNS strežnikov, kjer je možno narediti zahtevo za prenos cone (AXFR);
Bodite previdni pri amass.netdomains – poskusil bo vzpostaviti stik z vsakim naslovom IP v identificirani infrastrukturi in pridobiti imena domen iz povratnih iskanj DNS in potrdil TLS. To je "odmevna" tehnika, ki lahko razkrije vaše obveščevalne dejavnosti v preiskovani organizaciji.
Velika poraba pomnilnika, lahko porabi do 2 GB RAM-a v različnih nastavitvah, kar vam ne bo omogočilo zagona tega orodja v oblaku na poceni VDS.
Altdns
Altdns — orodje Python za sestavljanje slovarjev za naštevanje poddomen DNS. Omogoča ustvarjanje številnih različic poddomen z uporabo mutacij in permutacij. Za to se uporabljajo besede, ki jih pogosto najdemo v poddomenah (na primer: test, dev, staging), vse mutacije in permutacije pa se uporabijo za že znane poddomene, ki jih lahko oddate na vnos Altdns. Rezultat je seznam različic poddomen, ki lahko obstajajo, in ta seznam se lahko kasneje uporabi za grobo silo DNS.
Profesionalci:
Dobro deluje z velikimi nabori podatkov.
akvaton
akvaton - je bil prej bolj poznan kot še eno orodje za iskanje poddomen, vendar se je avtor sam temu odpovedal v korist prej omenjenega Amassa. Zdaj je bil aquatone na novo napisan v Go in je bolj usmerjen k predhodnemu izvidovanju na spletnih mestih. Za to gre aquatone skozi določene domene in išče spletna mesta na različnih vratih, nato pa zbere vse informacije o spletnem mestu in naredi posnetek zaslona. Priročno za hitro predhodno izvidovanje spletnih mest, po katerem lahko izberete prednostne cilje za napade.
Profesionalci:
Izhod ustvari skupino datotek in map, ki jih je priročno uporabljati pri nadaljnjem delu z drugimi orodji:
* Poročilo HTML z zbranimi posnetki zaslona in naslovi odgovorov, razvrščenimi po podobnosti;
* Datoteka z vsemi URL-ji, kjer so bile najdene spletne strani;
* Datoteka s statistiko in podatki strani;
* Mapa z datotekami, ki vsebujejo glave odgovorov iz najdenih ciljev;
* Mapa z datotekami, ki vsebujejo telo odgovora najdenih ciljev;
* Posnetki zaslona najdenih spletnih mest;
Podpira delo s poročili XML iz Nmap in Masscan;
Za upodabljanje posnetkov zaslona uporablja brezglavi Chrome/Chromium.
Cons:
Lahko pritegne pozornost sistemov za zaznavanje vdorov, zato zahteva konfiguracijo.
Posnetek zaslona je narejen za eno od starih različic aquatone (v0.5.0), v kateri je implementirano iskanje poddomen DNS. Starejše različice najdete na stran za objave.
MassDNS
MassDNS je še eno orodje za iskanje poddomen DNS. Njegova glavna razlika je v tem, da postavlja poizvedbe DNS neposredno številnim različnim razreševalcem DNS in to zelo hitro.
Profesionalci:
Hiter - zmožen razrešiti več kot 350 tisoč imen na sekundo.
Cons:
MassDNS lahko povzroči znatno obremenitev uporabljenih razreševalcev DNS, kar lahko privede do prepovedi teh strežnikov ali pritožb pri vašem ponudniku internetnih storitev. Poleg tega bo močno obremenilo DNS strežnike podjetja, če jih imajo in če so odgovorni za domene, ki jih poskušate razrešiti.
Seznam razreševalcev je trenutno zastarel, a če izberete pokvarjene razreševalnike DNS in dodate nove znane, bo vse v redu.
Posnetek zaslona aquatone v0.5.0
nsec3map
nsec3map je orodje Python za pridobitev celotnega seznama domen, zaščitenih z DNSSEC.
Profesionalci:
Hitro odkrije gostitelje v conah DNS z najmanjšim številom poizvedb, če je v coni omogočena podpora DNSSEC;
Vključuje vtičnik za Johna Razparača, ki ga je mogoče uporabiti za razbijanje nastalih zgoščenih vrednosti NSEC3.
Cons:
Številne napake DNS se ne obravnavajo pravilno;
Samodejne paralelizacije obdelave zapisov NSEC ni - imenski prostor morate razdeliti ročno;
Velika poraba pomnilnika.
Acunetix
Acunetix — skener spletnih ranljivosti, ki avtomatizira postopek preverjanja varnosti spletnih aplikacij. Preizkuša aplikacijo za vbrizgavanje SQL, XSS, XXE, SSRF in številne druge spletne ranljivosti. Vendar, tako kot kateri koli drug skener, različne spletne ranljivosti ne nadomestijo pentestra, saj ne more najti zapletenih verig ranljivosti ali ranljivosti v logiki. Pokriva pa veliko različnih ranljivosti, vključno z različnimi CVE-ji, na katere je pentester morda pozabil, zato je zelo priročen, da vas osvobodi rutinskih pregledov.
Profesionalci:
Nizka stopnja lažno pozitivnih rezultatov;
Rezultate je mogoče izvoziti kot poročila;
Izvaja veliko število pregledov za različne ranljivosti;
Vzporedno skeniranje več gostiteljev.
Cons:
Ni algoritma za deduplikacijo (Acunetix bo strani, ki so po funkcionalnosti enake, obravnaval kot različne, ker vodijo do različnih URL-jev), vendar razvijalci delajo na tem;
Zahteva namestitev na ločenem spletnem strežniku, kar otežuje testiranje odjemalskih sistemov s povezavo VPN in uporabo skenerja v izoliranem segmentu lokalnega odjemalskega omrežja;
Storitev, ki jo preučujemo, lahko povzroča hrup, na primer s pošiljanjem preveč napadalnih vektorjev na kontaktni obrazec na spletnem mestu, kar močno zaplete poslovne procese;
Je lastniška in zato ni brezplačna rešitev.
Dirsearch
Dirsearch — orodje Python za surovo vsiljevanje imenikov in datotek na spletnih mestih.
Profesionalci:
Lahko razlikuje prave strani »200 OK« od strani »200 OK«, vendar z besedilom »stran ni najdena«;
Priložen je priročen slovar, ki ima dobro razmerje med velikostjo in učinkovitostjo iskanja. Vsebuje standardne poti, ki so skupne mnogim CMS in tehnološkim nizom;
Lasten format slovarja, ki omogoča doseganje dobre učinkovitosti in prilagodljivosti pri naštevanju datotek in imenikov;
Priročen izpis - golo besedilo, JSON;
Lahko naredi dušenje - premor med zahtevami, ki je ključnega pomena za vsako šibko storitev.
Cons:
Razširitve je treba posredovati kot niz, kar je neprijetno, če morate posredovati več razširitev hkrati;
Če želite uporabljati svoj slovar, ga boste morali za največjo učinkovitost nekoliko spremeniti v obliko slovarja Dirsearch.
wfuzz
wfuzz - Python spletna aplikacija fuzzer. Verjetno eden najbolj znanih spletnih fazarjev. Načelo je preprosto: wfuzz vam omogoča, da postopno razdelite katero koli mesto v zahtevi HTTP, kar omogoča postopno razdeljevanje parametrov GET/POST, glav HTTP, vključno s piškotki in drugimi glavami za preverjanje pristnosti. Hkrati je priročen tudi za preprosto surovo uporabo imenikov in datotek, za kar potrebujete dober slovar. Ima tudi prilagodljiv sistem filtrov, s katerim lahko filtrirate odzive s spletne strani glede na različne parametre, kar vam omogoča doseganje učinkovitih rezultatov.
Profesionalci:
Večnamenska - modularna struktura, montaža traja nekaj minut;
Priročen mehanizem za filtriranje in fuzzing;
Fazno lahko določite katero koli metodo HTTP, pa tudi katero koli mesto v zahtevi HTTP.
Cons:
V razvoju.
ffuf
ffuf — spletni fuzzer v Go, ustvarjen po »podobi in podobnosti« wfuzza, omogoča surovo obdelavo datotek, imenikov, poti URL-jev, imen in vrednosti parametrov GET/POST, glav HTTP, vključno z glavo gostitelja za surovo uporabo virtualnih gostiteljev. wfuzz se od svojega brata razlikuje po višji hitrosti in nekaterih novih funkcijah, na primer podpira slovarje formata Dirsearch.
Omogoča zamegljevanje vrednosti glave HTTP, podatkov zahteve POST in različnih delov URL-ja, vključno z imeni in vrednostmi parametrov GET;
Določite lahko katero koli metodo HTTP.
Cons:
V razvoju.
gobuster
gobuster — orodje Go za izvidovanje, ima dva načina delovanja. Prvi se uporablja za bruteforce datotek in imenikov na spletnem mestu, drugi pa za bruteforce poddomen DNS. Orodje na začetku ne podpira rekurzivnega naštevanja datotek in imenikov, kar seveda prihrani čas, po drugi strani pa je treba brute force vsake nove končne točke na spletni strani zagnati posebej.
Profesionalci:
Visoka hitrost delovanja tako za surovo iskanje poddomen DNS kot tudi za surovo iskanje datotek in imenikov.
Cons:
Trenutna različica ne podpira nastavitve glav HTTP;
Privzeto veljajo samo nekatere statusne kode HTTP (200,204,301,302,307).
Arjun
Arjun - orodje za brutalno uporabo skritih HTTP parametrov v parametrih GET/POST, kot tudi v JSON. Vgrajeni slovar ima 25 besed, ki jih Ajrun preveri v skoraj 980 sekundah. Trik je v tem, da Ajrun ne preverja vsakega parametra posebej, ampak preveri ~30 parametrov hkrati in vidi, ali se je odgovor spremenil. Če se je odgovor spremenil, teh 1000 parametrov razdeli na dva dela in preveri, kateri od teh delov vpliva na odgovor. Tako se s preprostim binarnim iskanjem najde parameter ali več skritih parametrov, ki so vplivali na odgovor in zato lahko obstajajo.
Profesionalci:
Visoka hitrost zaradi binarnega iskanja;
Podpora za parametre GET/POST, kot tudi parametre v obliki JSON;
Vtičnik za Burp Suite deluje po podobnem principu - param-rudar, ki je tudi zelo dober pri iskanju skritih parametrov HTTP. Več o tem vam bomo povedali v prihajajočem članku o Burpu in njegovih vtičnikih.
LinkFinder
LinkFinder — skript Python za iskanje povezav v datotekah JavaScript. Uporabno za iskanje skritih ali pozabljenih končnih točk/URL-jev v spletni aplikaciji.
Profesionalci:
Hitro;
Obstaja poseben vtičnik za Chrome, ki temelji na LinkFinderju.
.
Cons:
Neprijeten končni zaključek;
Ne analizira JavaScript skozi čas;
Precej preprosta logika za iskanje povezav - če je JavaScript nekako zamegljen ali pa povezave na začetku manjkajo in se generirajo dinamično, potem ne bo mogel najti ničesar.
JSParser
JSParser je skript Python, ki uporablja Tornado и JSBeautifier za razčlenitev relativnih URL-jev iz datotek JavaScript. Zelo uporabno za zaznavanje zahtev AJAX in sestavljanje seznama metod API, s katerimi aplikacija komunicira. Učinkovito deluje v povezavi s LinkFinderjem.
Profesionalci:
Hitro razčlenjevanje datotek JavaScript.
sqlmap
sqlmap je verjetno eno najbolj znanih orodij za analizo spletnih aplikacij. Sqlmap avtomatizira iskanje in delovanje vbrizgavanj SQL, deluje z več narečji SQL in ima v svojem arzenalu ogromno različnih tehnik, od narekovajev do zapletenih vektorjev za časovno zasnovane vbrizgave SQL. Poleg tega ima veliko tehnik za nadaljnje izkoriščanje za različne DBMS-je, zato ni uporaben samo kot skener za vbrizgavanje SQL, ampak tudi kot močno orodje za izkoriščanje že najdenih vbrizganj SQL.
Profesionalci:
Veliko število različnih tehnik in vektorjev;
Majhno število lažno pozitivnih rezultatov;
Veliko možnosti natančnega prilagajanja, različne tehnike, ciljna zbirka podatkov, skripte za poseganje v obhod WAF;
Sposobnost ustvarjanja izhodnega dumpa;
Veliko različnih operativnih zmogljivosti, na primer za nekatere baze podatkov - samodejno nalaganje / razkladanje datotek, pridobitev zmožnosti izvajanja ukazov (RCE) in drugo;
Podpora za neposredno povezavo z bazo podatkov z uporabo podatkov, pridobljenih med napadom;
Kot vhod lahko predložite besedilno datoteko z rezultati Burpa - ni vam treba ročno sestaviti vseh atributov ukazne vrstice.
Cons:
Težko je prilagoditi, na primer, pisanje nekaterih svojih čekov zaradi redke dokumentacije za to;
Brez ustreznih nastavitev izvaja nepopoln nabor preverjanj, kar je lahko zavajajoče.
NoSQLMap
NoSQLMap — orodje Python za avtomatizacijo iskanja in izkoriščanja vbrizganj NoSQL. Primeren je za uporabo ne samo v bazah podatkov NoSQL, ampak tudi neposredno pri revidiranju spletnih aplikacij, ki uporabljajo NoSQL.
Profesionalci:
Tako kot sqlmap ne samo najde morebitno ranljivost, ampak tudi preveri možnost njenega izkoriščanja za MongoDB in CouchDB.
Cons:
Ne podpira NoSQL za Redis, Cassandra, razvoj poteka v tej smeri.
oxml_xxe
oxml_xxe — orodje za vdelavo izkoriščanja XXE XML v različne vrste datotek, ki v neki obliki uporabljajo format XML.
Profesionalci:
Podpira veliko pogostih formatov, kot so DOCX, ODT, SVG, XML.
Cons:
Podpora za PDF, JPEG, GIF ni v celoti implementirana;
Ustvari samo eno datoteko. Za rešitev te težave lahko uporabite orodje docem, ki lahko ustvari veliko število koristnih datotek na različnih mestih.
Zgornji pripomočki odlično preizkušajo XXE pri nalaganju dokumentov, ki vsebujejo XML. Upoštevajte pa tudi, da lahko upravljalnike formatov XML najdete v številnih drugih primerih, na primer XML lahko uporabite kot format podatkov namesto JSON.
Zato priporočamo, da ste pozorni na naslednji repozitorij, ki vsebuje veliko število različnih uporabnih obremenitev: PayloadsAllTheThings.
tplmap
tplmap - orodje Python za samodejno prepoznavanje in izkoriščanje ranljivosti vbrizgavanja predloge na strani strežnika; ima nastavitve in zastavice, podobne sqlmap. Uporablja več različnih tehnik in vektorjev, vključno s slepim vbrizgavanjem, ima pa tudi tehnike za izvajanje kode in nalaganje/nalaganje poljubnih datotek. Poleg tega ima v svojem arzenalu tehnike za ducat različnih mehanizmov predlog in nekaj tehnik za iskanje eval() podobnih vbrizganj kode v Python, Ruby, PHP, JavaScript. Če je uspešen, odpre interaktivno konzolo.
Profesionalci:
Veliko število različnih tehnik in vektorjev;
Podpira številne mehanizme za upodabljanje predlog;
Veliko operacijskih tehnik.
CeWL
CeWL - generator slovarjev v Rubyju, ustvarjen za pridobivanje edinstvenih besed z določenega spletnega mesta, sledi povezavam na spletnem mestu do določene globine. Prevedeni slovar edinstvenih besed se lahko kasneje uporabi za brutalno vsiljevanje gesel v storitvah ali surovo vsiljevanje datotek in imenikov na istem spletnem mestu ali za napad na nastale zgoščene vrednosti z uporabo hashcat ali John the Ripper. Uporabno pri sestavljanju »ciljnega« seznama možnih gesel.
Profesionalci:
Enostaven za uporabo.
Cons:
Pri globini iskanja morate biti previdni, da ne zajamete dodatne domene.
Weakpass
Weakpass - storitev, ki vsebuje veliko slovarjev z edinstvenimi gesli. Izjemno uporabno za različna opravila, povezana z razbijanjem gesel, od preproste spletne surove sile računov na ciljnih storitvah do off-line brutalne sile prejetih zgoščenih vrednosti hashcat ali John The Ripper. Vsebuje približno 8 milijard gesel, dolgih od 4 do 25 znakov.
Profesionalci:
Vsebuje specifične slovarje in slovarje z najpogostejšimi gesli - lahko izberete določen slovar za svoje potrebe;
Slovarji se posodabljajo in polnijo z novimi gesli;
Slovarji so razvrščeni po učinkovitosti. Izberete lahko možnost tako za hitro spletno brutalno silo kot za podrobno izbiro gesel iz obsežnega slovarja z najnovejšimi uhajanji;
Obstaja kalkulator, ki prikazuje čas, potreben za brisanje gesel na vaši opremi.
V posebno skupino želimo uvrstiti orodja za CMS preglede: WPScan, JoomScan in AEM hacker.
AEM_heker
AEM heker je orodje za prepoznavanje ranljivosti v aplikacijah Adobe Experience Manager (AEM).
Profesionalci:
Lahko prepozna aplikacije AEM s seznama URL-jev, ki so bili poslani na njegov vnos;
Vsebuje skripte za pridobivanje RCE z nalaganjem lupine JSP ali izkoriščanjem SSRF.
JoomScan
JoomScan — Perl orodje za avtomatsko odkrivanje ranljivosti pri uvajanju Joomla CMS.
Profesionalci:
Sposoben najti napake v konfiguraciji in težave z administrativnimi nastavitvami;
Navaja različice Joomla in z njimi povezane ranljivosti, podobno za posamezne komponente;
Vsebuje več kot 1000 podvigov za komponente Joomla;
Izpis končnih poročil v besedilni in HTML obliki.
WPScan
WPScan - orodje za skeniranje spletnih mest WordPress, ima v svojem arzenalu ranljivosti tako za sam mehanizem WordPress kot za nekatere vtičnike.
Profesionalci:
Sposoben navajati ne samo nevarne WordPress vtičnike in teme, ampak tudi pridobiti seznam uporabnikov in datotek TimThumb;
Lahko izvaja napade s surovo silo na spletnih mestih WordPress.
Cons:
Brez ustreznih nastavitev izvaja nepopoln nabor preverjanj, kar je lahko zavajajoče.
Na splošno imajo različni ljudje raje različna orodja za delo: vsa so dobra na svoj način in tisto, kar je nekomu všeč, drugemu morda sploh ne ustreza. Če menite, da smo po krivici zanemarili kakšen dober pripomoček, zapišite o tem v komentar!