stāstīt par noderīgiem rīkiem pen-testētājiem. Jaunajā rakstā mēs aplūkosim rīkus, kas paredzēti tīmekļa lietojumprogrammu drošības analīzei.
Mūsu kolēģis jau veica līdzīgu apmēram pirms septiņiem gadiem. Interesanti apskatīt, kuri rīki ir saglabājuši un nostiprinājuši savas pozīcijas, bet kuri ir atkāpušies otrajā plānā un šobrīd tiek izmantoti retos gadījumos.

Jāatzīmē, ka šeit ietilpst arī Burp Suite, bet par to un tā noderīgajiem paplašinājumiem būs atsevišķs raksts.
Saturs:
Amass
— rīks Go valodā DNS apakšdomēnu meklēšanai un ģenerēšanai, kā arī ārējās tīkla kartes sastādīšanai. Amass ir OWASP projekts, izveidots, lai parādītu, kā organizācijas izskatās internetā no trešo personu skatupunkta. Amass iegūst apakšdomēnu nosaukumus, izmantojot dažādas metodes, rīkā tiek izmantota gan rekursīvā apakšdomēnu meklēšana, gan meklēšana atklātajos avotos.
Lai atklātu savstarpēji saistītus tīkla segmentus un autonomo sistēmu numurus, Amass izmanto IP adreses, ko tā ir ieguvusi darba procesa laikā. Visa atrastā informācija tiek izmantota tīkla kartes izveidei.
Priekšrocības:
- Informācijas vākšanas metodes ietver:
* DNS — apakšdomēnu meklēšana pēc vārdnīcas, bruteforce apakšdomēnu meklēšana, “gudra” apakšdomēnu meklēšana, izmantojot atrastos apakšdomēnus, atpakaļ DNS vaicājumi un DNS serveru meklēšana, uz kuriem var veikt zonas pārneses pieprasījumus (AXFR);* Meklēšana atklātajos avotos — Ask, Baidu, Bing, CommonCrawl, DNSDB, DNSDumpster, DNSTable, Dogpile, Exalead, FindSubdomains, Google, IPv4Info, Netcraft, PTRArchive, Riddler, SiteDossier, ThreatCrowd, VirusTotal, Yahoo;
* TLS sertifikātu datu bāzes meklēšana — Censys, CertDB, CertSpotter, Crtsh, Entrust;
* Meklēšana izmantojot meklētājprogrammu API — BinaryEdge, BufferOver, CIRCL, HackerTarget, PassiveTotal, Robtex, SecurityTrails, Shodan, Twitter, Umbrella, URLScan;
* Meklēšana interneta mājas arhīvos: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback;
- Integrācija ar Maltego;
- Nodrošina vispilnīgāko DNS apakšdomēnu meklēšanas risinājumu.
Mīnusi:
- Esiet uzmanīgi ar amass.netdomains — tas mēģinās piekļūt katrai IP adresei identificētajā infrastruktūrā un iegūt domēnu nosaukumus no atpakaļ DNS vaicājumiem un TLS sertifikātiem. Šī ir «skaļā» tehnika, kas var atklāt jūsu izpētes aktivitātes pētītajā organizācijā.
- Augsts atmiņas patēriņš, var patērēt līdz 2 GB RAM dažādās konfigurācijās, kas neļaus palaist šo rīku mākoņos uz lēta VDS.

