Raccolta di informazioni [Aggiornato 2019]
Introduzione alla raccolta di informazioni
Il test di penetrazione inizia con una fase di pre-impegno in cui il pen tester viene a conoscenza del cliente, degli obiettivi, delle limitazioni e dell’ambito del test di penetrazione. Successivamente, il pen tester inizia il test di penetrazione effettivo e di solito procede con uno sforzo di raccolta di informazioni in cui il pen tester individua le informazioni disponibili pubblicamente relative al cliente e cerca modi che potrebbero essere sfruttati per entrare nei sistemi. In questa fase, il pen tester utilizza anche strumenti come gli scanner di porte che possono aiutarlo a comprendere i sistemi nella rete e il software che si trova su di essi. Utilizzando tali informazioni, il pen tester può individuare l’impatto che i diversi risultati possono avere sul client e la parte di analisi delle vulnerabilità può procedere dove le informazioni trovate vengono utilizzate per individuare possibili vulnerabilità nei sistemi e la successiva fase di sfruttamento in cui le vulnerabilità vengono tentate di essere sfruttate per entrare nel sistema. Pertanto, senza una buona raccolta di informazioni – non ci sarebbero vulnerabilità da trovare e sfruttare.
Ora è il momento di fare una distinzione importante – quella tra raccolta di informazioni passiva e attiva. La raccolta passiva di informazioni si riferisce alla raccolta di quante più informazioni possibili senza stabilire un contatto tra il tester della penna (te stesso) e l’obiettivo su cui stai raccogliendo informazioni. La raccolta di informazioni attive comporta il contatto tra il tester della penna e il bersaglio effettivo. Quando si interrogano attivamente i sistemi per ottenere le informazioni, si passa a una situazione legale oscura poiché la maggior parte dei paesi proibisce i tentativi di entrare nei sistemi senza il permesso necessario. Pertanto, se non si dispone del permesso di testare un sistema (una carta get-out-of-jail-free) non è una buona idea eseguire query attive contro di esso. Ad esempio, se si utilizza Nmap per trovare porte aperte e applicazioni su un sistema remoto desiderato, si sta interagendo attivamente con quel sistema nel tentativo di trovare punti deboli e se si sta facendo una ricerca whois, navigando sul sito Web della società o interrogando i motori di ricerca per informazioni sulla società che si sta raccogliendo passivamente informazioni. Un esempio di raccolta di informazioni attive è chiamare il personale aziendale e tentare di ingannarli per divulgare informazioni privilegiate.
La fase di pre-attacco può essere descritta nel modo seguente:
- Raccolta passiva di informazioni per scoprire informazioni preliminari sui sistemi, il loro software e le persone coinvolte con il target.
- Determinare passivamente l’intervallo di rete per scoprire le macchine nella rete su cui è possibile concentrarsi.
- Il tester della penna attivamente controlla quale delle macchine situate è vivo per sapere che cosa mirare.
- Il tester della penna cerca attivamente le porte aperte e le applicazioni su di esse per ciascuna delle macchine della rete per scoprire il modo ottimale per entrare.
- La penna tester utilizza strumenti come traceroute e Cheops per impronte digitali il sistema operativo dietro ciascuna delle macchine.
- La penna tester mappa la rete annotando e visualizzando tutti i dati raccolti e inizia con la fase di attacco Tools
Strumenti di raccolta passiva delle informazioni
theHarvester
Possiamo usare la Mietitrice per raccogliere email su domini mirati. Possiamo quindi utilizzare queste e-mail per avviare l’ingegneria sociale o lanciare altri attacchi. La mietitrice è uno strumento costruito in Python, quindi per eseguirlo è necessario Python sulla macchina e preferibilmente aggiunto alla variabile d’ambiente PATH. È possibile scaricare Python da https://www.python.org/downloads/. Se hai git sulla tua macchina, puoi aprire il tuo terminale, navigare in una cartella desiderata e digitare git clone https://github.com/laramies/theHarvester.git
per scaricare lo strumento. Altrimenti, dovresti solo aprire il repository GitHub, fare clic su” Clona o scarica ” e scaricare il codice sorgente come ZIP. Una volta installato, è possibile aprire la riga di comando / Terminale e passare alla cartella in cui è stato installato il raccoglitore e digitare python theHarvester.py per ottenere la schermata di aiuto.
Figura 1: La schermata di aiuto della Mietitrice dovrebbe essere simile a questa
Ora, se vogliamo cercare le email nel dominio dimoff.biz possiamo eseguire una query come questa:
python theHarvester.py -d dimoff.biz -l 100-b google
Questo cercherà le email in Google situato a dimoff.biz e limiterà la ricerca ai primi 100 risultati di query in Google.
Figura 2: Nessuna email trovata nel mio dominio in quanto le ho offuscate
Proviamo a cercare le email all’interno del sito web dell’InfoSec Institute. Digitiamo la stessa query ma cambiamo il dominio: python theHarvester.py -d infosecinstitute.com -l 100-b google
Figura 3: La query per le email in InfoSec Institute si avvicinò con quattro email che possiamo potenzialmente sfruttare
Per migliorare la nostra ricerca, possiamo provare la ricerca con diversi motori di ricerca. Se cerchiamo e-mail entro i primi 30 risultati del motore di ricerca di Yahoo finiamo con una sola e-mail, ma è diverso da quelli quattro che abbiamo raccolto con Google. Digitiamo python theHarvester.py -d infosecinstitute.com -l 20-b yahoo e finiscono con il seguente output:
Figura 4: La ricerca della mietitrice con Yahoo ha prodotto un risultato diverso
Come avrete notato, oltre a sputare le e-mail all’interno di quel dominio, la Mietitrice elenca tutti i sottodomini che è riuscita a trovare associati al dominio dato e li mappa al rispettivo indirizzo IP. Queste informazioni sono utili così come i diversi sottodomini possono utilizzare diversi software server, framework di sviluppo software e potrebbero anche essere su macchine diverse, il che significherebbe che questi sottodomini potrebbero essere soggetti a diverse vulnerabilità e possono avere diversi livelli di sfruttabilità.
Netcraft
Netcraft è un’applicazione web che ci consente di visualizzare informazioni dettagliate sul software, sul server web e sull’host web coinvolti in un sito web arbitrario. Netcraft rende la raccolta di queste informazioni indolore in quanto richiede millisecondi per conoscere il software dietro il sito web. Ad esempio, sapere chi è il fornitore di web hosting del sito web potrebbe rivelarsi utile se si decide di lanciare un attacco di ingegneria sociale. Quindi, puoi scrivere un’e-mail a un amministratore che sembra provenire dalla loro società di web hosting, chiedendogli di aprire un link e modificare un’impostazione. Inoltre, i diversi framework di sviluppo software utilizzati dal sito Web che puoi trovare con Netcraft possono avere le loro vulnerabilità che puoi quindi tentare di sfruttare. L’immagine qui sotto mostra una ricerca su InfoSec Institute in http://www.netcraft.com/
Figura 5: Alla ricerca di informazioni su InfoSec Institute in Netcraft
Possiamo vedere che il provider di hosting di InfoSec Institute è Digital Ocean, quindi possiamo notare che da qualche parte. Possiamo anche vedere che il sito web utilizza un Content Management System (CMS) chiamato Expression Engine, un framework di sviluppo software chiamato CodeIgniter, che il linguaggio di back-end è PHP e così via. Potremmo cercare difetti in quelle tecnologie che sottoporrebbero il sito Web a vulnerabilità. Potremmo anche vedere che il software del server web è stato recentemente modificato da Apache / 2.2.31. Conoscere la versione esatta del software server è utile come vulnerabilità per vari software server sono pubblicati on-line regolarmente e patchato con le versioni più recenti del software che spesso non sono implementate in tempo dalla maggior parte dei siti web. Inoltre, conoscere il software del server restringe la portata della ricerca. Se sappiamo che il server è in esecuzione Apache, non saremmo alla ricerca di vulnerabilità per il server Microsoft IIS. Tuttavia, a volte le informazioni sul server fornite dal sito Web possono essere un’esca/honeypot.
Maltego
Maltego è uno strumento di data mining che può aiutarci a ottenere e visualizzare la raccolta di informazioni. Ha diverse versioni, una delle quali è libero di giocare con. La versione gratuita è la cosiddetta “Community Edition”e si può scaricare da https://www.paterva.com/web7/downloads.php#tab-3. Tutto quello che devi fare per eseguirlo è registrare un account con Paterva. La versione gratuita limita però il numero di risultati estratti che possono essere mostrati a voi.
Figura 6: Maltego pre-costruito macchine per limitare i risultati a 12 enti nella versione gratuita
Maltego Primer
una Volta installato Maltego, impostare l’account e si è registrato in, si dovrebbe vedere una finale passo come mostrato di seguito:
Figura 7: Installato con successo Maltego
fare Clic su “Aprire un vuoto grafico e mi permetta di giocare.”
Nella casella tavolozza a sinistra, puoi vedere le diverse entità che puoi incorporare nelle tue ricerche. Trascinare e rilasciare l’entità di dominio nella Tavolozza al grafico. Si dovrebbe vedere una singola icona Terra con il sito paterva.com come etichetta.
Figura 8: Aggiunta di un’entità di dominio al grafico
Ora, modificare il nome di dominio per il dominio per il quale si desidera acquisire nuove informazioni. Per fare questo, è necessario fare doppio clic sul nome di dominio e digitare il nome di dominio desiderato.
Dopo aver preparato il dominio da esplorare, è possibile eseguire trasformazioni o query per informazioni diverse per il dominio facendo clic con il pulsante destro del mouse sull’entità del dominio e scegliendo la query desiderata.
Figura 9: Una fetta delle diverse trasformazioni disponibili in Maltego
Per illustrare come funzionano queste trasformazioni, se scegli di trasformare l’entità in numeri di telefono utilizzando i motori di ricerca, otterrai alcuni numeri di telefono per InfoSec Institute. È possibile utilizzare questi numeri di telefono per rendere il vostro attacco di ingegneria sociale più convincente, impiegare vishing, pretesti e così via.
Figura 10: La trasformazione in numeri di telefono utilizzando i motori di ricerca viene applicata su InfoSec Institute e vengono visualizzati cinque numeri di telefono.
Ora, se applichiamo un’altra trasformazione, i nostri risultati aumenteranno. Ancora meglio, possiamo applicare nuove trasformazioni ai risultati che si verificano dalle nostre trasformazioni precedenti.
Per illustrare questo, se facciamo clic destro sul primo numero di telefono restituito – otterremmo diverse trasformazioni che possiamo applicare ad esso. Diciamo che scegliamo di trasformare il numero di telefono in URL (ovvero, ottenere gli URL in cui è menzionato il numero di telefono). Ciò ci porterebbe a un livello più profondo nella gerarchia/relazione dei risultati e ci mostrerà alcuni URL in cui è possibile controllare manualmente chi risponde al numero di telefono e così via.
Figura 11: Andare a un livello più profondo in Maltego. Ottenere gli URL in cui viene menzionato uno dei numeri di telefono associati a InfoSec Institute
Come puoi vedere, ci sono un sacco di entità e trasformazioni da esplorare.
Active Information Gathering Tools
Nmap consente di eseguire scansioni su macchine mirate per vedere quali porte sono aperte su di esse e quindi quali applicazioni sono in esecuzione su di esse. La differenza dagli strumenti sopra menzionati è che stai interagendo attivamente con la macchina data inviando pacchetti appositamente predisposti ad essa. Inoltre, scoprire porte aperte Nmap ci permette potenzialmente di rilevare il sistema operativo della macchina e scoprire i servizi che sono in esecuzione sulle porte aperte.
È possibile scaricare Nmap da https://nmap.org/download.html o http://nmap.en.softonic.com/. È possibile utilizzare Nmap dalla CLI o da un’applicazione GUI.
Dopo l’installazione, per vedere i diversi modi in cui è possibile utilizzare nmap, è sufficiente digitare nmap e premere Invio.
Figura 12: La schermata di aiuto di Nmap
Un semplice controllo per le porte aperte e i servizi corrispondenti su di esse è nmap-sS-Pn<INDIRIZZO IP >. Questo tenterà una scoperta furtiva e tratterà la macchina come viva.
Per rilevare il sistema operativo su cui è in esecuzione la macchina, è possibile utilizzare il flag-O e così via.
Se Nmap sembra uno strumento che si desidera esplorare di più, si prega di visitare l’articolo di Irfan Shakeel su Nmap.
Conclusione
Abbiamo dimostrato le basi del processo di test di penetrazione, il ruolo della raccolta di informazioni in questo processo e abbiamo dimostrato alcuni degli strumenti più popolari per la raccolta di informazioni là fuori. L’utilizzo di questi strumenti può non solo aiutare a raccogliere informazioni sufficienti per una raccolta di informazioni fruttuosa, ma possono anche aiutare ad aumentare l’efficienza e l’efficacia dell’intero processo di test di penetrazione.