Sep 282010
 

Nmap Ultimo articolo della mia serie riguardanti i tool per l’analisi delle reti, dopo wireshark, ntop ed un bell’assortimento di strumenti da utilizzare a linea di comando è il momento di presentare nmap.

Nmap è un software libero distribuito con licenza GNU GPL da Insecure.org creato per effettuare port scanning, cioè mirato all’individuazione di porte aperte su un computer bersaglio o anche su range di indirizzi IP, in modo da determinare quali servizi di rete siano disponibili.

È in grado di ipotizzare quale sistema operativo sia utilizzato dal computer bersaglio, tecnica conosciuta come fingerprinting. Nmap è divenuto uno degli strumenti praticamente indispensabili della “cassetta degli attrezzi” di un amministratore di sistema, ed è usato per test di penetrazione e compiti di sicurezza informatica in generale.


Come molti strumenti usati nel campo della sicurezza informatica, Nmap può essere utilizzato sia dagli amministratori di sistema che dai cracker o script kiddies. Gli amministratori di sistema possono utilizzarlo per verificare la presenza di possibili applicazioni server non autorizzate, così come i cracker possono usarlo per analizzare i loro bersagli.

Nmap è spesso confuso con strumenti per la verifica di vulnerabilità come Nessus. Nmap può essere configurato per evadere dagli IDS (Intrusion Detection System) ed interferire il meno possibile con le normali operazioni delle reti e dei computer che vengono scanditi.

Installazione

Nmap è disponibile in molte distribuzioni sulla mia Ubuntu 10.04 l’ho installato con aptitude install nmap zenmap.

Opzioni

nmap ha moltissime, illustrerò gli usi più comuni con esempi in modo da presentare alcune tra le opzioni più utili, per la lista completa vi rimando alla man page o alla documentazione online

Target

1) uso base
Per Nmap a riga di comando tutto ciò che non è un’opzione (o un argomento opzionale) viene trattato come uno specifico host di destinazione. Il caso più semplice è quello in cui si specifica un indirizzo IP o un hostname per la scansione.

Esempio verso il mio routerADSL:

nmap 192.168.0.1

Starting Nmap 5.00 ( http://nmap.org ) at 2010-09-27 19:29 CEST
Interesting ports on 192.168.0.1:
Not shown: 997 closed ports
PORT STATE SERVICE
80/tcp open http
8080/tcp open http-proxy
49152/tcp open unknown
MAC Address: 00:18:4D:AF:A0:64 (Netgear)

Nmap done: 1 IP address (1 host up) scanned in 2.59 seconds

Quindi si può vedere che le porte 80,8080 e 49152 risultano aperte.

2) Scan di un network di 8 nodi
nmap 192.168.0.1/29

Starting Nmap 5.00 ( http://nmap.org ) at 2010-09-27 19:56 CEST
Interesting ports on 192.168.0.1:
Not shown: 997 closed ports
PORT STATE SERVICE
80/tcp open http
8080/tcp open http-proxy
49152/tcp open unknown
MAC Address: 00:18:4D:AF:A0:64 (Netgear)

Interesting ports on 192.168.0.3:
Not shown: 996 closed ports
PORT STATE SERVICE
21/tcp open ftp
80/tcp open http
9100/tcp open jetdirect
50000/tcp open iiimsf
MAC Address: 00:20:00:7B:F1:D1 (Lexmark International)

Nmap done: 8 IP addresses (2 hosts up) scanned in 7.58 seconds

3) Scan di una lista di hostname presi da un file

-iL (Input from list)

Legge da lalista degli host. Dare una lunga lista di host da verificare è spesso richiesto, ma non molto fattibile da linea di comando, per questo si può utilizzare questa opzione.

4) Escludere qualche host

--exclude [,[,...]] (Exclude hosts/networks)

Specifica una lista separata da virgole di host che devono essere esclusi dallo scan, anche se farebbero parte della rete specificata. La lista usa la normale sintassi di Nmap, quindi possono essere specificati hostname, CIDR netblocks, octet ranges, etc. Questo può essere utile quando la rete che volete sottoporre a scan contiene host intoccabili, server fondamentali per la produzioni, o sistemi che si sa che rispondono in maniera strana agli scan di rete, o sottoreti amministrate da altre persone.

Tipi di Scan

5) TCP connect() Scan [-sT]

Queste scansioni sono così chiamate perché la programmazione dei socket UNIX utilizza un sistema di chiamata di nome connect() per iniziare una connessione TCP a un sito remoto. Se la connect() ha successo, ci si è collegati. Se fallisce, la connessione non può essere fatta (il sistema remoto non è connesso, la porta è chiusa, o qualche altro errore si è verificato lungo la strada). Questo permette un tipo di base di port scan, che tenta di connettersi a ogni porta, e annota le connessioni che hanno successo.

Esempio

nmap -sT -p 80 -oG - 192.168.1.* | grep open

Cerca in una lista di IP quelli con la porta http aperta.

6) SYN Stealth Scan [-sS]

Per iniziare una connessione TCP, il sistema di da cui iniziala connessione invia un pacchetto SYN per la destinazione, che risponderà con un SYN propria, e un ACK, riconoscendo la ricezione del primo pacchetto (questi sono combinati in un singolo pacchetto SYN / ACK) . Il primo sistema invia un pacchetto ACK comunicando di aver ricevuto il SYN/ACK, e il trasferimento dei dati può iniziare.

La scansione SYN Stealth si avvale di tale procedura con l’invio di un pacchetto SYN e guardando la risposta. Se SYN/ACK viene inviato indietro, la porta è aperta e l’host remoto sta tentando di aprire una connessione TCP. Lo scanner invia un RST per resettare la connessione prima che possa essere stabilita pienamente, spesso impedendo il tentativo di connessione che normalmente figurano nei log.

Esempio

nmap -sS -P0 -sV -O < target >

Cerca informazioni su sitema operativo e porte aperte
Dove < target > può essere un singolo ip o sottorete.
-sS TCP SYN scanning
-P0 questa opzione “spegne” i ping ICMP
-sV questa opzione abilita la ricerca della versione
-O abilita la ricerca del sistema operativo

7) Ping Scan [-sP]

Questa tipologia di scan elenca gli host che rispondono al ping entro il range specificato. permette di verificare quali computer sono online, piuttosto che indicare quali porte sono aperte.

nmap -sP 192.168.0.*

Altro esempio:

nmap -sV -T4 -O -F --version-light

L’opzione (-F specifica che cercheremo solo tra le porte specificate nel file di configurazione di nmap (vedi /usr/share/nmap/nmap-services). Questo è molto più veloce che verificare 65535 porte su un host. L’opzione (-sV) abilita la ricerca della versione ed il (-O) cercherà il sistema operativo. L’opzione (–version-light) è un alias per –version-intensity 2. Questa modalità “light” rende la verifica del sistema operativo molto più veloce, ma più imprecisa. Il (-T4) impedisce allo scan dinamico di superare i 10ms per porta.

Queste sono alcune delle principali opzioni che è possibile utilizzare su linea di comando, ma è possibile anche lavorare con Zenmap l’interfaccia grafica di Nmap.

Zenmap

zenmap Zenmap è l’interfaccia Grafica di “Nmap” Security Scanner . Si tratta di una applicazione multi-piattaforma,ed è open source e gratuita;che mira a rendere Nmap più facile da usare per i principianti mentre fornisce funzionalità avanzate per utenti esperti di Nmap.
Le scansioni possono essere salvati come Profili per consentire facilmente e ripetutamente l’esecuzione.
Un creatore di comando manuale permette la realizzazione interattiva di righe di comando per Nmap da eseguire automaticamente.
I risultati di scansione possono essere salvati e visualizzati in diverse modalità tra cui grafici che possono essere salvate nel formato “png”.
Si possono confrontare i risultati delle varie scansione salvate per vedere come essi differiscono tra loro. Si può vedere cosa è cambiato tra la stessa scansione eseguita in giorni diversi, tra le scansioni di due host differenti, tra le scansioni dello stesso host  con diverse opzioni, o qualsiasi altra combinazione. Ciò consente agli amministratori di tenere traccia facilmente di nuovi host o servizi che appaiono sulle loro reti, o la mancanza di quelli esistenti.
I risultati delle scansioni recenti sono archiviate in un database consultabile.

In Zenmap la scheda “topologia” offre una visualizzazione interattiva, animata delle connessioni tra gli host di una rete. Gli host sono mostrati come nodi su un grafico che si estende radialmente dal centro. La vista della topologia è più utile se combinata con  l’opzione Nmap -traceroute, perché questa è l’opzione che scopre il percorso di rete a un host.

Ed infine ricordatevi che eseguire scansioni su rete altrui può essere considerato un tentativo di attacco e denunciato come tale, quindi attenzione a quello che fate !

Popular Posts:

Flattr this!

  3 Responses to “Nmap il port scanner”

  1. Theres a web based port scanner people can use at http://viewdns.info/portscan/

  2. […] by a web interface called NST WUI. Among a collection that can be used by this interface are nmap with a vizualization apparatus ZenMap, ntop, a event manager for VNC, a minicom-based depot server, […]

  3. Hi, It’s a very useful article. I didn’t know how to use nmap. I used to employ basic commands like ping, telnet, nslookup, … But this one is powerful. Thanks for your very good explanation.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*