Altdns
— rīks Python valodā, kas paredzēts DNS apakšdomēnu ģenerēšanai. ļauj ģenerēt daudzus apakšdomēnu variantus, izmantojot mutācijas un permutācijas. Šim nolūkam tiek izmantoti vārdi, kas bieži sastopami apakšdomēnos (piemēram: test, dev, staging), visas mutācijas un permutācijas tiek piemērotas jau zināmiem apakšdomēniem, kurus var ievadīt Altdns. Rezultātā iegūst sarakstu ar apakšdomēnu variācijām, kas var pastāvēt, un šo sarakstu vēlāk var izmantot DNS bruteforcing.
Priekšrocības:
- Labi strādā ar lieliem datu apjomiem.
aquatone
— agrāk bija pazīstams kā vēl viens rīks apakšdomēnu meklēšanai, taču pats autors no tā atteicās par labu iepriekš minētajam Amass. Tagad aquatone ir pārrakstīts Go valodā un vairāk pielāgots priekšizlūkošanai tīmekļa vietnēs. Šim nolūkam aquatone pārlūko norādītos domēnus un meklē tajos tīmekļa vietnes dažādos portos, pēc tam savāc visu informāciju par vietni un veic ekrānuzņēmumu. Ērti izmantojams ātrai priekšizlūkošanai tīmekļa vietnēs, pēc kuras var izvēlēties prioritārās mērķus uzbrukumiem.
Priekšrocības:
- Rezultātā izveido failu un mapju grupu, kuru ērti izmantot turpmākajā darbā ar citiem rīkiem:
* HTML ziņojums ar savāktajiem ekrānuzņēmumiem un grupētu atbilžu virsrakstu līdzībām;* fails ar visiem URL, kuros tika atrastas tīmekļa vietnes;
* fails ar statistiku un lapas datiem;
* mape ar failiem, kas satur atbilžu virsrakstus no atrastajiem mērķiem;
* mape ar failiem, kas satur atbilžu ķermeņus no atrastajiem mērķiem;
* atrasto tīmekļa vietņu ekrānuzņēmumi;
- Atbalsta darbu ar XML ziņojumiem no Nmap un Masscan;
- Izmanto headless Chrome/Chromium ekrānuzņēmumu renderēšanai.
Mīnusi:
- Var piesaistīt ievade atklāšanas sistēmas uzmanību, tāpēc prasa konfigurāciju.
Ekrānuzņēmums izveidots vienai no vecākajām aquatone versijām (v0.5.0), kurā tika realizēta DNS apakšdomēnu meklēšana. Vecākas versijas var atrast .

MassDNS
— vēl viens rīks DNS apakšdomēnu meklēšanai. Tā galvenā atšķirība ir tāda, ka tas veic DNS pieprasījumus tieši uz daudziem dažādiem DNS risinātājiem un to dara ar būtisku ātrumu.
Priekšrocības:
- Átrais — spējīgs izšķirt vairāk nekā 350 tūkstošus nosaukumu sekundē.
Mīnusi:
- MassDNS var radīt ievērojamu slodzi izmantotajiem DNS risinātājiem, kas var novest pie bloķēšanas šajos serveros vai sūdzībām jūsu pakalpojumu sniedzējam. Turklāt tas radīs lielu slodzi uzņēmuma DNS serveriem, ja tādi ir un ja tie atbild par domēniem, kurus mēģināt risināt.
- Pašreizējais risinātāju saraksts ir novecojis, taču, ja noņem neaktīvos DNS risinātājus un pievieno jaunus zināmos — viss būs labi.

Ekrānuzņēmums aquatone v0.5.0
nsec3map
— rīks uz Python, lai iegūtu pilnu aizsargāto DNSSEC domēnu sarakstu.
Priekšrocības:
- Ātri atklāj hostus DNS zonās ar minimālo pieprasījumu skaitu, ja zonā ir ieslēgta DNSSEC atbalsts;
- Tajā ir iekļauts spraudnis John the Ripper, ko var izmantot, lai uzlauztu iegūtos NSEC3 hashus.
Mīnusi:
- Daudzi DNS kļūdas tiek apstrādātas nepareizi;
- Nav automātiskas NSEC ierakstu apstrādes paralelizācijas — nākas manuāli dalīt nosaukumu telpu;
- Augsts atmiņas patēriņš.
Acunetix
— tīmekļa ievainojamību skeneris, automatizējot tīmekļa lietojumprogrammu drošības pārbaudes procesu. Pārbauda lietojumprogrammu pret SQL injekcijām, XSS, XXE, SSRF un daudzām citām tīmekļa ievainojamībām. Tomēr, tāpat kā jebkurš cits tīkls, daudzveidīgu ievainojamību skeneris neaizvieto pentesteri, jo sarežģītās ievainojamību ķēdēs vai loģikas ievainojamībās to neatradīs. Tomēr tas aptver ļoti daudz dažādu ievainojamību, tostarp dažādas CVE, par kurām pentesteris varēja aizmirst, tāpēc tas ir ļoti noderīgs, lai atbrīvotu no rutīnas pārbaudēm.
Priekšrocības:
- Zems viltus pozitīvu skaits;
- Rezultātus var eksportēt kā ziņojumus;
- Veic daudz pārbaudes uz dažādām ievainojamībām;
- Paralēla vairāku hostu skenēšana.
Mīnusi:
- Nav deduplicēšanas algoritma (funkcionāli identiskas Acunetix lapas tiks uzskatītas par atšķirīgām, jo uz tām ved dažādi URL), bet izstrādātāji pie tā strādā;
- Nepieciešama instalēšana atsevišķā tīmekļa serverī, kas apgrūtina klientu sistēmu testēšanu ar VPN pieslēgumiem un skenera izmantošanu izolētā lokālajā klienta tīkla segmentā;
- Var “apklusināt” pētniecības pakalpojumu, piemēram, nosūtot kontaktformas raida pārāk daudz uzbrukumu vektorus, tādējādi ievērojami apgrūtinot uzņēmējdarbības procesus;
- Ir ir īpašumā, tāpēc tas nav bezmaksas risinājums.

Dirsearch
— Python rīks direktoriju un failu bruteforcešanai tīmekļa vietnēs.
Priekšrocības:
- Var atšķirt īstas “200 OK” lapas no “200 OK” lapām, kas satur tekstu “lapa nav atrasta”;
- Tiek piegādāts ar ērtu vārdnīcu, kurai ir labs līdzsvars starp izmēru un meklēšanas efektivitāti. Satur standartceļus, kas raksturīgi daudzām CMS un tehnoloģiju stekiem;
- Sava vārdnīcas formāts, kas ļauj sasniegt labu efektivitāti un elastību failu un direktoriju pārvietošanā;
- Ērta izvade — vienkāršs teksts, JSON;
- Spēj veikt throttling — pauzi starp pieprasījumiem, kas ir būtiski jebkuram vājam pakalpojumam.
Mīnusi:
- Paplašinājumus nepieciešams nodot kā virkni, kas nav ērti, ja jānodod daudzi paplašinājumi vienlaikus;
- Lai izmantotu savu vārdnīcu, to būs jāsagatavo nedaudz līdz Dirsearch vārdnīcu formātam, lai nodrošinātu maksimālu efektivitāti.

wfuzz
— Python vebfazers. Iespējams, viens no vislabāk zināmajiem tīmekļa fazeriem. Principi ir vienkārši: wfuzz ļauj fazēt jebkuru vietu HTTP pieprasījumā, kas ļauj fazēt GET/POST parametrus, HTTP galvenes, tostarp sīkdatnes un citus autentifikācijas galvenes. Tajā pašā laikā tas ir ērti izmantot arī vienkāršai direktoriju un failu bruteforcešanai, kam ir nepieciešama laba vārdnīca. Tam ir arī elastīga filtru sistēma, kas ļauj filtrēt atbildes no tīmekļa vietnēm pēc dažādiem parametriem, tādējādi panākot efektīvus rezultātus.
Priekšrocības:
- Mūsdienīgs — modulāra struktūra, montāža aizņem tikai dažas minūtes;
- Ērta filtru un fazzinga mehānika;
- Var fazēt jebkuru HTTP metodi, kā arī jebkuru vietu HTTP pieprasījumā.
Mīnusi:
- Izstrādes stadijā.

