In questa lezione parleremo dei framework più popolari per l'information gathering messi a disposizione da Kali. Sebbene una trattazione esaustiva esuli dagli scopi di questa lezione, è comunque possibile fare riferimento alla documentazione ufficiale dei tool di Kali, nonché la documentazione specifica di ciascuno degli strumenti che analizzeremo.
I framework più popolari e potenti possono essere riassunti nella seguente tabella (ordinati in base alla complessità e numerosità di compiti eseguiti):
Nome | Home page | Descrizione |
---|---|---|
Cookie cadger | [1] | Consente di identificare applicazioni che utilizzano connessioni http insicure |
Automater | [2] | Uno strumento per l'analisi di URL, domini, indirizzi IP, Hash Md5 che semplifica il processo di penetration testing |
OSRFramework | [3] | Un insieme di librerie per eseguire compiti di "Open source intelligence", quali: controllo degli username, del DNS, ricerche sul deep web |
Sparta | [4] | Consente ai penetration testers di risparmiare tempo grazie ad una comoda GUI che integra diversi comandi per l'information gathering e ne fornisce i risultati in un formato immediatamente visualizzabile |
Faraday | [5] | Un tool molto interessante per il "collaborative penetration testing" |
Maltego | [6] | Lo strumento principe per l'information gathering. Raccoglie dati da siti web, social networks, wiki, dati pubblici (inclusi dati geolocalizzati e foto satellitari) ed è inoltre capace di creare relazioni tra i dati raccolti |
Cookie Cadger
La maggior parte dei siti web implementa il livello di protezione SSL/TLS per le connessioni HTTP.
Ciò consente di trasferire i dati contenuti nei cookie dei client in modo cifrato e sicuro.
Cookie Cadger è il primo tool open source creato per intercettare
(ed eventualmente effettuare il replay) di messaggi HTTP di tipo GET
che utilizzano connessioni insicure.
Per eseguire Cookie Cadger sarà sufficiente invocare il comando:
cookie-cadger
A questo punto verrà mostrata una GUI che consentirà di selezionare la scheda di rete sulla
quale mettere in ascolto Cookie Cadger.
Sarà dunque possibile osservare su quali siti web sta avvenendo la navigazione,
e i cookie relativi alle sessioni in corso.
La peculiarità maggiore del tool è quella di potere osservare
in tempo reale il contenuto dei cookie e (nel caso di informazioni rilevanti)
effettuare il copia ed incolla dei dati osservati.
Automater
Automater è un tool che automatizza l'utilizzo di strumenti online
per ottenere informazioni su un cosiddetto "target" (URL, IP o HASH). Tra gli strumenti
utilizzati si annoverano: IPvoid.com, Fortiguard.com, VirusTotal, unshorten.me,
Urlvoid.com, Labs.alienvault.com, ecc..
L'utilizzo del tool è veramente semplice, e per fare ciò basterà utilizzare il seguente comando:
python Automater.py <target >
Tra le opzioni disponibili è inoltre possibile salvare l'output del programma all'interno di un
file CSV tramite l'utilizzo dell'opzione -c CSV_FILENAME
.
OSRFramework
Consente di effettuare la raccolta delle informazioni in modo totalmente automatico
tramite l'utilizzo dei seguenti script Python:
- Usufy.py: controlla l'esistenza di un nome su 290 piattaforme diverse (inclusi Facebook, YouTube, BitBucket, DeviantArt, Google Plus, ecc..);
- Mailfy.py: verifica l'esistenza di un dato indirizzo email;
- Phonefy.py: verifica l'esistenza di un dato numero di telefono o di un insieme di numeri telefonici;
- Entify.py: analizza cartelle contenenti testi alla ricerca di porzioni che verificano espressioni regolari riguardanti: indirizzi IP, email, md5 hash, uri, sha256 hash. Offre anche la possibilità di aggiungere espressioni regolari personalizzate per la ricerca di altri tipi di informazioni rilevanti per il penetration tester.
SPARTA
Uno strumento grafico che consente di eseguire i servizi di NMAP ed altri
strumenti (inclusi script custom) in modo automatico.
Le azioni eseguibili da SPARTA riguardano fondamentalmente tre classi: host, porta, e terminale.
Ogni azione deve essere memorizzata all'interno del file sparta.conf, secondo il seguente formato:
strumento=nome azione, comando, servizi
Il parametro strumento deve essere un identificatore univoco; nome azione
è una stringa mnemonica che verrà visualizzata da SPARTA tra le azioni eseguibili;
comando rappresenta un eseguibile di sistema (non interattivo); servizi
rappresenta una lista di operazioni di NMAP eseguite per l'azione stessa.
Per esempio, per configurare l'utilizzo di un'azione tramite Nikto, potremo utilizzare la seguente sintassi:
nikto=Invoca nikto, nikto -o risultato.txt -p 8080 -h 192.168.1.101, "http,https"
È possibile configurare SPARTA per l'esecuzione automatica
di comandi per la raccolta delle informazioni con i seguenti passi:
- Configurare tutte le azioni che si ritengono utili come appena descritto;
- Inserire all'interno della sezione
SchedulerSettings
del file sparta.conf,
i comandi che si intende automatizzare seguendo il formatostrumento=servizi, protocollo
,
dove strumento è il nome univoco dell'azione descritta nella sezione delleport-actions
;
servizi rappresenta una lista di servizi di sistema che, se in esecuzione,
fanno scattare in automatico l'utilizzo dell'azione; protocollo indica
se il servizio deve essere eseguito su TCP o su UDP.
Faraday
Uno strumento unico nel suo genere, in quanto consente
il penetration testing "collaborativo".
Faraday si presenta con una GUI che consente a diversi
penetration tester di essere collegati contemporaneamente.
Oltre a questo, ciascun tester potrà visionare le azioni effettuate dagli altri tester
in tempo reale. Fondamentalmente l'obiettivo dei programmatori di Faraday era
di creare qualcosa di analogo agli IDE adatti alla programmazione (es. Eclipse, Visual Studio, ecc…),
ma rivolto al penetration testing.
In modo simile alle IDE sopra citate, Faraday offre la possibilità di installare diversi plugins:
- Console: intercettano/interpretano l'output dei tool eseguiti dal penetration tester;
- Report: consentono la visualizzazione dei dati;
- Online: consentono a Faraday di collegarsi a strumenti esterni (es. database ed API di siti terzi).
Maltego
Probabilmente il tool di information gathering al momento più completo sul mercato.
È disponibile una versione open source (installata su Kali), e la versione commerciale.
Fondamentalmente rende possibile raccogliere informazioni dal web e
raggrupparle in modo coerente riferendole alla stessa entità (persona, dominio, ecc..)
Dopo la raccolta di informazioni, Maltego creerà un grafo delle relazioni tra le
entità in questione, di fatto metttendo a disposizione una miriade di informazioni su un singolo soggetto.
I dati che possono essere scoperti, collegati, e dunque messi in relazione alla stessa entità sono i seguenti:
- Nome, cognome, indirizzo mail di determinate persone;
- Gruppi di persone (social networks);
- Organizzazioni e compagnie;
- Siti web;
- Infrastrutture di rete: domini, nomi DNS, indirizzi IP, alias;
- Affiliazioni;
- Documenti e files;
Se siete curiosi di approfondire le potenzialità di Maltego e cominciare ad
utilizzarlo vi invitiamo a dare un'occhiata alla nostra guida su Maltego