Web tools, or where to start for a pentester?

Continuăm să vorbim despre unele unelte utile pentru penetration tester. În noul articol ne vom concentra asupra instrumentelor pentru analiza securității aplicațiilor web.

Colegul nostru BeLove a mai realizat o astfel de selecție în urmă cu aproximativ șapte ani. Este interesant să vedem ce instrumente și-au menținut și consolidat poziția, și care au fost uitate și sunt acum folosite rar.
Web tools, or where to start for a pentester?

De remarcat că Burp Suite face parte din această categorie, dar despre el și pluginurile sale utile va fi publicat un articol separat.

Cuprins:

Amass

Amass — un instrument scris în Go pentru găsirea și enumerarea subdomeniilor DNS și pentru crearea unei hărți a rețelei externe. Amass este un proiect OWASP, destinat să ilustreze cum arată organizațiile în internet din perspectiva unui observator extern. Numele subdomeniilor sunt obținute prin diverse metode, instrumentul folosește atât enumerarea recursivă a subdomeniilor, cât și căutarea în surse deschise.

Pentru a descoperi segmente de rețea interconectate și numere de sisteme autonome, Amass utilizează adrese IP obținute în timpul rulării. Toate informațiile găsite sunt folosite pentru a construi o hartă a rețelei.

Pro:

  • Tehnicile de colectare a informațiilor includ:
    * DNS — enumerare a subdomeniilor prin dicționar, brute force al subdomeniilor, enumerare „inteligentă” utilizând mutații bazate pe subdomeni găsite, interogări DNS inverse și căutarea serverelor DNS care permit cereri pentru transfer de zonă (AXFR);

    * Căutare în surse deschise — Ask, Baidu, Bing, CommonCrawl, DNSDB, DNSDumpster, DNSTable, Dogpile, Exalead, FindSubdomains, Google, IPv4Info, Netcraft, PTRArchive, Riddler, SiteDossier, ThreatCrowd, VirusTotal, Yahoo;

    * Căutare în bazele de date ale certificatelor TLS — Censys, CertDB, CertSpotter, Crtsh, Entrust;

    * Utilizarea API-urilor motorului de căutare — BinaryEdge, BufferOver, CIRCL, HackerTarget, PassiveTotal, Robtex, SecurityTrails, Shodan, Twitter, Umbrella, URLScan;

    * Căutare în arhivele web ale internetului: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback;

  • Integrare cu Maltego;
  • Oferă cea mai completă acoperire pentru sarcina de căutare a subdomeniilor DNS.

Dezavantaje:

  • Fiți atenți cu amass.netdomains — acesta va încerca să se conecteze la fiecare adresă IP din infrastructura identificată și să obțină numele domeniilor din interogările DNS inverse și certificatul TLS. Aceasta este o tehnică „zgomotoasă”, care poate dezvălui activitățile voastre de cercetare în organizația analizată.
  • Consumul ridicat de memorie poate ajunge până la 2 GB RAM în diferite setări, ceea ce va împiedica rularea acestui instrument în cloud pe un VDS ieftin.

Web tools, or where to start for a pentester?

Altdns

Altdns — un instrument Python pentru generarea de dictionare pentru enumerarea subdomeniilor DNS. Permite generarea unei multitudini de variante de subdomenii prin mutații și permutări. Acest lucru se face folosind cuvinte frecvent întâlnite în subdomenii (de exemplu: test, dev, staging), toate mutațiile și permutările fiind aplicate subdomeniilor deja cunoscute, care pot fi introduse în Altdns. La ieșire, se obține o listă de variații de subdomenii care pot exista, iar această listă poate fi folosită ulterior în bruta DNS.

Pro:

  • Funcționează bine cu seturi mari de date.

aquatone

aquatone — a fost mai cunoscut anterior ca un alt instrument pentru găsirea subdomeniilor, dar autorul a renunțat la acesta în favoarea menționatului Amass. Acum, aquatone este scris în Go și este mai bine optimizat pentru recunoașterea prealabilă a site-urilor web. Acest lucru se face prin parcurgerea domeniilor specificate și căutarea site-urilor web pe diferite porturi, după care se colectează toate informațiile despre site și se fac capturi de ecran. Este util pentru o recunoaștere preliminară rapidă a site-urilor web, după care se pot selecta țintele prioritare pentru atacuri.