ffuf
— veb fazers uz Go, izveidots, ņemot par paraugu wfuzz, ļauj bruteforce failus, direktorijas, URL ceļus, GET/POST parametru nosaukumus un vērtības, HTTP galvenes, tostarp Host galveni, lai bruteforce virtuālos saimniekus. Atšķiras no sava brāļa wfuzz ar augstāku ātrumu un dažām jaunām funkcijām, piemēram, atbalsta Dirsearch formāta vārdnīcas.
Priekšrocības:
- Filtri ir līdzīgi wfuzz filtriem, ļauj elastīgi konfigurēt bruteforce;
- Atļauj fazēt HTTP galvenu vērtības, POST pieprasījumu datus un dažādas URL daļas, tostarp GET parametru nosaukumus un vērtības;
- Var norādīt jebkuru HTTP metodi.
Mīnusi:
- Izstrādes stadijā.

gobuster
— rīks Go valodā izlūkošanai, kam ir divi darbības režīmi. Pirmais tiek izmantots, lai veiktu brutālo spēku failu un direktoriju uzlaušanai tīmekļa vietnē, otrais — lai pārbaudītu DNS apakšdomēnus. Rīks sākotnēji neatbalsta rekursīvu failu un direktoriju pārbaudi, kas, protams, taupa laiku, bet, no otras puses, katras jaunas gala punkta uzlaušana tīmekļa vietnē jāsāk atsevišķi.
Priekšrocības:
- Augsta darbības ātruma gan DNS apakšdomēnu pārbaudei, gan failu un direktoriju uzlaušanai.
Mīnusi:
- Šajā versijā neatbalsta HTTP galvene iestatīšanu;
- Pa noklusējumu uzskata par derīgiem tikai dažus HTTP statuss kodus (200,204,301,302,307).

Arjun
— rīks, lai veiktu brutālo spēku slēptajiem HTTP parametriem GET/POST parametros, kā arī JSON. Iebūvētais vārdnīca satur 25 980 vārdus, kurus Ajrun pārbauda gandrīz 30 sekundēs. Paņēmiens ir tāds, ka Ajrun nepārbauda katru parametru atsevišķi, bet pārbauda apmēram ~1000 parametrus vienlaicīgi un skatās, vai atbilde ir mainījusies. Ja atbilde ir mainījusies, tad dalās šādu 1000 parametrus divās daļās un pārbauda, kura no šīm daļām ietekmē atbildi. Tādējādi, izmantojot viegli īstenojamu bināro meklēšanu, tiek atrasts parametrs vai vairāki slēptie parametri, kas ietekmēja atbildi un, līdz ar to, var pastāvēt.
Priekšrocības:
- Augsts darbības ātrums, pateicoties binārajai meklēšanai;
- Atbalsta GET/POST parametrus, kā arī parametrus JSON formātā;
Darbības princips līdzīgs Burp Suite paplašinājumam — , kuram arī ir ļoti laba spēja meklēt slēptos HTTP parametrus. Sīkāk par to pastāstīsim gaidāmajā rakstā par Burp un tā paplašinājumiem.

LinkFinder
— Python skripts, lai meklētu saites JavaScript failos. Noderīgs slēpto vai aizmirsto gala punktu/URL meklēšanai tīmekļa lietojumprogrammā.
Priekšrocības:
- Ātrs;
- Ir speciāls Chrome paplašinājums, kas balstīts uz LinkFinder.
.
Mīnusi:
- Nepatikamu rezultātu izkārtojums;
- Neanalizē JavaScript dinamikā;
- Salīdzinoši vienkārša saites meklēšanas loģika — ja JavaScript ir jebkādā veidā obfuskēts vai saites sākotnēji nepastāv un tiek ģenerētas dinamiski, tad nekas netiks atrasts.

JSParser
— Python skripts, kas izmanto un lai analizētu relatīvos URL adreses no JavaScript failiem. Ļoti noderīgs AJAX pieprasījumu atklāšanai un API metožu saraksta sastādīšanai, ar kurām lietojumprogramma mijiedarbojas. Efektīvi darbojas kopā ar LinkFinder.
Priekšrocības:
- Ātra JavaScript failu parsēšana.

sqlmap
— iespējams, viens no vispazīstamākajiem rīkiem tīmekļa lietojumprogrammu analīzei. Sqlmap automatizē SQL ievadīšanas ievainojamību meklēšanu un ekspluatāciju, atbalsta vairākus SQL dialektus, un tam ir liels skaits dažādu tehniku, sākot no 'bulldozera' līdz pat sarežģītām laika balstītām SQL ievadīšanas vektoriem. Turklāt tam ir daudzas turpmākas ekspluatācijas tehnikas dažādām datu bāzēm, tāpēc tas ir noderīgs ne tikai kā SQL ievadīšanas skeneris, bet arī kā spēcīgs rīks, lai ekspluatētu jau atrastas SQL ievadīšanas ievainojamības.
Priekšrocības:
- Liels daudzums dažādu tehniku un vektoru;
- Zems viltus pozitīvo gadījumu skaits;
- Daudzas pielāgošanas iespējas, dažādas tehnikas, mērķdatu bāze, tamper skripti WAF apietšanai;
- Iespēja izveidot izvades datu dumpu;
- Daudzas dažādas ekspluatācijas iespējas, piemēram, dažām datu bāzēm — automātiska failu augšupielāde/lejam, iespēja izpildīt komandas (RCE) un citas;
- Atbalsta tiešu savienojumu ar datu bāzi, izmantojot uzbrukuma laikā iegūtās datus;
- Ievadā var dot tekstu failu ar Burp rezultātiem — nav nepieciešams manuāli izveidot visus komandrindas atribūtus.
Mīnusi:
- Grūti pielāgot, piemēram, uzrakstīt savas pārbaudes, jo dokumentācija ir ierobežota;
- Bez atbilstošām iestatījumiem veic nepilnīgu pārbaudes komplektu, kas var maldināt.

NoSQLMap
— rīks Python valodā automatizētu NoSQL ievadīšanas meklēšanu un ekspluatāciju. Ir ērti izmantot ne tikai NoSQL datu bāzēs, bet arī tieši tīmekļa lietojumprogrammu auditos, kas izmanto NoSQL.
Priekšrocības:
- Kā sqlmap, tas ne tikai atrod potenciālo ievainojamību, bet arī pārbauda tās ekspluatācijas iespējas MongoDB un CouchDB sasniegšanai.
Mīnusi:
- Nepodrž pārvalda NoSQL datu bāzes Redis, Cassandra, šajā virzienā ir izstrāde.
oxml_xxe
— rīks XXE XML eksploitācijas iekļaušanai dažādos failu veidos, kuros kādā veidā tiek izmantots XML formāts.
Priekšrocības:
- Atbalsta daudzus izplatītus formātus, piemēram, DOCX, ODT, SVG, XML.
Mīnusi:
- PDF, JPEG, GIF atbalsts nav pilnībā ieviests;
- Izveido tikai vienu failu. Šīs problēmas risināšanai var izmantot rīku , kas var izveidot daudz failu ar payloadiem dažādās vietās.
Iepriekš minētie rīki lieliski spēj veikt XXE testēšanu dokumentu augšupielādēšanas gadījumā, kuros ir XML. Taču neaizmirstiet, ka XML formātu apstrādātāji var parādīties daudzos citos gadījumos, piemēram, XML var tikt izmantots kā datu formāts, nevis JSON.
Tāpēc mēs iesakām pievērst uzmanību nākamajai repozitorijai, kas satur plašu dažādu payloadu kolekciju: .
tplmap
— rīks Python valodā automātiskai Server-Side Template Injection ievainojamību atklāšanai un izmantošanai, tam ir līdzīgas iestatīšanas un karogus kā sqlmap. Tas izmanto vairākas dažādas tehnikas un vektorus, tostarp blind-injekcijas, un tam ir tehnoloģijas kodeka izpildei un failu augšupielādei/lejuplādēšanai. Turklāt tam ir tehnoloģijas desmitiem dažādu šablonu dzinēju un daži paņēmieni kodeka injekciju meklēšanai kā eval()-tipa Python, Ruby, PHP, JavaScript. Ja veiksmīgi izmanto, tas atver interaktīvo konsoli.
Priekšrocības:
- Liels daudzums dažādu tehniku un vektoru;
- Atbalsta vairākus šablonu rindu dzinējus;
- Daudz exploatācijas tehniku.
CeWL
— vārdnīcu ģenerators Ruby valodā, kas izveidots unikālu vārdu iegūšanai no norādītās tīmekļa vietnes, pārvietojas caur saites vietnē norādītajā dziļumā. Izveidotā vārdnīca no unikāliem vārdiem turpmāk var tikt izmantota paroli uzlaušanai pakalpojumos vai failu un katalogu bruteforcēšanai tajā pašā tīmekļa vietnē, vai uzbrukumam iegūtajiem hash kodus, izmantojot hashcat vai John the Ripper. Noderīga potenciālo paroli “mērķu” saraksta sastādīšanai.
Priekšrocības:
- Viegli lietot.
Mīnusi:
- Jābūt uzmanīgam ar meklēšanas dziļumu, lai nepieskartu lieku domēnu.
Weakpass
— pakalpojums, kas satur daudzas vārdnīcas ar unikālām parolēm. Ļoti noderīgs dažādām uzdevumiem, kas saistīti ar parolēm, sākot no vienkāršas tiešsaistes kontu bruteforces mērķa pakalpojumos, līdz pat ofline bruteforce iegūtajiem hash kodus, izmantojot vai . Aptuveni 8 miljardu parolēm, kuru garums ir no 4 līdz 25 simboliem.
Priekšrocības:
- Satur gan specifiskas vārdnīcas, gan vārdnīcas ar biežāk sastopamām parolēm — var izvēlēties konkrētu vārdnīcu atbilstoši savām vajadzībām;
- Vārdnīcas tiek regulāri atjauninātas un papildinātas ar jaunām parolēm.
- Vārdnīcas ir sakārtotas pēc efektivitātes. Var izvēlēties variantu kā ātrai tiešsaistes brutālai uzbrukšanai, tā arī rūpīgai paroli meklēšanai no apjomīgām vārdnīcām ar jaunākajiem noplūžu datiem;
- Ir kalkulators, kas rāda laiku, kāds nepieciešams paroli brutālai uzbrukšanai jūsu aparatūrā.

Atsevišķā grupā mēs vēlētos izcelt CMS pārbaudes rīkus: WPScan, JoomScan un AEM hacker.
AEM_hacker
— rīks, lai identificētu ievainojamības Adobe Experience Manager (AEM) lietojumprogrammās.
Priekšrocības:
- Var identificēt AEM lietojumprogrammas no URL saraksta, ko tas saņem kā ievadi;
- Ietver skriptus, lai iegūtu RCE, izmantojot JSP šelfu augšupielādi vai izmantojot SSRF.
JoomScan
— Perl rīks, lai automatizētu ievainojamību atklāšanu Joomla CMS izvietošanas laikā.
Priekšrocības:
- Spēj noteikt konfigurācijas trūkumus un administratoru iestatījumu problēmas;
- Uzskaita Joomla versijas un ar tām saistītās ievainojamības, līdzīgi kā atsevišķiem komponentiem;
- Ietver vairāk nekā 1000 exploitus Joomla komponentiem;
- Izvērš galīgās atskaites teksta un HTML formā.

WPScan
— rīks tīmekļa vietņu skenēšanai WordPress, tai ir ievainojamības gan pašam WordPress dzinējam, gan dažiem spraudņiem.
Priekšrocības:
- Spēj uzskaitīt ne tikai nedrošos WordPress spraudņus un tēmas, bet arī iegūt lietotāju sarakstu un TimThumb failus;
- Var veikt brutālās uzbrukumus uz WordPress vietnēm.
Mīnusi:
- Bez atbilstošām iestatījumiem veic nepilnīgu pārbaudes komplektu, kas var maldināt.

Kopumā dažādi cilvēki dod priekšroku dažādiem rīkiem: visi tie ir labvēlīgi savā veidā, un tas, kas patīk vienai personai, var pilnīgi nederēt citai. Ja domājat, ka mēs nepamatoti esam izlaidusi labu utilītu — rakstiet par to komentāros!
Avots: habr.com
