Information Gathering con Arp-scan, Masscan e NMAP

12 marzo 2018

In questa lezione osserveremo da vicino alcuni tra gli strumenti più potenti che Kali Linux mette a disposizione per la raccolta di informazioni (information gathering) all’interno delle reti private e pubbliche. La raccolta delle informazioni è la fase preliminare per il penetration testing, utile a fornire una panoramica “generale” della situazione di rete (esempio per capire quali macchine sono connesse, quali applicazioni sono in esecuzione o quali porte sono in ascolto).

Nel seguito della lezione esploreremo in dettaglio i seguenti strumenti:

  • Arp-scan: un semplice strumento per scoprire gli indirizzi attivi all’interno di una sottorete;
  • Masscan: lo strumento più veloce per scoprire tutte le porte attive ed i relativi indirizzi IP su Internet;
  • NMAP: una suite di programmi per il mapping di rete, che consentono di determinare il sistema operativo, i servizi in esecuzione, il ridirezionamento delle porte e l’iniezione di pacchetti in rete.

Arp-scan

Il protocollo ARP (Address Resolution Protocol), consente di ottenere il mapping tra indirizzi di livello rete (IP) e di livello fisico (MAC). Una caratteristica di tale protocollo è che non è “routable”, nel senso che una query ARP restituisce tutte le associazioni IP-MAC all’interno della sottorete dell’host richiedente. Lo strumento Arp-scan consente di effettuare un polling automatico verso un singolo indirizzo, una lista di indirizzi o tutti gli indirizzi di una sottorete. Tale strumento consente quindi di conoscere in tempo reale tutti gli indirizzi IP correntemente connessi alla sottorete, assieme ai loro indirizzi di livello fisico e alcuni dettagli sul venditore della scheda di rete.

Il formato di una query realizzabile tramite Arp-scan è il seguente:

arp-scan [opzioni] [hosts...]

Il campo hosts rappresenta l’insieme degli indirizzi IP da cui si intendono ottenere le informazioni. Tale campo può essere:

  • una lista contenuta in un file: --file "nomefile";
  • una sottorete, ad esempio 192.168.1.0/24;
  • un range di indirizzi, ad esempio 192.168.1.25-192.168.1.32;
  • tutti gli indirizzi della sottorete del dispositivo sorgente: --localnet.

Le opzioni più importanti sono invece:

  • --timeout: indica la latenza massima entro la quale attendere risposta ad una richiesta ARP per ciascun host;
  • --backoff: indica il fattore di backoff per gli host che non rispondono all’invocazione di ARP;
  • --srcaddr: imposta l’indirizzo MAC sorgente ad un valore predefinito;
  • --rtt: visualizza il round-trip-time per ciascun host che ha risposto all’invocazione di ARP.

Un tipico esempio di utilizzo di Arp-scan, che consente di ottenere tutti gli indirizzi della sottorete e i MAC associati, è il seguente:

arp-scan -l

Il risultato sarà fornito nel seguente formato:

Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9 with 256 hosts 
192.168.1.1    00:50:56:c9:0F:28   VMware, Inc.
192.168.1.254  00:50:56:A4:F2:11   VMware, Inc.
2 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9: 256 hosts scanned in 1.202 seconds, 2 responded

Masscan

Masscan consente di scoprire tutte le porte attive su Internet in pochi minuti. Questo è possibile grazie alla elevatissima velocità di tramissione (fino a 10 milioni di pacchetti al secondo) delle richieste TCP/IP. Il codice sorgente e la documentazione approfondita sull’utilizzo dello strumento sono disponibili su GitHub. Un tipico esempio di utilizzo è il seguente:

masscan -p80,8000-8100 192.168.1.0/24 --rate 1000000

Questa istruzione consente di scansionare la porta 80 e tutte le porte da 8000 alla 8100 per la sottorete 192.168.1.0/24 (cioè 256 indirizzi), al ritmo di 1 milione di pacchetti al secondo. Il risultato fornito dal programma sarà visualizzato sulla console, oppure potrà essere ridirezionato su un file (conveniente quando ci si aspetta un output molto lungo). L’output è fornito nel seguente formato:

stato porta|protocollo|numero porta|indirizzo IP|timestamp

Per scansionare l’intera rete Internet, possiamo usare la seguente istruzione:

masscan 0.0.0.0/0 -p0-65535 --rate 1000000

L’autore dello strumento comunque sconsiglia questa opzione, principalmente perché alcuni segmenti di rete reagiscono “male” alla visita di Masscan e potrebbero mettervi in una blacklist. Per evitare di scansionare l’intera Internet, potremo utilizzare un file contenente la lista degli indirizzi da escludere:

masscan 0.0.0.0/0 -p0-65535 --rate 1000000 --excludefile esclusioni.txt

NMAP

Nmap, abbreviazione di “Network Mapper” (mappatore di rete), è una suite di programmi che consentono di effettuare la ricerca di reti e host, nonchè il monitoraggio della loro sicurezza. Tale suite è anche in grado di determinare quali applicazioni, sistemi operativi e firewall sono in esecuzione all’interno di una rete. Senza ombra di dubbio è una suite completa che la rende uno degli strumenti in assoluto più potenti dell’intera distribuzione Kali. Il codice sorgente e la documentazione integrale sono disponibili sul il sito ufficiale . NMAP funziona come un normale programma a riga di comando, sebbene recentemente è stata rilasciata una alternativa versione grafica, chiamata ZenMAP, che implementa praticamente tutti i servizi di Nmap con la comodità d’uso di una GUI.

Figura 2. Interfaccia grafica di ZenMAP (click per ingrandire)

Interfaccia grafica di ZenMAP

I programmi che mette a disposizione la suite sono i seguenti:

  • nping: un comodo programma per la generazione di pacchetti di tipo: tcp, connessione-tcp, udp, icmp, arp e traceroute, da utilizzare per verificare quali porte/indirizzi sono disponibili all’interno della rete. Va sottolineata la possibilità di includere dei payload personalizzati all’interno dei pacchetti tcp ed udp. Di seguito riportiamo un tipico esempio di utilizzo di generazione di pacchetto tcp di tipo “FIN”, diretto verso la porta 8080, dell’host 10.0.0.1:
    nping --tcp -p 8080 --flags FIN --ttl 2 10.0.0.1
    
  • ncat: uno strumento che consente di leggere, scrivere e ridirezionare l’output di una determinata porta di rete. Il formato di utilizzo del programma è il seguente:
    ncat [opzioni] [host] [porta]
    
    La giusta combinazione di parametri consente di utilizzare ncat come web browser:
    ncat -C scanme.nmap.org 80
    
    oppure come web server (restituisce il documento index.html alla porta 8080):
    ncat -l localhost 8080 --sh-exec "echo -e 'HTTP/1.1 200 OK\r\n'; cat index.html"
    
    È altresì possibile utilizzarlo per instaurare una chat veloce (non cifrata) tra due macchine:
    macchina1$ ncat -l
    macchina2$ ncat IP_ADDRESS_MACCHINA_1
    
  • nmap: lo strumento principe per effettuare il mapping di rete. Per determinare il sistema operativo di una macchina remota, potremo eseguire il comando:
    nmap -O 10.0.0.1
    
    che restituirà tipicamente alcuni dettagli quali il nome del sistema e la versione del kernel. A questo punto, eseguiamo una query per determinare tutti i servizi TCP attivi presso l’host remoto, scansionando tutte le porte dalla 1 alla 65535:
    nmap -p 1-65535 -T4 10.0.0.1
    
    Infine, per determinare quali siano i servizi effettivamente “aperti” alle connessioni entranti, utilizziamo la cosiddetta tecnica dello stealth scan. In questo caso, nmap invierà una serie di pacchetti TCP denominati “SYN”, fingendo di volere iniziare una connessione con le porte remote. Tutte le porte che risponderanno con un pacchetto “ACK” mostreranno diponibilità alle connessioni entranti, dunque servizi su cui potremo potenzialmente iniettare dati. Al contrario, le porte che risponderanno con un pacchetto di tipo “RST” saranno chiuse. Il comando che consente di eseguire questa serie di scambi di messaggi è il seguente:
    nmap -sS -T4 10.0.0.1
    
    L’output mostrerà la lista delle porte aperte, ed i relativi servizi, pronti ad essere interrogati da altri programmi dedicati (le porte chiuse non vengono mostrate in output):

Figura 3. Output di nmap (click per ingrandire)

Output di nmap

Tutte le lezioni

1 2 3 ... 6

Se vuoi aggiornamenti su Information Gathering con Arp-scan, Masscan e NMAP inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Information Gathering con Arp-scan, Masscan e NMAP

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy