際際滷

際際滷Share a Scribd company logo
Alessandra Zullo
www.alessandrazullo.it
Information Gathering
Agosto 2016
Introduzione
Per information gathering si intende la fase di raccolta di dati e鍖et-
tuata durante un penetration test.
Tale operazione ha lobiettivo di raccogliere quante pi湛 informazio-
ni possibili circa lavversario senza per嘆 e鍖ettuare alcun attacco attivo.
Si parla di intelligence gathering quando 竪 usato un ragionamento
logico al 鍖ne di ottenere le informazioni desiderate.
Ad esempio se il CEO dellazienda avversaria pubblica sui social mol-
te notizie riguardanti una determinata squadra di calcio allora la sua
password "potrebbe" essere il nome di tale squadra.
Si parla di open source intelligence gathering quando per raccoglie-
re le informazioni si utilizzano tecniche legali cio竪 si e鍖ettuano ricerche
web o ragionamenti logici sulle informazioni rivelate dai social, oppure
quando si e鍖ettuano attacchi a database o attacchi di social enginee-
ring.
Tutto ci嘆 che sar spiegato nel resto del documentoo 竪 ai limiti del
legale.
Information Gathering disponibile su www.alessandrazullo.it
1. SYSTEM IDENTIFICATION
1 System Identi鍖cation
Loperazione di information gathering 竪 anche conosciuta come system
identi鍖cation.
La prima informazione da raccogliere per lidenti鍖cazione di un sistema
竪 il dominio o lindirizzo IP dellavversario.
1.1 Informazioni disponibili pubblicamente.
Le informazioni che le compagnie di web server o web-hosting raccol-
gono e rendono disponibili pubblicamente possono dire molto circa un
determinato sistema.
La compagnia Netcraft, ad esempio, tiene traccia del tempo di vita
di un sistema e鍖ettuando delle query per memorizzare lo stato del
sistema.
Tali informazioni sono rese pubbliche sul sito www.netcraft.com.
Esempio
Nel seguente esempio si pu嘆 notare che il risultato ottenuto dalla query
fornisce informazioni come titolo del sito, indirizzo IP, compagnia di
hosting, web server, sistema operativo, indice di rischio e tecnologie
utilizzate.
Figura 1: Esempio query su www.alessandrazullo.it
Information Gathering disponibile su www.alessandrazullo.it
1. SYSTEM IDENTIFICATION
1.2 Identi鍖cazione del proprietario.
Dopo aver ottenuto lindirizzo IP o il dominio dellavversario 竪 possibile
usare appositi tool/software per raccogliere informazioni circa il proprie-
tario del dominio.
Uno degli strumenti pi湛 utilizzati 竪 Whois Lookup disponibile sia come
comando di Kali Linux sia tramite siti web.
Whois come comando di KALI: Lanciando la seguente stringa sul
terminale di Kali:
1 w h o i s nomedominio
竪 possibile ottenere informazioni preziose sul dominio come ad esempio
lidentita del proprietario e le sue informazioni di contatto (indirizzo
di casa o numero di telefono).
Perch竪 accade questo? Perch竪 durante la registrazione di un dominio
si 竪 obbligati ad inserire informazioni circa lidentit del proprietario del
dominio (nome, cognome, indirizzo, cellulare ecc.); 竪 possibile richiedere
il servizio "domains by proxy" che o鍖re una registrazione privata che
permette di nascondere tali informazioni.
1.3 Identi鍖cazione dei servizi
Lidenti鍖cazione dei servizi 竪 un passo di cruciale importanza poich竪
permette di ottenere tantissime informazioni circa il sistema.
Dapprima si pu嘆 eseguire un ping per controllare se il sistema 竪 attual-
mente attivo (in esecuzione).
Per e鍖ettuare il ping bisogna lanciare il seguente comando:
1 p i n g < nomeDominio OR i n d i r i z z o I p >
se la risposta 竪 positiva allora signi鍖ca che il sistema 竪 attualmente in
esecuzione.
Information Gathering disponibile su www.alessandrazullo.it
1. SYSTEM IDENTIFICATION
Figura 2: Esempio ping di www.google.com
Successivamente 竪 possibile lanciare il comando traceroute per trac-
ciare il percorso compiuto dal pacchetto da quando parte dallhost
sorgente 鍖no a quando arriva allhost di destinazione. Grazie a tale
comando 竪 possibile ottenere informazioni circa i computer presenti in
una rete, infatti se due o pi湛 host hanno indirizzi IP simili "forse" ap-
partengono ad una stessa rete.
Su Windows 竪 possibile lanciare
1 t r a c e r t < nomeDominio OR i n d i r i z z o I p >
mentre su Linux il comando da lanciare 竪:
1 t r a c e r o u t e < nomeDominio OR i n d i r i z z o I p >
Information Gathering disponibile su www.alessandrazullo.it
1. SYSTEM IDENTIFICATION
Figura 3: Esempio traceroute di www.google.com
1.4 DNS
Unaltra possibile modalit per la raccolta di informazioni 竪 lutilizzo di
un DNS Server che permette di ottenere maggiori dettagli circa un
dominio.
Un DNS(Domain Name System) Server non 竪 altro che un sistema
che permette di tradurre un nome di dominio (facilmente leggibile dagli
umani) in un indirizzo IP.
Ogni dispositivo ha una lista di nomi di dominio a cui sono associati
i corrispondenti indirizzi IP; in tal modo lutente pu嘆 facilemente ri-
cordare i nomi di dominio e richiederli ogni qualvolta ne ha bisogno,
il dispositivo in maniera del tutto semplice legger il corrispondente
indirizzo IP nella lista.
Nslookup
Per ottenere informazioni circa un dominio 竪 possibile lanciare il co-
mando:
1 n s l o o k u p nomedominio
E anche possibile ottenere informazioni circa il server mail utilizzato
dal sito; basta richiedere il record mx lanciando il seguente comando:
1 n s l o o k u p
2 s e t t y p e mx
3 nome d o m i n i o
Information Gathering disponibile su www.alessandrazullo.it
1. SYSTEM IDENTIFICATION
Ci sono due modi per lanciare il comando nslookup:
1. Non interattivo: lanciando il comando nslookup nomeDominio
sar restituito il corrispondente indirizzoIP associato a tale dominio;
2. Interattivo: lanciando il comando nslookup seguito da altri co-
mandi che servono per interrogare i determinati record.
Figura 4: Esempio: nslookup interattivo su www.alessandrazullo.it
Host
Un altro comando per linterrogazione dei DNS 竪 host che permette
di ottenere il nome del server associato al dominio passato come
argomento. Il comando da lanciare 竪:
1 h o s t  t ns nomedominio
dove
 t sta per type
 ns sta per nameserver
Figura 5: Esempio: host su alessandrazullo.it
Information Gathering disponibile su www.alessandrazullo.it
1. SYSTEM IDENTIFICATION
1.5 Zone transfer
I DNS implementano uno spazio gerarchico dei nomi che permette di
distrubuire le informazioni relative alle associazioni tra nomi e indirizzi
IP su vari server DNS conosciuti anche com nameserver.
A ogni dominio della struttura gerarchica corrisponde uno o pi湛 name-
server.
Un singolo dominio 竪 suddiviso in varie parti dette zone; ogni name
server 竪 responsabile di una di queste zone.
Genericamente per ogni dominio vi 竪 un name server primario che si
occupa di restituire le informazioni di reiferimento per poter contattare
i name server dei sottodomini di tale dominio.
Inoltre, per ogni name server primario, vi sono anche dei backup detti
name server secondari mantenuti aggiornati mediante il meccanismo
conosciuto come zone transfer.
Se un avversario pu嘆 richiedere di ricevere un intero zone transfer per
un dominio allora pu嘆 utilizzare tale informazione per capire la topo-
logia della rete della compagnia.
Per richiedere le informazioni di un zone transfer 竪 possibile lanciare il
seguente comando:
1 h o s t  l nomeDominio n a m e S e r v e r
Vi sono due metodi comuni per rendere sicuro un zone transfer [1]1:
 Bind DNS access control list che consiste di una lista di indirizzi
IP a cui sono negati o permessi determinati servizi o query di
zone transfer. In particolare vi sono 4 opzioni permesse:
1. none: nessun indirizzo IP ha il permesso;
2. any: tutti gli indirizzi IP hanno il permesso;
3. localhost: tutte le macchine connesse allhost locale hanno il
permesso;
4. localnet: tutte le reti connesse alla rete locale hanno il
permesso.
E anche possibile utilizzare la funzione allow-transfer seguita da
una lista di host o di indirizzi IP che indica i dispositivi a cui 竪
1https://www.sans.org/reading-room/whitepapers/dns/
securing-dns-zone-transfer-868
Information Gathering disponibile su www.alessandrazullo.it
1. SYSTEM IDENTIFICATION
ristretto laccesso.
Il problema del Bind DNS access control list 竪 che lautenticazione
controlla solo lindirizzo IP, per cui non 竪 possibile evitare attacchi
di IP Spoo鍖ng.
 Transaction Signatures (TSIG) de鍖nita dal RFC 2845; 竪 uti-
lizzato un segreto condiviso e una funzione hash one way per
autenticare i messaggi DNS (risposte e aggiornamenti).
In conclusione tramite uno zone transfer 竪 possibile ottenere pagine
e pagine di DNS entry e da esse individuare eventuali vulnerabilita.
Ad esempio leggendo infomazioni tipo mail.nomesito.com 竪 possibile
rendersi conto che vi 竪 un mail server che potrebbe essere in esecuzione
sulla porta 25 per SMTP o 110 per POP3.
Se si scopre che vi 竪 in esecuzione un server mail 竪 possibile e鍖ettuare
attacchi per lidenti鍖cazione delle username e password per accedere e
leggere le email contenenti informazioni sensitive dellazienda.
1.6 Identi鍖cazione informazioni mediante indirizzo EMAIL
Un ottimo livello di sicurezza 竪 ottenuto esponendo solo i servizi ac-
cessibili da remoto e necessari per il funzionamento del sistema (web
server, mail server, VPN server e altri come SSH o FTP); tali servizi
sono quelli pi湛 attaccati.
Un ottimo modo per ottenere le credenziali per laccesso a tali servizi
竪 quello di sfruttare le informazioni associate agli indirizzi email dei
dipendenti o proprietari del sistema che si vuole hackerare.
E possibile utilizzare un tool scritto in Python chiamato the Harvester
che permette di perlustrare tramite un motore di ricerca tutte le infor-
mazioni associate ad un indirizzo email.
Il comando da lanciare 竪 il seguente:
1 t h e h a r v e s t e r d nomeDominio  l n u m e r o R i c h i e s t e b
m o t o r e D i R i c e r c a ( a l l p e r p r o v a r e su t u t t i )
Information Gathering disponibile su www.alessandrazullo.it
1. SYSTEM IDENTIFICATION
Figura 6: Esempio: ricerca email su microsoft.com
1.7 Banner Grabbing
Il banner grabbing 竪 una tecnica che permette di ottenere informazioni
circa il sistema operativo o il server sottostante ad un sito. Esso con-
Information Gathering disponibile su www.alessandrazullo.it
1. SYSTEM IDENTIFICATION
siste nel provare a connettersi mediante telnet o FTP.
I server FTP o telnet allaccesso mostrano dei messaggi testuali che
prendono il nome di banner; essi possono indicare chiaramente il servi-
zio in esecuzione; ad esempio connettendosi ad un server FTP anonimo
si ottiene il seguente risultato:
1 220 ProFTPD S e r v e r ( Welcome . . . ) "
"
in cui:
 220 indica che il server 竪 pronto ad accettare un nuovo utente
 ProFTPD indica che il server FTP in esecuzione
Mediante una ricerca (anche su un motore di ricerca) un utente ma-
lizioso potrebbe conoscere il sistema operativo o i requisiti di sistema
necessari per eseguire quello speci鍖co server FTP.
E buona norma per lamministratore di sistema attuare tecniche di
"spoo鍖ng" mostrando informazioni del tutto opposte a quelle reali, ad
esempio se si utilizza un sistema Unix si potrebbe impostare come ban-
ner un messaggio come il seguente "WS_FTP Server" ovvero il nome
di un server FTP basato su Windows.
1.8 Identi鍖care i servizi tramite porte o protocolli
Una delle fasi fondamentali per la raccolta delle informazioni 竪 liden-
ti鍖cazione dei servizi attivi che pu嘆 essere fatta controllando il tra鍖co
di rete, i protocolli e le porte utilizzate.
Netscat
Netstat 竪 un tool che permette di conoscere i servizi (e le rispettive
porte) in esecuzione su un computer.
Lanciando il comando :
1 n e t s t a t a
si ottiene una lista delle connessioni (TCP/UDP) attualmente attive sul
computer.
Information Gathering disponibile su www.alessandrazullo.it
1. SYSTEM IDENTIFICATION
1.9 Port Scanning
E possibile individuare attacchi da e鍖ettuare ad un sistema mappando
la sua rete quindi ascoltando il tra鍖co in uscita e in entrata.
NETCAT
Netcat 竪 un tool che permette la lettura o la scrittura di dati attraverso
connessioni di rete; utilizza sia il protocollo TCP sia UDP. Lanciando
il comando:
1 nc h o s t p o r t
viene creata una connessione TCP sulla porta passata come argomento.
E possibile passare il 鍖ag c per speci鍖care il comando da eseguire subito
dopo la connessione.
Per usare netcat 竪 possibile lanciare il seguente comando:
1 nc vv h o s t p o r t a
Nmap
Nmap 竪 uno standard industriale per la scansione delle porte.
Oggigiorno i 鍖rewall e altri sistemi di prevenzione hanno fatto grandi
passi nel rilevare e bloccare la scansione del tra鍖co per cui 竪 possibile
che in alcuni casi che il risultato restituito sia nullo.
Quando Nmap non 竪 bloccato da un 鍖rewall esso permette di ottenere
informazioni circa gli host attivi e permette di ascoltare il tra鍖co di
una porta.
SYN Scan
Una connessione TCP inizia con un handshake composto da tre fasi:
1. SYN
2. SYN-ACK
3. ACK
Information Gathering disponibile su www.alessandrazullo.it
1. SYSTEM IDENTIFICATION
Figura 7: Penetration Testing di Georgia Weidman
Una scansione SYN 竪 una scansione TCP che non termina lhandshake
TCP; Nmap invia il messaggio di SYN e aspetta il messaggio di SYN-
ACK che gli arriva solo se la porta invocata 竪 aperta, per嘆 non invia
mai il messaggio di ACK per completare la connessione.
Se il messaggio di SYN-ACK non arriva allora signi鍖ca che la porta
non 竪 disponibile oppure che 竪 chiusa o che le connessioni sono 鍖ltrate
(cio竪 permesse solo a determinate macchine).
Grazie a tale handshake non completo Nmap capisce se la porta 竪
aperta senza doversi mai connettere alla macchina.
Per eseguire nmap bisogna lanciare il seguente comando:
1 nmap sS r a n g e H o s t oA f i l e L o g
dove i 鍖ag indicano:
 -sS: scansione SYN;
 -oA: il risultato sar memorizzato nel 鍖le nominato 鍖leLOG (se
omesso sar stampato su stdout);
 rangeHost: range degli indirizzi da analizzare.
Figura 8: NMAP 竪 possibile notare che le porte sulla VM sono
tutte chiuse, mentre in Windows vi 竪 la porta 6646 attiva
Information Gathering disponibile su www.alessandrazullo.it
1. SYSTEM IDENTIFICATION
NOTA BENE: il fatto che vi siano porte aperte non implica che
siano presenti delle vulnerabilit nel sistema.
E possibile conoscere i software in esecuzione sulle porte scansiona-
te; tale opzione risulta importante poich竪 grazie ad essa 竪 possibile
confrontare i banner letti tramite una connessione con netcat con il
software indicato da nmap.
Tale risultato 竪 raggiunto aggiungendo uno dei due seguenti 鍖ag:
 -sV: sono stampate tutte le informazioni possibili;
 -sT: 竪 eseguita una scansione TCP completa.
Scansione UDP
Una connessione UDP 竪 una connessione senza stato.
E possibile eseguire una scansione UDP tramite il 鍖ag -sU grazie ad
esso Nmap invia dei pacchetti UDP alla speci鍖ca porta.
Nel caso UDP quando 竪 spedito un pacchetto se 竪 ricevuta una risposta
allora la porta pu嘆 essere considerata aperta; nel caso in cui la porta
竪 chiusa mentre si riceve un messaggio ICMP.
Nel caso UDP Nmap non 竪 sempre in grado di capire se la porta 竪
chiusa o se 竪 鍖ltrata da un 鍖rewall, infatti in molti casi nel campo
STATE vi 竪 open | 鍖ltered che indica che Nmap non 竪 riuscito ad
individuare esattamente lo stato della porta.
Scansione di una speci鍖ca porta
E possibile impostare nmap in modo da scansionare il tra鍖co di una
speci鍖ca porta; basta lanciare il comando
1 nmap p n u m e r o P o r t a sV  r a n g e H o s t
In alcuni casi, utilizzando il 鍖ag -sV la scansione richiesta 竪 cos狸 potente
da mandare in crash il servizio scansionato (Esempio: sistemi SCADA).
Information Gathering disponibile su www.alessandrazullo.it
1. SYSTEM IDENTIFICATION
1.10 Dmitry
Kali Linux mette a disposizione Dmitry grazie al quale 竪 possibile
ottenere tutte le informazioni precedenti lanciando un unico comando:
1 d m i t r y w i n s e p f b nomedominio
dove:
 w sta per scansione whois;
 i sta per ricerca/risoluzione indirizzo Ip;
 n sta per i risultati ottenuti da netcraft;
 e sta per la ricerca degli indirizzi email;
 p sta per la scansione delle porte TCP;
 f sta per la scansione delle porte TCP con risultati stampati per
ogni porta;
 b sta per la ricerca dei banner testuali ottenuti alla connessione
ad una porta.
Information Gathering disponibile su www.alessandrazullo.it

More Related Content

Information Gathering

  • 2. Introduzione Per information gathering si intende la fase di raccolta di dati e鍖et- tuata durante un penetration test. Tale operazione ha lobiettivo di raccogliere quante pi湛 informazio- ni possibili circa lavversario senza per嘆 e鍖ettuare alcun attacco attivo. Si parla di intelligence gathering quando 竪 usato un ragionamento logico al 鍖ne di ottenere le informazioni desiderate. Ad esempio se il CEO dellazienda avversaria pubblica sui social mol- te notizie riguardanti una determinata squadra di calcio allora la sua password "potrebbe" essere il nome di tale squadra. Si parla di open source intelligence gathering quando per raccoglie- re le informazioni si utilizzano tecniche legali cio竪 si e鍖ettuano ricerche web o ragionamenti logici sulle informazioni rivelate dai social, oppure quando si e鍖ettuano attacchi a database o attacchi di social enginee- ring. Tutto ci嘆 che sar spiegato nel resto del documentoo 竪 ai limiti del legale. Information Gathering disponibile su www.alessandrazullo.it
  • 3. 1. SYSTEM IDENTIFICATION 1 System Identi鍖cation Loperazione di information gathering 竪 anche conosciuta come system identi鍖cation. La prima informazione da raccogliere per lidenti鍖cazione di un sistema 竪 il dominio o lindirizzo IP dellavversario. 1.1 Informazioni disponibili pubblicamente. Le informazioni che le compagnie di web server o web-hosting raccol- gono e rendono disponibili pubblicamente possono dire molto circa un determinato sistema. La compagnia Netcraft, ad esempio, tiene traccia del tempo di vita di un sistema e鍖ettuando delle query per memorizzare lo stato del sistema. Tali informazioni sono rese pubbliche sul sito www.netcraft.com. Esempio Nel seguente esempio si pu嘆 notare che il risultato ottenuto dalla query fornisce informazioni come titolo del sito, indirizzo IP, compagnia di hosting, web server, sistema operativo, indice di rischio e tecnologie utilizzate. Figura 1: Esempio query su www.alessandrazullo.it Information Gathering disponibile su www.alessandrazullo.it
  • 4. 1. SYSTEM IDENTIFICATION 1.2 Identi鍖cazione del proprietario. Dopo aver ottenuto lindirizzo IP o il dominio dellavversario 竪 possibile usare appositi tool/software per raccogliere informazioni circa il proprie- tario del dominio. Uno degli strumenti pi湛 utilizzati 竪 Whois Lookup disponibile sia come comando di Kali Linux sia tramite siti web. Whois come comando di KALI: Lanciando la seguente stringa sul terminale di Kali: 1 w h o i s nomedominio 竪 possibile ottenere informazioni preziose sul dominio come ad esempio lidentita del proprietario e le sue informazioni di contatto (indirizzo di casa o numero di telefono). Perch竪 accade questo? Perch竪 durante la registrazione di un dominio si 竪 obbligati ad inserire informazioni circa lidentit del proprietario del dominio (nome, cognome, indirizzo, cellulare ecc.); 竪 possibile richiedere il servizio "domains by proxy" che o鍖re una registrazione privata che permette di nascondere tali informazioni. 1.3 Identi鍖cazione dei servizi Lidenti鍖cazione dei servizi 竪 un passo di cruciale importanza poich竪 permette di ottenere tantissime informazioni circa il sistema. Dapprima si pu嘆 eseguire un ping per controllare se il sistema 竪 attual- mente attivo (in esecuzione). Per e鍖ettuare il ping bisogna lanciare il seguente comando: 1 p i n g < nomeDominio OR i n d i r i z z o I p > se la risposta 竪 positiva allora signi鍖ca che il sistema 竪 attualmente in esecuzione. Information Gathering disponibile su www.alessandrazullo.it
  • 5. 1. SYSTEM IDENTIFICATION Figura 2: Esempio ping di www.google.com Successivamente 竪 possibile lanciare il comando traceroute per trac- ciare il percorso compiuto dal pacchetto da quando parte dallhost sorgente 鍖no a quando arriva allhost di destinazione. Grazie a tale comando 竪 possibile ottenere informazioni circa i computer presenti in una rete, infatti se due o pi湛 host hanno indirizzi IP simili "forse" ap- partengono ad una stessa rete. Su Windows 竪 possibile lanciare 1 t r a c e r t < nomeDominio OR i n d i r i z z o I p > mentre su Linux il comando da lanciare 竪: 1 t r a c e r o u t e < nomeDominio OR i n d i r i z z o I p > Information Gathering disponibile su www.alessandrazullo.it
  • 6. 1. SYSTEM IDENTIFICATION Figura 3: Esempio traceroute di www.google.com 1.4 DNS Unaltra possibile modalit per la raccolta di informazioni 竪 lutilizzo di un DNS Server che permette di ottenere maggiori dettagli circa un dominio. Un DNS(Domain Name System) Server non 竪 altro che un sistema che permette di tradurre un nome di dominio (facilmente leggibile dagli umani) in un indirizzo IP. Ogni dispositivo ha una lista di nomi di dominio a cui sono associati i corrispondenti indirizzi IP; in tal modo lutente pu嘆 facilemente ri- cordare i nomi di dominio e richiederli ogni qualvolta ne ha bisogno, il dispositivo in maniera del tutto semplice legger il corrispondente indirizzo IP nella lista. Nslookup Per ottenere informazioni circa un dominio 竪 possibile lanciare il co- mando: 1 n s l o o k u p nomedominio E anche possibile ottenere informazioni circa il server mail utilizzato dal sito; basta richiedere il record mx lanciando il seguente comando: 1 n s l o o k u p 2 s e t t y p e mx 3 nome d o m i n i o Information Gathering disponibile su www.alessandrazullo.it
  • 7. 1. SYSTEM IDENTIFICATION Ci sono due modi per lanciare il comando nslookup: 1. Non interattivo: lanciando il comando nslookup nomeDominio sar restituito il corrispondente indirizzoIP associato a tale dominio; 2. Interattivo: lanciando il comando nslookup seguito da altri co- mandi che servono per interrogare i determinati record. Figura 4: Esempio: nslookup interattivo su www.alessandrazullo.it Host Un altro comando per linterrogazione dei DNS 竪 host che permette di ottenere il nome del server associato al dominio passato come argomento. Il comando da lanciare 竪: 1 h o s t t ns nomedominio dove t sta per type ns sta per nameserver Figura 5: Esempio: host su alessandrazullo.it Information Gathering disponibile su www.alessandrazullo.it
  • 8. 1. SYSTEM IDENTIFICATION 1.5 Zone transfer I DNS implementano uno spazio gerarchico dei nomi che permette di distrubuire le informazioni relative alle associazioni tra nomi e indirizzi IP su vari server DNS conosciuti anche com nameserver. A ogni dominio della struttura gerarchica corrisponde uno o pi湛 name- server. Un singolo dominio 竪 suddiviso in varie parti dette zone; ogni name server 竪 responsabile di una di queste zone. Genericamente per ogni dominio vi 竪 un name server primario che si occupa di restituire le informazioni di reiferimento per poter contattare i name server dei sottodomini di tale dominio. Inoltre, per ogni name server primario, vi sono anche dei backup detti name server secondari mantenuti aggiornati mediante il meccanismo conosciuto come zone transfer. Se un avversario pu嘆 richiedere di ricevere un intero zone transfer per un dominio allora pu嘆 utilizzare tale informazione per capire la topo- logia della rete della compagnia. Per richiedere le informazioni di un zone transfer 竪 possibile lanciare il seguente comando: 1 h o s t l nomeDominio n a m e S e r v e r Vi sono due metodi comuni per rendere sicuro un zone transfer [1]1: Bind DNS access control list che consiste di una lista di indirizzi IP a cui sono negati o permessi determinati servizi o query di zone transfer. In particolare vi sono 4 opzioni permesse: 1. none: nessun indirizzo IP ha il permesso; 2. any: tutti gli indirizzi IP hanno il permesso; 3. localhost: tutte le macchine connesse allhost locale hanno il permesso; 4. localnet: tutte le reti connesse alla rete locale hanno il permesso. E anche possibile utilizzare la funzione allow-transfer seguita da una lista di host o di indirizzi IP che indica i dispositivi a cui 竪 1https://www.sans.org/reading-room/whitepapers/dns/ securing-dns-zone-transfer-868 Information Gathering disponibile su www.alessandrazullo.it
  • 9. 1. SYSTEM IDENTIFICATION ristretto laccesso. Il problema del Bind DNS access control list 竪 che lautenticazione controlla solo lindirizzo IP, per cui non 竪 possibile evitare attacchi di IP Spoo鍖ng. Transaction Signatures (TSIG) de鍖nita dal RFC 2845; 竪 uti- lizzato un segreto condiviso e una funzione hash one way per autenticare i messaggi DNS (risposte e aggiornamenti). In conclusione tramite uno zone transfer 竪 possibile ottenere pagine e pagine di DNS entry e da esse individuare eventuali vulnerabilita. Ad esempio leggendo infomazioni tipo mail.nomesito.com 竪 possibile rendersi conto che vi 竪 un mail server che potrebbe essere in esecuzione sulla porta 25 per SMTP o 110 per POP3. Se si scopre che vi 竪 in esecuzione un server mail 竪 possibile e鍖ettuare attacchi per lidenti鍖cazione delle username e password per accedere e leggere le email contenenti informazioni sensitive dellazienda. 1.6 Identi鍖cazione informazioni mediante indirizzo EMAIL Un ottimo livello di sicurezza 竪 ottenuto esponendo solo i servizi ac- cessibili da remoto e necessari per il funzionamento del sistema (web server, mail server, VPN server e altri come SSH o FTP); tali servizi sono quelli pi湛 attaccati. Un ottimo modo per ottenere le credenziali per laccesso a tali servizi 竪 quello di sfruttare le informazioni associate agli indirizzi email dei dipendenti o proprietari del sistema che si vuole hackerare. E possibile utilizzare un tool scritto in Python chiamato the Harvester che permette di perlustrare tramite un motore di ricerca tutte le infor- mazioni associate ad un indirizzo email. Il comando da lanciare 竪 il seguente: 1 t h e h a r v e s t e r d nomeDominio l n u m e r o R i c h i e s t e b m o t o r e D i R i c e r c a ( a l l p e r p r o v a r e su t u t t i ) Information Gathering disponibile su www.alessandrazullo.it
  • 10. 1. SYSTEM IDENTIFICATION Figura 6: Esempio: ricerca email su microsoft.com 1.7 Banner Grabbing Il banner grabbing 竪 una tecnica che permette di ottenere informazioni circa il sistema operativo o il server sottostante ad un sito. Esso con- Information Gathering disponibile su www.alessandrazullo.it
  • 11. 1. SYSTEM IDENTIFICATION siste nel provare a connettersi mediante telnet o FTP. I server FTP o telnet allaccesso mostrano dei messaggi testuali che prendono il nome di banner; essi possono indicare chiaramente il servi- zio in esecuzione; ad esempio connettendosi ad un server FTP anonimo si ottiene il seguente risultato: 1 220 ProFTPD S e r v e r ( Welcome . . . ) " " in cui: 220 indica che il server 竪 pronto ad accettare un nuovo utente ProFTPD indica che il server FTP in esecuzione Mediante una ricerca (anche su un motore di ricerca) un utente ma- lizioso potrebbe conoscere il sistema operativo o i requisiti di sistema necessari per eseguire quello speci鍖co server FTP. E buona norma per lamministratore di sistema attuare tecniche di "spoo鍖ng" mostrando informazioni del tutto opposte a quelle reali, ad esempio se si utilizza un sistema Unix si potrebbe impostare come ban- ner un messaggio come il seguente "WS_FTP Server" ovvero il nome di un server FTP basato su Windows. 1.8 Identi鍖care i servizi tramite porte o protocolli Una delle fasi fondamentali per la raccolta delle informazioni 竪 liden- ti鍖cazione dei servizi attivi che pu嘆 essere fatta controllando il tra鍖co di rete, i protocolli e le porte utilizzate. Netscat Netstat 竪 un tool che permette di conoscere i servizi (e le rispettive porte) in esecuzione su un computer. Lanciando il comando : 1 n e t s t a t a si ottiene una lista delle connessioni (TCP/UDP) attualmente attive sul computer. Information Gathering disponibile su www.alessandrazullo.it
  • 12. 1. SYSTEM IDENTIFICATION 1.9 Port Scanning E possibile individuare attacchi da e鍖ettuare ad un sistema mappando la sua rete quindi ascoltando il tra鍖co in uscita e in entrata. NETCAT Netcat 竪 un tool che permette la lettura o la scrittura di dati attraverso connessioni di rete; utilizza sia il protocollo TCP sia UDP. Lanciando il comando: 1 nc h o s t p o r t viene creata una connessione TCP sulla porta passata come argomento. E possibile passare il 鍖ag c per speci鍖care il comando da eseguire subito dopo la connessione. Per usare netcat 竪 possibile lanciare il seguente comando: 1 nc vv h o s t p o r t a Nmap Nmap 竪 uno standard industriale per la scansione delle porte. Oggigiorno i 鍖rewall e altri sistemi di prevenzione hanno fatto grandi passi nel rilevare e bloccare la scansione del tra鍖co per cui 竪 possibile che in alcuni casi che il risultato restituito sia nullo. Quando Nmap non 竪 bloccato da un 鍖rewall esso permette di ottenere informazioni circa gli host attivi e permette di ascoltare il tra鍖co di una porta. SYN Scan Una connessione TCP inizia con un handshake composto da tre fasi: 1. SYN 2. SYN-ACK 3. ACK Information Gathering disponibile su www.alessandrazullo.it
  • 13. 1. SYSTEM IDENTIFICATION Figura 7: Penetration Testing di Georgia Weidman Una scansione SYN 竪 una scansione TCP che non termina lhandshake TCP; Nmap invia il messaggio di SYN e aspetta il messaggio di SYN- ACK che gli arriva solo se la porta invocata 竪 aperta, per嘆 non invia mai il messaggio di ACK per completare la connessione. Se il messaggio di SYN-ACK non arriva allora signi鍖ca che la porta non 竪 disponibile oppure che 竪 chiusa o che le connessioni sono 鍖ltrate (cio竪 permesse solo a determinate macchine). Grazie a tale handshake non completo Nmap capisce se la porta 竪 aperta senza doversi mai connettere alla macchina. Per eseguire nmap bisogna lanciare il seguente comando: 1 nmap sS r a n g e H o s t oA f i l e L o g dove i 鍖ag indicano: -sS: scansione SYN; -oA: il risultato sar memorizzato nel 鍖le nominato 鍖leLOG (se omesso sar stampato su stdout); rangeHost: range degli indirizzi da analizzare. Figura 8: NMAP 竪 possibile notare che le porte sulla VM sono tutte chiuse, mentre in Windows vi 竪 la porta 6646 attiva Information Gathering disponibile su www.alessandrazullo.it
  • 14. 1. SYSTEM IDENTIFICATION NOTA BENE: il fatto che vi siano porte aperte non implica che siano presenti delle vulnerabilit nel sistema. E possibile conoscere i software in esecuzione sulle porte scansiona- te; tale opzione risulta importante poich竪 grazie ad essa 竪 possibile confrontare i banner letti tramite una connessione con netcat con il software indicato da nmap. Tale risultato 竪 raggiunto aggiungendo uno dei due seguenti 鍖ag: -sV: sono stampate tutte le informazioni possibili; -sT: 竪 eseguita una scansione TCP completa. Scansione UDP Una connessione UDP 竪 una connessione senza stato. E possibile eseguire una scansione UDP tramite il 鍖ag -sU grazie ad esso Nmap invia dei pacchetti UDP alla speci鍖ca porta. Nel caso UDP quando 竪 spedito un pacchetto se 竪 ricevuta una risposta allora la porta pu嘆 essere considerata aperta; nel caso in cui la porta 竪 chiusa mentre si riceve un messaggio ICMP. Nel caso UDP Nmap non 竪 sempre in grado di capire se la porta 竪 chiusa o se 竪 鍖ltrata da un 鍖rewall, infatti in molti casi nel campo STATE vi 竪 open | 鍖ltered che indica che Nmap non 竪 riuscito ad individuare esattamente lo stato della porta. Scansione di una speci鍖ca porta E possibile impostare nmap in modo da scansionare il tra鍖co di una speci鍖ca porta; basta lanciare il comando 1 nmap p n u m e r o P o r t a sV r a n g e H o s t In alcuni casi, utilizzando il 鍖ag -sV la scansione richiesta 竪 cos狸 potente da mandare in crash il servizio scansionato (Esempio: sistemi SCADA). Information Gathering disponibile su www.alessandrazullo.it
  • 15. 1. SYSTEM IDENTIFICATION 1.10 Dmitry Kali Linux mette a disposizione Dmitry grazie al quale 竪 possibile ottenere tutte le informazioni precedenti lanciando un unico comando: 1 d m i t r y w i n s e p f b nomedominio dove: w sta per scansione whois; i sta per ricerca/risoluzione indirizzo Ip; n sta per i risultati ottenuti da netcraft; e sta per la ricerca degli indirizzi email; p sta per la scansione delle porte TCP; f sta per la scansione delle porte TCP con risultati stampati per ogni porta; b sta per la ricerca dei banner testuali ottenuti alla connessione ad una porta. Information Gathering disponibile su www.alessandrazullo.it