Strumenti web: da dove cominciare per un pentester?

Continuiamo a parlare di strumenti utili per i pentester. Nell'articolo di oggi analizzeremo gli strumenti per la valutazione della sicurezza delle applicazioni web.

Il nostro collega BeLove ha già creato una simile raccolta circa sette anni fa. È interessante vedere quali strumenti hanno mantenuto e rafforzato la loro posizione e quali sono andati in secondo piano e ora vengono utilizzati raramente.
Strumenti web: da dove cominciare per un pentester?

È importante notare che anche Burp Suite rientra in questa categoria, ma su di esso e sui suoi utili plugin ci sarà una pubblicazione separata.

Contenuto:

Amass

Amass è uno strumento in Go per la scoperta e l'iterazione dei sottodomini DNS e per la mappatura di reti esterne. Amass è un progetto OWASP, creato per mostrare come le organizzazioni appaiono agli osservatori esterni su Internet. Amass ottiene i nomi dei sottodomini in vari modi, utilizzando un approccio ricorsivo per l'iterazione dei sottodomini e la ricerca in fonti aperte.

Per rilevare segmenti di rete interconnessi e numeri di sistemi autonomi, Amass utilizza indirizzi IP raccolti durante il funzionamento. Tutte le informazioni trovate vengono utilizzate per costruire una mappa della rete.

Vantaggi:

  • Le tecniche di raccolta delle informazioni includono:
    * DNS — enumerazione dei sottodomini tramite dizionario, bruteforce dei sottodomini, enumerazione "intelligente" utilizzando mutazioni basate sui sottodomini trovati, richieste DNS inverse e ricerca di server DNS ai quali è possibile effettuare una richiesta di trasferimento di zona (AXFR);

    * Ricerca in fonti aperte — Ask, Baidu, Bing, CommonCrawl, DNSDB, DNSDumpster, DNSTable, Dogpile, Exalead, FindSubdomains, Google, IPv4Info, Netcraft, PTRArchive, Riddler, SiteDossier, ThreatCrowd, VirusTotal, Yahoo;

    * Ricerca in database di certificati TLS — Censys, CertDB, CertSpotter, Crtsh, Entrust;

    * Utilizzo di API dei motori di ricerca — BinaryEdge, BufferOver, CIRCL, HackerTarget, PassiveTotal, Robtex, SecurityTrails, Shodan, Twitter, Umbrella, URLScan;

    * Ricerca in archivi web di Internet: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback;

  • Integrazione con Maltego;
  • Offre la copertura più completa per la ricerca di sottodomini DNS.

Contro:

  • Fai attenzione con amass.netdomains: tenterà di esaminare ogni indirizzo IP nell'infrastruttura identificata e ottenere i nomi di dominio tramite richieste DNS inverse e certificati TLS. Questa è una tecnica 'rumorosa', che potrebbe rivelare le tue attività di intelligence all'interno dell'organizzazione target.
  • Consumo elevato di memoria, può arrivare fino a 2 GB di RAM in diverse configurazioni, il che non consente di eseguire questo strumento su una VDS economica nel cloud.

Strumenti web: da dove cominciare per un pentester?

Altdns

Altdns — strumento in Python per la creazione di dizionari per il brute forcing di sottodomini DNS. Permette di generare molte varianti di sottodomini attraverso mutazioni e permutazioni. Vengono utilizzate parole comunemente presenti nei sottodomini (ad esempio: test, dev, staging), tutte le mutazioni e permutazioni si applicano a sottodomini già noti che possono essere forniti come input ad Altdns. In output si ottiene un elenco di variazioni di sottodomini che potrebbero esistere, e questo elenco può essere utilizzato successivamente nel brute forcing DNS.

Vantaggi:

  • Funziona bene con grandi set di dati.

aquatone

aquatone — in passato era conosciuto principalmente come uno strumento per la ricerca di sottodomini, ma l'autore ha deciso di abbandonarlo a favore dell'Amass sopra menzionato. Ora aquatone è riscritto in Go e si concentra maggiormente sulla reconnaissance preliminare dei siti web. A tal fine, aquatone esplora i domini specificati e cerca siti web su varie porte, raccogliendo tutte le informazioni sul sito e creando schermate. È utile per una rapida esplorazione preliminare dei siti web, dopo la quale si possono selezionare gli obiettivi prioritari per gli attacchi.

Vantaggi:

  • Crea un insieme di file e cartelle, facili da utilizzare per il lavoro successivo con altri strumenti:
    * Report in HTML con schermate raccolte e intestazioni di risposte raggruppate per somiglianza;

    * File con tutti gli URL sui quali sono stati trovati siti web;

    * File con statistiche e dati della pagina;

    * Cartella con file contenenti le intestazioni di risposta degli obiettivi trovati;

    * Cartella con file contenenti il corpo della risposta degli obiettivi trovati;

    * Schermate dei siti web trovati;

  • Supporta l'utilizzo di report XML da Nmap e Masscan;
  • Utilizza headless Chrome/Chromium per il rendering delle schermate.

Contro:

  • Può attirare l'attenzione dei sistemi di rilevamento delle intrusioni, quindi richiede configurazione.

Lo screenshot è stato fatto per una delle versioni più vecchie di aquatone (v0.5.0), in cui era implementata la ricerca DNS dei sottodomini. Le versioni precedenti possono essere trovate nella pagina delle release..
Strumenti web: da dove cominciare per un pentester?

MassDNS

MassDNS — un altro strumento per la ricerca dei sottodomini DNS. La sua principale differenza è che effettua richieste DNS direttamente a una varietà di risolutori DNS diversi e lo fa con notevole velocità.

Vantaggi:

  • Veloce — è in grado di risolvere oltre 350.000 nomi al secondo.

Contro:

  • MassDNS può mettere un carico significativo sui risolutori DNS utilizzati, il che può portare a un blocco su questi server o a segnalazioni al tuo provider. Inoltre, può causare un grande carico sui server DNS dell'azienda, se ne hanno e se sono responsabili dei domini che stai cercando di risolvere.
  • L'elenco dei risolutori attualmente è obsoleto, ma se selezioni i risolutori DNS non funzionanti e aggiungi nuovi noti, tutto andrà bene.

Strumenti web: da dove cominciare per un pentester?
Screenshot di aquatone v0.5.0

nsec3map

nsec3map — uno strumento in Python per ottenere un elenco completo dei domini protetti da DNSSEC.

Vantaggi:

  • Rileva rapidamente gli host nelle zone DNS con il minor numero di richieste, se il supporto DNSSEC è attivato nella zona;
  • Include un plugin per John the Ripper, utilizzabile per compromettere gli hash NSEC3 ottenuti.

Contro:

  • Molti errori DNS vengono gestiti in modo errato;
  • Non c'è parallelismo automatico nella gestione delle registrazioni NSEC: è necessario separare manualmente lo spazio dei nomi;
  • Alto consumo di memoria.

Acunetix

Acunetix — scanner per vulnerabilità web che automatizza il processo di verifica della sicurezza delle applicazioni web. Testa l'applicazione per rilevare SQL injection, XSS, XXE, SSRF e molte altre vulnerabilità web. Tuttavia, come qualsiasi altro scanner di vulnerabilità web, non sostituisce un pentester, poiché catene di vulnerabilità complesse o vulnerabilità logiche potrebbero non essere rilevate. Offre però una copertura di una vasta gamma di vulnerabilità, incluse molte CVE di cui il pentester potrebbe essersi dimenticato, risultando quindi molto utile per alleggerire i controlli di routine.

Vantaggi:

  • Basso livello di falsi positivi;
  • I risultati possono essere esportati in forma di report;
  • Effettua un gran numero di controlli su diverse vulnerabilità;
  • Scansione parallela di più host.

Contro:

  • Non esiste un algoritmo di deduplicazione (le pagine con funzionalità simili saranno considerate diverse da Acunetix poiché collegano a URL diversi), ma gli sviluppatori stanno lavorando su questo;
  • Richiede l'installazione su un server web separato, il che complica il testing dei sistemi client tramite VPN e l'uso dello scanner in un segmento isolato della rete locale del cliente;
  • Può 'disturbare' il servizio esaminato, ad esempio, inviando troppi vettori d'attacco nel modulo di contatto di un sito, complicando notevolmente i processi aziendali;
  • È una soluzione proprietaria e, di conseguenza, non gratuita.

Strumenti web: da dove cominciare per un pentester?

Dirsearch

Dirsearch — strumento in Python per il brute forcing di directory e file sui siti web.

Vantaggi:

  • È in grado di distinguere le vere pagine '200 OK' dalle pagine '200 OK' ma con il testo 'pagina non trovata';
  • Fornito con un comodo dizionario, che ha un buon equilibrio tra dimensione ed efficienza nella ricerca. Contiene percorsi standard, caratteristici di molte CMS e stack tecnologici;
  • Il proprio formato di dizionario, che consente di raggiungere una buona efficienza e flessibilità nella scansione di file e directory;
  • Output comodo — testo semplice, JSON;
  • È in grado di effettuare throttling, ovvero una pausa tra le richieste, fondamentale per qualsiasi servizio poco robusto.

Contro:

  • Le estensioni devono essere fornite come stringhe, il che è poco pratico se è necessario passarne molte contemporaneamente.
  • Per utilizzare il proprio dizionario, sarà necessario modificarlo leggermente per adattarlo al formato dei dizionari Dirsearch per massimizzare l'efficacia.

Strumenti web: da dove cominciare per un pentester?

wfuzz

wfuzz — Fuzzer web Python. Probabilmente uno dei più conosciuti. Il principio è semplice: wfuzz consente di fuzzare qualsiasi punto della richiesta HTTP, permettendo di fuzzare i parametri GET/POST, le intestazioni HTTP, comprese le intestazioni Cookie e di autenticazione. È anche utile per un semplice brute force di directory e file, per cui è necessario un buon dizionario. Ha anche un sistema di filtri flessibile che consente di filtrare le risposte dal sito web in base a diversi parametri, portando a risultati efficaci.

Vantaggi:

  • Multifunzionale — struttura modulare, l'assemblaggio richiede solo pochi minuti.
  • Meccanismo di filtraggio e fuzzing intuitivo.
  • È possibile fuzzare qualsiasi metodo HTTP e qualsiasi punto nella richiesta HTTP.

Contro:

  • In fase di sviluppo.

Strumenti web: da dove cominciare per un pentester?

ffuf

ffuf — un fizzler web in Go, creato a “immagine e somiglianza” di wfuzz, consente di effettuare brute force su file, directory, percorsi URL, nomi e valori di parametri GET/POST, intestazioni HTTP, inclusa l'intestazione Host per il brute forcing di host virtuali. Rispetto al suo predecessore wfuzz, offre una maggiore velocità e alcune nuove funzionalità, come il supporto per dizionari in formato Dirsearch.

Vantaggi:

  • I filtri sono simili a quelli di wfuzz e consentono una configurazione flessibile del brute force;
  • Consente di fuzzare i valori delle intestazioni HTTP, i dati delle richieste POST e varie parti dell'URL, inclusi i nomi e i valori dei parametri GET;
  • È possibile specificare qualsiasi metodo HTTP.

Contro:

  • In fase di sviluppo.

Strumenti web: da dove cominciare per un pentester?

gobuster

gobuster — uno strumento in Go per l'intelligence, dispone di due modalità di funzionamento. La prima è utilizzata per il brute force su file e directory in un sito web, mentre la seconda è per l'elenco dei sottomoduli DNS. Lo strumento non supporta inizialmente la scansione ricorsiva di file e directory, il che, ovviamente, fa risparmiare tempo, ma d'altro canto, è necessario avviare il brute force per ogni nuovo endpoint del sito web separatamente.

Vantaggi:

  • Alta velocità sia per l'elenco dei sottomoduli DNS che per il brute force su file e directory.

Contro:

  • Nella versione attuale non supporta l'impostazione delle intestazioni HTTP;
  • Per impostazione predefinita considera validi solo alcuni codici di stato HTTP (200, 204, 301, 302, 307).

Strumenti web: da dove cominciare per un pentester?

Arjun

Arjun — uno strumento per il brute forcing di parametri HTTP nascosti in parametri GET/POST e anche in JSON. Il dizionario integrato contiene 25.980 parole, che Ajrun verifica in quasi 30 secondi. Il focus è che Ajrun non controlla ogni parametro singolarmente, ma controlla circa 1000 parametri alla volta e vede se la risposta è cambiata. Se la risposta è cambiata, divide questi 1000 parametri in due parti e verifica quale di queste parti influisce sulla risposta. In questo modo, attraverso una semplice ricerca binaria, si trova il parametro o i parametri nascosti che hanno influenzato la risposta e, quindi, potrebbero esistere.

Vantaggi:

  • Alta velocità di esecuzione grazie alla ricerca binaria;
  • Supporto per parametri GET/POST e anche per parametri in formato JSON;

Funziona secondo un principio simile anche il plugin per Burp Suite — param-miner, che è anch'esso molto utile nella ricerca di parametri HTTP nascosti. Ne parleremo in dettaglio in un prossimo articolo su Burp e i suoi plugin.
Strumenti web: da dove cominciare per un pentester?

LinkFinder

LinkFinder — uno script in Python per la ricerca di link in file JavaScript. Utile per trovare endpoint/URL nascosti o dimenticati in un'applicazione web.

Vantaggi:

  • Veloce;
  • Esiste un plugin speciale per Chrome basato su LinkFinder.

.

Contro:

  • Output finale scomodo;
  • Non analizza il JavaScript in modo dinamico;
  • La logica di ricerca dei link è piuttosto semplice: se il JavaScript è in qualche modo offuscato, o se i link sono assenti e generati dinamicamente, non sarà in grado di trovare nulla.

Strumenti web: da dove cominciare per un pentester?

JSParser

JSParser — uno script in Python che utilizza Tornado e JSBeautifier per analizzare gli URL relativi dai file JavaScript. Molto utile per identificare le chiamate AJAX e compilare un elenco dei metodi API con cui interagisce l'applicazione. Funziona efficacemente in combinazione con LinkFinder.

Vantaggi:

  • Parsing rapido dei file JavaScript.

Strumenti web: da dove cominciare per un pentester?

sqlmap

sqlmap — probabilmente uno degli strumenti più noti per l'analisi delle applicazioni web. Sqlmap automatizza la ricerca e lo sfruttamento delle iniezioni SQL, funziona con diversi dialetti SQL e dispone di un'ampia gamma di tecniche, che vanno dall'attacco delle virgolette “frontale” a vettori complessi per iniezioni SQL basate su tempo. Inoltre, offre molte tecniche di sfruttamento per vari DBMS, quindi è utile non solo come scanner per le iniezioni SQL, ma anche come potente strumento per sfruttare le iniezioni SQL già trovate.

Vantaggi:

  • Ampia varietà di tecniche e vettori;
  • Basso numero di falsi positivi;
  • Numerose opzioni di configurazione, diverse tecniche, database target, script di tampering per bypassare il WAF;
  • Possibilità di creare un dump dei dati in uscita;
  • Numerose opportunità di sfruttamento, ad esempio, per alcuni database — caricamento/scaricamento automatico di file, possibilità di eseguire comandi (RCE) e altro;
  • Supporto per connessione diretta al database utilizzando i dati ottenuti durante l'attacco;
  • È possibile fornire un file di testo con i risultati del lavoro di Burp — non è necessario comporre manualmente tutti gli attributi della riga di comando.

Contro:

  • Difficile da personalizzare, ad esempio, scrivere controlli personalizzati a causa della scarsità della documentazione;
  • Senza configurazioni appropriate, esegue un set incompleto di controlli, il che può risultare fuorviante.

Strumenti web: da dove cominciare per un pentester?

NoSQLMap

NoSQLMap — strumento in Python per automatizzare la ricerca e lo sfruttamento di iniezioni NoSQL. Facile da usare non solo in database NoSQL, ma anche direttamente durante l'audit delle applicazioni web che utilizzano NoSQL.

Vantaggi:

  • Come sqlmap, non solo trova potenziali vulnerabilità, ma verifica anche la possibilità di sfruttarle per MongoDB e CouchDB.

Contro:

  • Non supporta NoSQL per Redis, Cassandra, questo ambito è in fase di sviluppo.

oxml_xxe

oxml_xxe — uno strumento per l'inserimento di exploit XXE XML in vari tipi di file in cui viene utilizzato in qualche forma il formato XML.

Vantaggi:

  • Supporta molti formati comuni, come DOCX, ODT, SVG, XML.

Contro:

  • Non è completamente implementato il supporto per PDF, JPEG, GIF;
  • Crea solo un file. Per risolvere questo problema, è possibile utilizzare lo strumento docem, che può creare un gran numero di file con payload in diverse posizioni.

Le utility sopra menzionate sono eccellenti per testare XXE quando si caricano documenti contenenti XML. Ma non dimenticate che i gestori dei formati XML possono trovarsi in molte altre situazioni, ad esempio, XML può essere usato come formato di dati invece di JSON.

Pertanto, raccomandiamo di prestare attenzione al seguente repository, che contiene un gran numero di payload diversi: PayloadsAllTheThings.

tplmap

tplmap — uno strumento in Python per l'individuazione e l'exploitation automatica delle vulnerabilità di Server-Side Template Injection, con impostazioni e flag simili a sqlmap. Utilizza diverse tecniche e vettori, comprese le iniezioni blind, e include anche tecniche per l'esecuzione di codice e il caricamento/salvataggio di file arbitrari. Inoltre, offre tecniche per una decina di diversi motori di template e alcune tecniche per la ricerca di iniezioni di codice simili a eval() in Python, Ruby, PHP, JavaScript. In caso di exploitation riuscita, apre una console interattiva.

Vantaggi:

  • Ampia varietà di tecniche e vettori;
  • Supporta numerosi motori per il rendering dei template;
  • Molte tecniche di exploitation.

CeWL

CeWL — un generatore di dizionari in Ruby, progettato per estrarre parole uniche da un sito web specificato, seguendo i link sul sito fino a una profondità indicata. Il dizionario composto da parole uniche può essere successivamente utilizzato per il brute forcing delle password su servizi o per il brute forcing di file e directory sullo stesso sito, oppure per attaccare gli hash ottenuti tramite hashcat o John the Ripper. È utile per la creazione di un elenco “target” di potenziali password.

Vantaggi:

  • Facile da usare.

Contro:

  • Bisogna fare attenzione alla profondità di ricerca per non includere domini non necessari.

Weakpass

Weakpass — un servizio che contiene numerosi dizionari con password uniche. Estremamente utile per varie attività legate all'hacking delle password, che vanno dal semplice attacco a forza bruta online su servizi mirati, fino a forzature offline degli hash ottenuti con hashcat o John The Ripperche contiene circa 8 miliardi di password di lunghezza compresa tra 4 e 25 caratteri.

Vantaggi:

  • Include dizionari specifici e dizionari con le password più comuni — è possibile scegliere un dizionario specifico per le proprie esigenze.
  • I dizionari vengono aggiornati e arricchiti con nuove password.
  • I dizionari sono ordinati per efficacia. È possibile scegliere un'opzione sia per un attacco rapido online che per una selezione approfondita delle password da un dizionario voluminoso con le ultime fughe di dati.
  • C'è un calcolatore che mostra il tempo di forzatura delle password sul proprio hardware.

Strumenti web: da dove cominciare per un pentester?

In un gruppo separato, vorremmo includere strumenti per controlli CMS: WPScan, JoomScan e AEM hacker.

AEM_hacker

AEM hacker — uno strumento per identificare vulnerabilità nelle applicazioni Adobe Experience Manager (AEM).

Vantaggi:

  • Può identificare le applicazioni AEM da un elenco di URL forniti in ingresso;
  • Include script per ottenere RCE tramite il caricamento di uno shell JSP o sfruttando SSRF.

JoomScan

JoomScan — strumento in Perl per automatizzare la scoperta di vulnerabilità nel deployment di Joomla CMS.

Vantaggi:

  • È in grado di trovare difetti di configurazione e problemi con le impostazioni dell'amministratore;
  • Elenca le versioni di Joomla e le vulnerabilità associate, analogamente per singoli componenti;
  • Contiene oltre 1000 exploit per i componenti di Joomla;
  • Genera report finali in formato testuale e HTML.

Strumenti web: da dove cominciare per un pentester?

WPScan

WPScan — strumento per la scansione di siti WordPress, armato di vulnerabilità sia per il motore WordPress stesso che per alcuni plugin.

Vantaggi:

  • È in grado di elencare non solo i plugin e i temi di WordPress insicuri, ma anche di ottenere un elenco di utenti e file TimThumb;
  • Può condurre attacchi di brute force su siti WordPress.

Contro:

  • Senza configurazioni appropriate, esegue un set incompleto di controlli, il che può risultare fuorviante.

Strumenti web: da dove cominciare per un pentester?

In generale, diverse persone preferiscono strumenti diversi per il lavoro: ognuno ha i propri punti di forza, e ciò che può piacere a una persona potrebbe non andare bene per un'altra. Se pensate che abbiamo trascurato qualche buon'utilità, fatecelo sapere nei commenti!

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster