a parlare di strumenti utili per il pentester. In questo nuovo articolo esamineremo gli strumenti per analizzare la sicurezza delle applicazioni web.
Il nostro collega ha già fatto una simile circa sette anni fa. È interessante vedere quali strumenti hanno mantenuto e rafforzato la loro posizione, e quali sono passati in secondo piano e ora vengono usati raramente.

Notiamo che anche Burp Suite rientra in questa categoria, ma di lui e dei suoi utili plugin ci sarà un articolo separato.
Contenuto:
Amass
— strumento scritto in Go per la ricerca e il brute-forcing dei sottodomini DNS e per la creazione di una mappa della rete esterna. Amass è un progetto OWASP, creato per mostrare come appaiono le organizzazioni online per un osservatore esterno. I nomi dei sottodomini vengono acquisiti in vari modi, utilizzando sia un approccio ricorsivo che una ricerca in fonti aperte.
Per scoprire i segmenti di rete collegati e i numeri delle Autonomous Systems, Amass utilizza gli indirizzi IP ottenuti durante il suo funzionamento. Tutte le informazioni trovate vengono utilizzate per costruire una mappa della rete.
Pro:
- Le tecniche di raccolta delle informazioni includono:
* DNS — enumerazione dei sottodomini tramite dizionario, brute force dei sottodomini, enumerazione 'intelligente' utilizzando mutazioni basate sui sottodomini trovati, query DNS inverse e ricerca di server DNS che possono consentire una richiesta di trasferimento della 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 dei certificati TLS — Censys, CertDB, CertSpotter, Crtsh, Entrust;
* Utilizzo delle 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;
- Fornisce la copertura più completa per la ricerca di sottodomini DNS.
Contro:
- Fai attenzione con amass.netdomains — cercherà di contattare ogni indirizzo IP nell'infrastruttura identificata e ottenere i nomi dei domini da query DNS inverse e certificati TLS. Questa è una tecnica 'rumorosa', può rivelare le tue attività di intelligence all'organizzazione che stai esaminando.
- L'elevato consumo di memoria può arrivare fino a 2 GB di RAM in diverse configurazioni, il che non consente di eseguire questo strumento nel cloud su un VDS economico.

Altdns
— strumento Python per la creazione di dizionari per la scansione dei sottodomini DNS. Permette di generare molteplici varianti di sottodomini tramite mutazioni e permutazioni. Per questo si utilizzano parole che si incontrano frequentemente nei sottodomini (ad esempio: test, dev, staging), tutte le mutazioni e permutazioni vengono applicate a già noti sottodomini, che possono essere forniti come input per Altdns. In output si genera un elenco di varianti di sottodomini che potrebbero esistere e questo elenco può essere successivamente utilizzato durante il brute-forcing DNS.
Pro:
- Funziona bene con grandi set di dati.
aquatone
— in precedenza era più conosciuto come un altro strumento per la ricerca di sottodomini, ma lo stesso autore ha abbandonato questo in favore del già citato Amass. Ora aquatone è stato riscritto in Go ed è orientato maggiormente all'intelligence preliminare sui siti web. Per questo, aquatone esamina i domini forniti e cerca su di essi siti web su diverse porte, raccogliendo tutte le informazioni sul sito e realizzando uno screenshot. È comodo per un'intelligence preliminare veloce sui siti web, dopo la quale si possono selezionare obiettivi prioritari per gli attacchi.
Pro:
- In output crea un gruppo di file e cartelle che è comodo utilizzare per lavorare successivamente con altri strumenti:
* Report HTML con screenshot raccolti e raggruppati per somiglianza nei titoli delle risposte;* File con tutti gli URL sui quali sono stati trovati siti web;
* File con statistiche e dati sulla pagina;
* Cartella con file contenenti i titoli delle risposte dagli obiettivi trovati;
* Cartella con file contenenti il corpo delle risposte dagli obiettivi trovati;
* Screenshot dei siti web trovati;
- Supporta il lavoro con report XML da Nmap e Masscan;
- Utilizza Chrome/Chromium headless per generare screenshot.
Contro:
- Può attirare l'attenzione dei sistemi di rilevamento delle intrusioni, quindi richiede configurazione.
Lo screenshot è stato realizzato per una delle vecchie versioni di aquatone (v0.5.0), in cui era implementata la ricerca di sottodomini DNS. Le versioni precedenti possono essere trovate nella .

MassDNS
— un altro strumento per la ricerca di sottodomini DNS. La sua principale differenza è che effettua richieste DNS direttamente a molti diversi resolver DNS e lo fa con una velocità significativa.
Pro:
- Veloce — è in grado di risolvere oltre 350.000 nomi al secondo.
Contro:
- MassDNS può generare un carico significativo sui resolver DNS utilizzati, il che può portare a un divieto su questi server o a reclami verso il tuo fornitore. Inoltre, può causare un grande carico sui server DNS dell'azienda, se ne ha e se sono responsabili dei domini che stai cercando di risolvere.
- L'elenco dei resolver è attualmente obsoleto, tuttavia, se si escludono i resolver DNS non funzionanti e si aggiungono nuovi noti, tutto andrà bene.

Screenshot di aquatone v0.5.0
nsec3map
— uno strumento in Python per ottenere un elenco completo di domini protetti da DNSSEC.
Pro:
- Rileva rapidamente gli host nelle zone DNS con un numero minimo di richieste, se la zona supporta DNSSEC;
- Include un plugin per John the Ripper, che può essere utilizzato per compromettere gli hash NSEC3 ottenuti.
Contro:
- Molti errori DNS vengono gestiti in modo errato;
- Non c'è parallelizzazione automatica nel trattamento dei record NSEC — è necessario suddividere manualmente lo spazio dei nomi;
- Alto consumo di memoria.
Acunetix
— uno scanner di 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é non riesce a individuare catene complesse di vulnerabilità o vulnerabilità logiche. D'altra parte, copre una vasta gamma di vulnerabilità, comprese diverse CVE, che il pentester potrebbe anche dimenticare, quindi è molto utile per alleggerire le verifiche di routine.
Pro:
- 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 funzionalmente identiche verranno considerate diverse da Acunetix, poiché sono collegate a URL diversi), ma gli sviluppatori ci stanno lavorando;
- Richiede l'installazione su un server web separato, il che complica il test dei sistemi client con connessione VPN e l'utilizzo dello scanner in un segmento isolato della rete client locale;
- Può 'disturbare' il servizio esaminato, ad esempio inviando troppi vettori di attacco nel modulo di contatto del sito, complicando così notevolmente i processi aziendali.
- È una soluzione proprietaria e, di conseguenza, a pagamento.

Dirsearch
— uno strumento in Python per il brute forcing di directory e file su siti web.
Pro:
- Può distinguere le vere pagine “200 OK” dalle pagine “200 OK”, ma con il testo “pagina non trovata”;
- Fornito con un dizionario utile, con un buon equilibrio tra dimensione ed efficienza nella ricerca. Contiene percorsi standard caratteristici di molti CMS e stack tecnologici;
- Il proprio formato di dizionario, che consente di ottenere una buona efficienza e flessibilità nell'iterazione di file e directory;
- Output conveniente — testo semplice, JSON;
- Capace di effettuare throttling — una pausa tra le richieste, che è vitale per qualsiasi servizio debole.
Contro:
- Le estensioni devono essere passate come stringa, il che è scomodo se si devono passare molte estensioni contemporaneamente;
- Per utilizzare il proprio dizionario, sarà necessario modificarlo leggermente nel formato dei dizionari Dirsearch per massimizzare l'efficienza.

wfuzz
— un web fuzzer in Python. Probabilmente uno dei più noti fuzzer web. Il principio è semplice: wfuzz consente di fuzzare qualsiasi parte di una richiesta HTTP, il che permette di fuzzare parametri GET/POST, intestazioni HTTP, inclusi i cookie e altre intestazioni di autenticazione. È anche utile per un semplice brute forcing 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, permettendo di ottenere risultati efficaci.
Pro:
- Multi-funzionale — struttura modulare, l'assemblaggio richiede solo pochi minuti;
- Meccanismo di filtraggio e fuzzing conveniente;
- Può fuzzare qualsiasi metodo HTTP e qualsiasi parte di una richiesta HTTP.
Contro:
- In fase di sviluppo.

ffuf
— un web fuzzer in Go, creato sull'“immagine e somiglianza” di wfuzz, consente di brute forzare file, directory, URL, nomi e valori di parametri GET/POST, intestazioni HTTP, inclusa l'intestazione Host per il brute forcing di host virtuali. Si differenzia dal suo omologo wfuzz per una maggiore velocità e alcune nuove funzionalità, ad esempio, supporta dizionari nel formato Dirsearch.
Pro:
- I filtri sono simili a quelli di wfuzz, consentono di configurare il brute forcing in modo flessibile;
- Consente di fuzzare i valori delle intestazioni HTTP, i dati delle richieste POST e diverse parti degli URL, inclusi nomi e valori dei parametri GET;
- È possibile specificare qualsiasi metodo HTTP.
Contro:
- In fase di sviluppo.

gobuster
— strumento in Go per la scansione, ha due modalità operative. La prima viene utilizzata per il brute force di file e directory su un sito web, la seconda per il tentativo di enumerazione dei sottodomini DNS. Lo strumento non supporta inizialmente la scansione ricorsiva di file e directory, il che, naturalmente, fa risparmiare tempo, ma d'altra parte ogni nuovo endpoint sul sito web deve essere eseguito separatamente con il brute force.
Pro:
- Alta velocità di operazione sia per l'enumerazione dei sottodomini DNS che per il brute force di file e directory.
Contro:
- Nella versione attuale non supporta l'impostazione degli header HTTP;
- Di default considera validi solo alcuni codici di stato HTTP (200,204,301,302,307).

Arjun
— strumento per il brute force di parametri HTTP nascosti nei parametri GET/POST, così come in JSON. Il dizionario incorporato conta 25.980 parole, che Ajrun controlla in circa 30 secondi. La particolarità è che Ajrun non verifica ogni parametro singolarmente, ma controlla quasi ~1000 parametri alla volta e osserva se la risposta cambia. Se la risposta è cambiata, divide questi 1000 parametri in due parti e verifica quale di queste parti influisce sulla risposta. In questo modo, grazie a una semplice ricerca binaria, si trova un parametro o più parametri nascosti che hanno influito sulla risposta e, di conseguenza, potrebbero esistere.
Pro:
- Alta velocità di lavoro grazie alla ricerca binaria;
- Supporto per parametri GET/POST, così come per parametri in formato JSON;
Funziona secondo un principio simile anche il plugin per Burp Suite — , che è anch'esso molto valido nella ricerca di parametri HTTP nascosti. Parleremo di esso in un prossimo articolo su Burp e i suoi plugin.

LinkFinder
— script in Python per cercare link in file JavaScript. Utile per trovare endpoint/URL nascosti o dimenticati in un'applicazione web.
Pro:
- Veloce;
- Esiste un plugin speciale per Chrome basato su LinkFinder.
.
Contro:
- Output finale poco pratico;
- Non analizza il JavaScript in dinamica;
- Logica di ricerca dei link piuttosto semplice: se il JavaScript è in qualche modo offuscato, oppure se i link non sono presenti e vengono generati dinamicamente, non riuscirà a trovare nulla.

JSParser
— script in Python che utilizza e per analizzare URL relativi da file JavaScript. Molto utile per individuare richieste AJAX e compilare un elenco di metodi API con cui interagisce l'applicazione. Funziona efficacemente in coppia con LinkFinder.
Pro:
- Parsing veloce dei file JavaScript.

sqlmap
— probabilmente uno degli strumenti più conosciuti per l'analisi delle applicazioni web. Sqlmap automatizza la ricerca e l'exploitation delle SQL injection, funziona con diversi dialetti SQL e dispone di un'incredibile varietà di tecniche, che vanno dalle iniezioni 'alla cieca' a complesse sequenze per le SQL injection basate sul tempo. Inoltre, offre molte tecniche di exploitation per diversi DBMS, quindi è utile non solo come scanner per SQL injection, ma anche come potente strumento per sfruttare le SQL injection già trovate.
Pro:
- Un gran numero di tecniche e vettori diversi;
- Basso numero di falsi positivi;
- Molte possibilità di personalizzazione, diverse tecniche, DB target, script di tamper per bypassare il WAF;
- Possibilità di creare un dump dei dati di output;
- Molteplici opportunità di exploitation, ad esempio, per alcuni DB — caricamento/scaricamento automatico di file, accesso all'esecuzione di comandi (RCE) e altro;
- Supporto per la connessione diretta al DB utilizzando i dati ottenuti durante l'attacco;
- Puoi fornire un file di testo con i risultati dell'analisi 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à di documentazione al riguardo;
- Senza le configurazioni appropriate, esegue un insieme incompleto di controlli, il che può indurre in errore.

NoSQLMap
— strumento in Python per automatizzare la ricerca e l'exploitation delle NoSQL injection. È pratico da utilizzare non solo con i database NoSQL, ma anche durante l'audit delle applicazioni web che utilizzano NoSQL.
Pro:
- Come sqlmap, non solo trova potenziali vulnerabilità, ma verifica anche la possibilità della loro exploitation per MongoDB e CouchDB.
Contro:
- Non supporta NoSQL per Redis, Cassandra, ed è in fase di sviluppo in questa direzione.
oxml_xxe
— strumento per l'inserimento di exploit XXE XML in vari tipi di file che in qualche modo utilizzano il formato XML.
Pro:
- Supporta molti formati comuni, come DOCX, ODT, SVG, XML.
Contro:
- Il supporto per PDF, JPEG, GIF non è completamente implementato;
- Crea solo un file. Per risolvere questo problema, puoi utilizzare lo strumento , che può creare un gran numero di file con payload in diverse posizioni.
Le utilità sopra menzionate funzionano eccellentemente nella verifica di XXE in caso di caricamento di documenti contenenti XML. Ma non dimenticate che i gestori dei formati XML possono essere presenti in molti altri casi; ad esempio, l'XML può essere utilizzato come formato di dati al posto di JSON.
Pertanto, vi consigliamo di prestare attenzione al seguente repository, che contiene un gran numero di payload diversi: .
tplmap
— uno strumento in Python per l'identificazione automatica e lo sfruttamento delle vulnerabilità di Server-Side Template Injection, ha impostazioni e flag simili a sqlmap. Utilizza diverse tecniche e vettori, incluse le iniezioni blind, e ha tecniche per l'esecuzione di codice e per il caricamento/trasferimento di file arbitrari. Inoltre, ha nel suo arsenale 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 sfruttamento riuscito, apre una console interattiva.
Pro:
- Un gran numero di tecniche e vettori diversi;
- Supporta molti motori per il rendering dei template;
- Molte tecniche di sfruttamento.
CeWL
— un generatore di dizionari in Ruby, progettato per estrarre parole uniche da un certo sito web, visita i collegamenti sul sito fino a una profondità specificata. Il dizionario composto da parole uniche può essere utilizzato per il brute forcing delle password su servizi o per il brute forcing di file e directory sullo stesso sito web, o per attacchi agli hash ottenuti utilizzando hashcat o John the Ripper. Utile nella creazione di una lista mirata di potenziali password.
Pro:
- Facile da usare.
Contro:
- È necessario fare attenzione alla profondità di ricerca, per non catturare domini superflui.
Weakpass
— un servizio che contiene numerosi dizionari con password uniche. Estremamente utile per varie attività legate all'hacking delle password, partendo dal semplice brute forcing online degli account sui servizi obiettivo, fino al brute forcing offline degli hash ottenuti attraverso o . Comprende circa 8 miliardi di password di lunghezza compresa tra 4 e 25 caratteri.
Pro:
- Contiene sia dizionari specifici che dizionari con le password più comuni — è possibile scegliere un dizionario specifico a seconda delle proprie necessità;
- I dizionari vengono aggiornati e ampliati con nuove password;
- I dizionari sono ordinati per efficienza. Puoi scegliere l'opzione sia per un attacco di bruteforce rapido online, sia per una selezione approfondita delle password da un ampio dizionario con le ultime perdite;
- C'è un calcolatore che mostra il tempo di bruteforce delle password sul tuo hardware.

Vorremmo evidenziare strumenti per i controlli CMS: WPScan, JoomScan e AEM hacker.
AEM_hacker
— strumento per identificare vulnerabilità nelle applicazioni Adobe Experience Manager (AEM).
Pro:
- È in grado di identificare le applicazioni AEM da un elenco di URL fornito in input;
- Contiene script per ottenere RCE caricando un JSP shell o sfruttando SSRF.
JoomScan
— strumento in Perl per automatizzare il rilevamento delle vulnerabilità durante il deployment di Joomla CMS.
Pro:
- È capace di trovare difetti di configurazione e problemi di impostazioni amministrative;
- Elenca le versioni di Joomla e le vulnerabilità associate, similmente per singoli componenti;
- Contiene oltre 1000 exploit per i componenti Joomla;
- Genera report finali in formato testuale e HTML.

WPScan
— strumento per la scansione di siti in WordPress, ha nel suo arsenale vulnerabilità sia per il motore WordPress stesso che per alcuni plugin.
Pro:
- È in grado di elencare non solo plugin e temi WordPress non sicuri, ma anche di ottenere l'elenco degli utenti e i file TimThumb;
- Può eseguire attacchi di bruteforce sui siti WordPress.
Contro:
- Senza le configurazioni appropriate, esegue un insieme incompleto di controlli, il che può indurre in errore.

In generale, diverse persone preferiscono usare strumenti diversi per lavorare: ognuno di essi è valido a modo suo, e ciò che piace a una persona può non adattarsi affatto a un'altra. Se pensi che abbiamo trascurato un buon strumento — scrivilo nei commenti!
Fonte: habr.com