Pro:

  • La ieșire, creați un grup de fișiere și foldere care sunt ușor de utilizat în lucrările viitoare cu alte instrumente:
    * Raport HTML cu capturi de ecran colectate și titluri de răspuns grupate după similaritate;

    * Fișier cu toate URL-urile pe care au fost găsite site-uri web;

    * Fișier cu statistici și date despre pagină;

    * Dosar cu fișiere care conțin antetele de răspuns de la țintele găsite;

    * Dosar cu fișiere care conțin corpul răspunsului de la țintele găsite;

    * Capturi de ecran ale site-urilor web găsite;

  • Suportă lucrul cu rapoarte XML de la Nmap și Masscan;
  • Utilizează Chrome/Chromium headless pentru a genera capturi de ecran.

Dezavantaje:

  • Poate atrage atenția sistemelor de detectare a intruziunilor, așa că necesită configurare.

Captura a fost realizată pentru una dintre versiunile vechi ale aquatone (v0.5.0), în care a fost implementată căutarea subdomeniilor DNS. Versiuni mai vechi pot fi găsite pe pagina de lansări.
Web tools, or where to start for a pentester?

MassDNS

MassDNS — un alt instrument pentru căutarea subdomeniilor DNS. Diferența principală este că face cereri DNS direct la numeroase rezolvatoare DNS diferite și o face cu o viteză semnificativă.

Pro:

  • Rapid — poate rezolva peste 350 de mii de nume pe secundă.

Dezavantaje:

  • MassDNS poate genera o sarcină semnificativă pe serverele DNS utilizate, ceea ce poate duce la blocarea acestor servere sau la plângeri către furnizorul dvs. În plus, va crea o sarcină mare pe serverele DNS ale companiei, dacă acestea există și dacă sunt responsabile pentru domeniile pe care încercați să le rezolvați.
  • Lista rezolvatorilor este în prezent depășită, totuși, dacă eliminați rezolvatorii DNS nefuncționali și adăugați altele noi cunoscute, totul va fi bine.

Web tools, or where to start for a pentester?
Screenshot aquatone v0.5.0

nsec3map

nsec3map — un instrument Python pentru obținerea unei liste complete de domenii protejate prin DNSSEC.

Pro:

  • Detectează rapid gazdele în zonele DNS cu un număr minim de solicitări, dacă zona are activată suportul pentru DNSSEC;
  • Include un plugin pentru John the Ripper, care poate fi utilizat pentru a sparge hash-urile NSEC3 obținute.

Dezavantaje:

  • Multe erori DNS sunt gestionate incorect;
  • Nu există un proces automat de paralelizare a prelucrării înregistrărilor NSEC — trebuie să separați manual spațiul de nume;
  • Consumul ridicat de memorie.

Acunetix

Acunetix — un scanner de vulnerabilități web care automatizează procesul de verificare a securității aplicațiilor web. Testează aplicația pentru a identifica SQL injection, XSS, XXE, SSRF și multe alte vulnerabilități web. Totuși, ca orice alt scanner de vulnerabilități web, nu înlocuiește un pentester, deoarece lanțurile complexe de vulnerabilități sau vulnerabilitățile din logica aplicației nu vor putea fi identificate. Totuși, acoperă foarte multe vulnerabilități diferite, inclusiv diverse CVE de care pentesterul ar putea fi uitat, fiind astfel foarte util pentru a reduce sarcinile de verificare de rutină.

Pro:

  • Nivel scăzut de alerte false;
  • Rezultatele pot fi exportate sub formă de rapoarte;
  • Efectuează un număr mare de verificări pentru diferite vulnerabilități;
  • Scanare paralelă a mai multor gazde.

Dezavantaje:

  • Nu există un algoritm de deduplicare (paginile cu funcționalitate identică vor fi considerate diferite de Acunetix, deoarece se accesează prin URL-uri diferite), dar dezvoltatorii lucrează la acest lucru;
  • Necesită instalarea pe un server web separat, ceea ce complică testarea sistemelor client cu conectare VPN și utilizarea scanner-ului în segmente izolate ale rețelei locale a clientului;
  • Poate „zăpăci” serviciul studiat, de exemplu, trimițând prea multe vectori de atac în formularul de contact de pe site, complicând astfel semnificativ procesele de afaceri;
  • Este un instrument proprietar și, prin urmare, plătit.

Web tools, or where to start for a pentester?

Dirsearch

Dirsearch — un instrument Python pentru forțarea directoarelor și fișierelor pe site-uri web.

Pro:

  • Poate distinge între paginile reale „200 OK” și paginile „200 OK” cu textul „pagina nu a fost găsită”;
  • Vine cu un dicționar convenabil, având un bun echilibru între dimensiune și eficiența căutării. Conține căi standard, caracteristice pentru multe CMS-uri și stive tehnologice;
  • Formatul său de dicționar, care permite obținerea unei bune eficiențe și flexibilități în parcurgerea fișierelor și directoarelor;
  • Iesire convenabilă — text simplu, JSON;
  • Poate face throttling — pauză între cereri, ceea ce este esențial pentru orice serviciu slab.

Dezavantaje:

  • Extensiile trebuie transmise sub formă de șir, ceea ce este incomod dacă trebuie să se transmită multe extensii simultan;
  • Pentru a folosi propriul dicționar, va trebui să-l ajustați puțin pentru formatul dicționarelor Dirsearch pentru a obține o eficiență maximă.

Web tools, or where to start for a pentester?

wfuzz

wfuzz — un fuzz-er web pentru Python. Probabil unul dintre cei mai cunoscuți fuzz-eri web. Principiul este simplu: wfuzz permite fuzzing în orice loc din cererea HTTP, ceea ce oferă posibilitatea de a fuzz GET/POST parametri, antete HTTP, inclusiv Cookie și alte antete de autentificare. De asemenea, este convenabil pentru forțarea simplă a directoarelor și fișierelor, pentru care este necesar un dicționar bun. Are, de asemenea, un sistem flexibil de filtre care permite filtrarea răspunsurilor de la site-uri web pe diferite parametri, permițând obținerea unor rezultate eficiente.

Pro:

  • Multifuncțional — structură modulară, asamblarea durează câteva minute;
  • Mecanism convenabil de filtrare și fuzzing;
  • Poate fuzz orice metodă HTTP, precum și orice loc din cererea HTTP.

Dezavantaje:

  • În stadiul de dezvoltare.

Web tools, or where to start for a pentester?

ffuf

ffuf — un fuzz-er web pe Go, creat după „chipul și asemănarea” wfuzz, permite forțarea fișierelor, directoarelor, căilor URL, numelui și valorilor parametrilor GET/POST, antetelor HTTP, inclusiv antetul Host pentru forțarea gazdelor virtuale. Se diferențiază de fratele său wfuzz printr-o viteză mai mare și câteva funcții noi, de exemplu, suportă dicționare în format Dirsearch.

Pro:

  • Filtrele sunt asemănătoare cu filtrele wfuzz, permitând configurarea flexibilă a forțării;
  • Permite fuzzing-ul valorilor antetelor HTTP, datelor cererilor POST și diferitelor părți ale URL-ului, inclusiv numele și valorile parametrilor GET;
  • Poate specifica orice metodă HTTP.

Dezavantaje:

  • În stadiul de dezvoltare.

Web tools, or where to start for a pentester?

gobuster

gobuster — un instrument pe Go pentru explorare, are două moduri de funcționare. Primul este utilizat pentru bruteforțarea fișierelor și directorilor pe un site web, iar al doilea — pentru enumerarea subdomeniilor DNS. Instrumentul nu suportă inițial parcurgerea recursivă a fișierelor și directorilor, ceea ce, firește, economisește timp, dar pe de altă parte, bruteforțarea fiecărui nou endpoint pe site-ul web trebuie să fie inițiată separat.

Pro:

  • Viteză mare de operare atât pentru enumerarea subdomeniilor DNS, cât și pentru bruteforțarea fișierelor și directorilor.

Dezavantaje:

  • În versiunea actuală nu suportă setarea antetelor HTTP;
  • În mod implicit, consideră valide doar câteva coduri de stare HTTP (200, 204, 301, 302, 307).

Web tools, or where to start for a pentester?

Arjun

Arjun — un instrument pentru bruteforțarea parametrilor HTTP ascunși în parametrii GET/POST, precum și în JSON. Dicționarul încorporat are 25 980 de cuvinte, pe care Ajrun le verifică în aproape 30 de secunde. Focalizarea constă în faptul că Ajrun nu verifică fiecare parametru în parte, ci examinează aproximativ 1000 de parametri deodată și observă dacă răspunsul s-a modificat. Dacă răspunsul s-a schimbat, atunci împarte acești 1000 de parametri în două părți și verifică care dintre aceste părți influențează răspunsul. Astfel, printr-o simplă căutare binară, se găsește parametrul sau mai mulți parametri ascunși care au influențat răspunsul și, prin urmare, ar putea exista.

Pro:

  • Viteză mare de operare datorită căutării binare;
  • Suport pentru parametrii GET/POST, precum și pentru parametri în format JSON;

Funcționează pe un principiu similar și pluginul pentru Burp Suite — param-miner, care este, de asemenea, foarte eficient în căutarea parametrilor HTTP ascunși. Vom detalia mai multe despre el în viitorul nostru articol despre Burp și pluginurile sale.
Web tools, or where to start for a pentester?

LinkFinder

LinkFinder — un script Python pentru găsirea linkurilor în fișierele JavaScript. Util pentru găsirea endpointurilor/URL-urilor ascunse sau uitate dintr-o aplicație web.

Pro:

  • Rapid;
  • Există un plugin special pentru Chrome bazat pe LinkFinder.

.

Dezavantaje:

  • Ieșire finală incomodă;
  • Nu analizează JavaScriptul dinamic;
  • Logica de căutare a linkurilor este destul de simplă — dacă JavaScriptul este obfuscat în vreun fel sau linkurile lipsesc inițial și sunt generate dinamic, atunci nu va putea găsi nimic.

Web tools, or where to start for a pentester?

JSParser

JSParser — un script Python care folosește Tornado și JSBeautifier pentru analiza URL-urilor relative din fișierele JavaScript. Foarte util pentru descoperirea cererilor AJAX și compilarea unei liste de metode API cu care interacționează aplicația. Funcționează eficient împreună cu LinkFinder.

Pro:

  • Parsing rapid al fișierelor JavaScript.

Web tools, or where to start for a pentester?

sqlmap

sqlmap — probabil unul dintre cele mai cunoscute instrumente pentru analiza aplicațiilor web. Sqlmap automatizează căutarea și exploatarea iniecțiilor SQL, funcționează cu mai multe dialecte SQL și are în arsenal o gamă largă de tehnici, începând de la iniecțiile simple și până la vectorii complexi pentru iniecțiile SQL bazate pe timp. În plus, dispune de numeroase tehnici de exploatare ulterioară pentru diferite SGBD-uri, astfel încât este util nu doar ca scanner pentru iniecții SQL, ci și ca un instrument puternic pentru exploatarea iniecțiilor SQL deja descoperite.

Pro:

  • O gamă largă de tehnici și vectori;
  • Număr scăzut de alarme false;
  • Multe opțiuni de personalizare, diverse tehnici, baza de date țintă, scripturi de manipulare pentru a ocoli WAF;
  • Posibilitatea de a crea un dump de date de ieșire;
  • Multe opțiuni diferite de exploatare, de exemplu, pentru unele SGBD-uri — încărcarea/descărcarea automată a fișierelor, obținerea capacității de execuție a comenzilor (RCE) și altele;
  • Suport pentru conectarea directă la SGBD folosind datele obținute în timpul atacului;
  • Se poate furniza un fișier text cu rezultatele extrase de Burp — nu trebuie să compuneți manual toate atributele din linia de comandă.

Dezavantaje:

  • Dificil de personalizat, de exemplu, să scrieți propriile verificări din cauza documentației insuficiente pentru acest lucru;
  • Fără setările corespunzătoare, efectuează un set incomplet de verificări, ceea ce poate induce în eroare.

Web tools, or where to start for a pentester?

NoSQLMap

NoSQLMap — un instrument scris în Python pentru automatizarea căutării și exploatării iniecțiilor NoSQL. Este convenabil de utilizat nu doar cu bazele de date NoSQL, ci și direct în auditul aplicațiilor web care folosesc NoSQL.

Pro:

  • La fel ca sqlmap, permite nu doar descoperirea vulnerabilităților potențiale, ci și verificarea posibilității de exploatare pentru MongoDB și CouchDB.

Dezavantaje:

  • Nu suportă NoSQL pentru Redis, Cassandra, în această direcție se desfășoară dezvoltări.

oxml_xxe

oxml_xxe — un instrument pentru încorporarea exploiturilor XXE XML în diferite tipuri de fișiere care utilizează în orice formă formatul XML.

Pro:

  • Suportă multe formate răspândite, cum ar fi DOCX, ODT, SVG, XML.

Dezavantaje:

  • Suportul pentru PDF, JPEG, GIF nu este complet implementat;
  • Crează doar un singur fișier. Pentru a soluționa această problemă, se poate utiliza instrumentul docem, care poate crea un număr mare de fișiere cu payload-uri în diferite locații.

Utilitarele menționate mai sus se descurcă excelent în testarea XXE în cazul încărcării documentelor care conțin XML. Dar nu uitați că procesatoarele de formate XML pot apărea în multe alte cazuri, de exemplu, XML poate fi utilizat ca format de date în loc de JSON.

De aceea, vă recomandăm să acordați atenție următorului depozit, care conține o mare varietate de payload-uri: PayloadsAllTheThings.

tplmap

tplmap — un instrument Python pentru identificarea și exploatarea automată a vulnerabilităților Server-Side Template Injection, având setări și steaguri similare cu sqlmap. Folosește mai multe tehnici și vectori diferiți, inclusiv injecții blind, și are tehnici pentru executarea codului și pentru încărcarea/descărcarea fișierelor arbitrare. În plus, dispune de tehnici pentru zeci de motoare de șabloane diferite și unele tehnici pentru găsirea injecțiilor de cod de tip eval() în Python, Ruby, PHP, JavaScript. În cazul unei exploatări reușite, deschide o consolă interactivă.

Pro:

  • O gamă largă de tehnici și vectori;
  • Suportă numeroase motoare pentru randarea șabloanelor;
  • Multe tehnici de exploatare.

CeWL

CeWL — un generator de dicționare în Ruby, creat pentru extragerea cuvintelor unice de pe un site web specificat, parcurge linkurile de pe site la o adâncime specificată. Dicționarul compus din cuvinte unice poate fi utilizat ulterior pentru bruteforțarea parolelor pe servicii sau bruteforțarea fișierelor și directoarelor pe același site web, fie pentru atacarea hash-urilor obținute folosind hashcat sau John the Ripper. Util în compilarea unei liste „țintă” de parole potențiale.

Pro:

  • Ușor de folosit.

Dezavantaje:

  • Trebuie să fiți mai atenți cu adâncimea căutării pentru a nu captura un domeniu suplimentar.

Weakpass

Weakpass — un serviciu care conține o multitudine de dicționare cu parole unice. Extrem de util pentru diverse sarcini legate de spargerea parolelor, de la bruteforțarea simplă online a conturilor pe serviciile țintă, până la bruteforțarea offline a hash-urilor obținute prin hashcat sau John The Ripper. Conține aproximativ 8 miliarde de parole cu lungimi între 4 și 25 de caractere.

Pro:

  • Include atât dicționare specifice, cât și dicționare cu cele mai frecvente parole – se poate alege un dicționar specific în funcție de necesități;
  • Dicționarele sunt actualizate și completate cu parole noi.
  • Dicționarele sunt sortate după eficiență. Puteți alege o variantă atât pentru un brut force online rapid, cât și pentru o selecție detaliată a parolelor dintr-un dicționar voluminos cu ultimele scurgeri;
  • Există un calculator care arată timpul necesar pentru a sparge parolele pe echipamentul dumneavoastră.

Web tools, or where to start for a pentester?

Am dori să separăm instrumentele pentru verificări CMS: WPScan, JoomScan și AEM hacker.

AEM_hacker

AEM hacker — un instrument pentru identificarea vulnerabilităților în aplicațiile Adobe Experience Manager (AEM).

Pro:

  • Poate detecta aplicațiile AEM din lista de URL-uri furnizată;
  • Include scripturi pentru obținerea RCE prin încărcarea unui shell JSP sau exploatarea SSRF.

JoomScan

JoomScan — un instrument pe Perl pentru automatizarea descoperirii vulnerabilităților în timpul implementării Joomla CMS.

Pro:

  • Este capabil să identifice deficiențele de configurare și problemele de setări administrative;
  • Enumeră versiunile Joomla și vulnerabilitățile asociate, similar pentru componentele individuale;
  • Conține peste 1000 de exploatări pentru componente Joomla;
  • Oferă rapoarte finale în formate text și HTML.

Web tools, or where to start for a pentester?

WPScan

WPScan — un instrument pentru scanarea site-urilor WordPress, având în arsenal vulnerabilități atât pentru motorul WordPress în sine, cât și pentru unele pluginuri.

Pro:

  • Este capabil să enumere nu doar pluginurile și temele nesecurizate WordPress, ci și să obțină lista utilizatorilor și fișierele TimThumb;
  • Poate efectua atacuri de brut force pe site-urile WordPress.

Dezavantaje:

  • Fără setările corespunzătoare, efectuează un set incomplet de verificări, ceea ce poate induce în eroare.

Web tools, or where to start for a pentester?

În general, diferite persoane preferă instrumente diferite pentru lucru: fiecare dintre ele este bun în felul său, iar ceea ce a plăcut unei persoane poate să nu fie potrivit pentru alta. Dacă considerați că am neglijat o utilitate bună — vă rugăm să ne scrieți despre ea în comentarii!

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster