Target Specification (Specifica degli obiettivi)
Ogni cosa sulla linea di comando di Nmap che non è un'opzione (o
un argomento di un'opzione) è considerato come una specifica di un host
obiettivo. Il caso più semplice consiste nello specificare
semplicemente un indirizzo IP o un nome di host per la scansione.
A volte può essere utile scansionare un'intera rete di host
adiacenti. Per questo, Nmap supporta l'indirizzamento CIDR. Si possono
aggiungere /<numero di bit>
a un indirizzo IP o
a un nome di host e Nmap eseguirà la scansione su ogni indirizzo IP per
il quale i primi <numero di bit>
sono identici a
quelli specificati nell'IP o nel nome di host fornito. Ad esempio,
192.168.10.0/24 eseguirà la scansione sui primi 256 host tra
192.168.10.0 (in binario: 11000000 10101000
00001010 00000000
) e 192.168.10.255 (in binario: 11000000 10101000 00001010 11111111
), estremi
inclusi. 192.168.10.40/24 fa esattamente la stessa cosa. Dato che l'host
scanme.nmap.org corrisponde all'indirizzo IP 205.217.153.62, la
specifica scanme.nmap.org/16 eseguirebbe la scansione sui 65.536
indirizzi IP tra 205.217.0.0 e 205.217.255.255. Il più piccolo valore
permesso è /1, che effettua la scansione su metà Internet. Il valore
maggiore è 32, che effettua la scansione solo sull'host o sull'IP
specificato poiché tutti i bit di indirizzo sono fissati.
La notazione CIDR è breve ma non sempre abbastanza flessibile. Ad
esempio, si potrebbe voler controllare 192.168.0.0/16 ma saltando
qualsiasi IP termini con .0 o con .255 perché sono usati generalmente
come indirizzi di broadcast. Nmap supporta questa funzione attraverso
l'indirizzamento per intervalli di ottetti. Anziché specificare un
normale indirizzo IP è possibile specificare una lista di valori o
intervalli di valori separati da virgola per ogni ottetto. Ad esempio,
192.168.0-255.1-254 salterà tutti gli indirizzi nell'intervallo che
termina per .0 o .255, mentre 192.168.3-5,7.1 eseguirà la scansione dei
quattro indirizzi 192.168.3.1, 192.168.4.1, 192.168.5.1 e 192.168.7.1.
Entrambi i valori limite possono essere omessi; i valori di default sono
0 a sinistra e 255 a destra. Usare - da solo equivale a 0-255, ma ricorda
di usare 0- nel primo ottetto così da non fare sembrare l'obiettivo
un'opzione sulla riga di comando. Gli intervalli non devono
necessariamente essere limitati agli ottetti finali: una specifica come
0-255.0-255.13.37 effettuerà una scansione su tutta Internet per ogni
indirizzo IP che termina per 13.37. Questa tipologia di campionamento può
essere utile per ricerche e sondaggi su tutta la rete Internet.
Indirizzi IPV6 possono essere indicati solo mediante il loro
indirizzo IPv6 completo o il loro hostname. L'indirizzamento CIDR e gli
intervalli di ottetti non sono ancora supportati per IPv6.
Gli indirizzi IPv6 con un non-global scope hanno bisogno di un ID
di zona come suffisso. Sui sistemi Unix, questo è rappresentato dal
simbolo percentuale (%) seguito dal nome di un'interfaccia; un indirizzo
completo potrebbe essere fe80::a8bb:ccff:fedd:eeff%eth0. Su Windows, si
usa l'identificativo numerico dell'interfaccia al posto del suo nome:
fe80::a8bb:ccff:fedd:eeff%1. Puoi vedere la lista degli identificativi
numerici con il comando netsh.exe interface ipv6 show interface.
Nmap accetta più indirizzi di obiettivi sulla linea di comando
ed essi non devono essere necessariamente indicati nello stesso modo. Il
comando nmap scanme.nmap.org 192.168.0.0/8
10.0.0,1,3-7.- fa esattamente ciò che ci si aspetta.
Così come gli obiettivi sono generalmente indicati sulla linea di
comando, anche le seguenti opzioni sono disponibili per la selezione
degli obiettivi:
-iL <inputfilename>
(Input from
list)Legge gli obiettivi da
<inputfilename>
. Inserire una grossa
lista di host è spesso scomodo sulla linea di comando, anche se
spesso è una necessità comune. Ad esempio, un server DHCP
potrebbe esportare un elenco di 10.000 leases che si potrebbero
voler controllare. Oppure si vogliono controllare tutti gli
indirizzi IP di una rete tranne quelli
presenti nel DHCP per individuare eventuali IP statici non
autorizzati. È sufficiente generare la lista di host da
controllare e passarla a Nmap come argomento dell'opzione
-iL
. Ogni elemento può essere in uno qualsiasi
dei formati accettati da Nmap sulla linea di comando (indirizzo
IP, nome dell'host, notazione CIDR, IPv6 o intervalli di
indirizzi). Ogni elemento dev'essere separato da uno o più spazi,
indentazioni (tabulazioni) o caratteri di a-capo. Si può usare un
trattino (-
) come nome di file
se si vuole che Nmap legga gli host dallo standard input piuttosto
che da un file esistente.
L'<inputfilename>
può contenere
commenti. Ogni commento inizia con # e finisce con un carattere di
a-capo.
-iR <num hosts>
(Choose random
targets)Durante certe indagini su tutta Internet o altri tipi di
ricerca, si potrebbe desiderare di scegliere gli obiettivi in
maniera casuale. L'argomento <num hosts>
indica a Nmap quanti indirizzi IP generare. Gli indirizzi privati,
multicast o i pool di indirizzi non allocati vengono
automaticamente saltati. Si può specificare l'argomento 0
per una scansione senza fine. Va
ricordato che alcuni amministratori di rete non apprezzano
scansioni non autorizzate delle loro reti e potrebbero lamentarsi.
Usare questa opzione a proprio rischio e pericolo! Se in un
pomeriggio piovoso ci si trova ad essere annoiati, si può provare
questo comando nmap -sS -PS80 -iR 0 -p
80 per trovare in maniera casuale dei server web sui
quali navigare.
--exclude <host1>[,<host2>[,...]]
(Exclude hosts/networks)Questa opzione specifica un elenco, separato da virgola, di
obiettivi da escludere dalla scansione anche se sono parte
dell'intervallo di rete specificato. La lista va specificata nella
notazione usuale di Nmap, ovvero può includere nomi di host,
blocchi di indirizzi specificati mediante notazione CIDR,
intervalli di ottetti, etc. Questo può essere utile quando la
rete che si vuole controllare include server intoccabili o di
vitale importanza, sistemi che sono conosciuti per reagire in
maniera negativa ad eventuali scansioni, o sottoreti amministrate
da altri.
--excludefile <exclude_file>
(Exclude
list from file)Questa opzione offre le stesse funzionalità
dell'opzione--exclude
, con la differenza che gli
obiettivi da escludere dalla scansione sono elencate in un
<exclude_file>
(separate da spazi
bianchi, a-capo o tabulazioni) anziché sulla linea di
comando.
L'<exclude_file>
può contenere
commenti. Ogni commento inizia con # e finisce con un carattere di
a-capo.