Nmap network security scanner man page (Italian translation)
NMAP(1) NMAP(1)
NOME
nmap - Utility di esplorazione per le rete e security
scanner
SINTASSI
nmap [Tipi Scan] [Opzioni] <host o rete #1 ... [#N]>
DESCRIZIONI
Nmap e progettato per permettere agli ammistratori di sis-
tema e alle persone curiose lo scan di grandi reti al fine
di determinare quali host sono attivi e quali servizi
offrono. nmap supporta un grande numero di tecniche per
lo scanning come ad esempio: UDP, TCP connect(), TCP SYN
(semi aperto), ftp proxy (bounce attack), Reverse-ident,
ICMP (ping sweep), FIN, ACK sweep, Xmas Tree, SYN sweep, e
scan Null. Vedete la sezione Tipi di scan per ulteriori
informazioni. nmap offre anche varie caratteristiche
avanzate come per esempio il rilevamento del S.O. via
TCP/IP fingerprinting, lo scan stealth (invisibile),
ritardo dinamico e i calcoli delle ritrasmissioni, lo scan
parallelo, il rilevamento degli host non attivi mediante i
ping paralleli, lo scan mediante decoy, il rilevamento del
filtraggio delle porte, lo scan RPC diretto (non-portmap-
per), lo scan di frammentazione, la specifica flessibile
della destinazione e delle porte.
Sforzi significativi sono stati impiegati nel rendere
decenti le performance per gli utenti non root. Sfortu-
natamente, molte interfacce del kernel critiche (come ad
esempio i socket raw) richiedono i privilegi di root.
nmap dovrebbe essere eseguito da root ogni volta che e
possibile.
Il risultato di un'esecuzione di nmap e di solito una
lista di porte interessanti sulla/e macchina/e, che sono
state sottoposte allo scan (se ve ne sono). Nmap da sempre
il nome del servizio "ben noto" (se noto), il numero, lo
stato, e il protocollo. Lo stato puo essere 'open'
(aperto), Open significa che la macchina destinazione
accettera ( mediante accept()) le connessioni su quella
porta. Filtered significa che un firewall, filtro, o un
altro ostacolo di rete sta coprendo la porta e impedendo a
nmap di determinare se la porta e aperta. Unfiltered sig-
nifica che nmap ha riconosciuto la porta come chiusa e
nessun firewall/filtro sembra aver interferito con il ten-
tativo di nmap di rilevare se la porta fosse aperta o
chiusa. Le porte unfiltered (non-filtrate) sono il caso
piu comune e sono mostrate solo quando la maggior parte
delle porte esaminate sono nello stato filtered (fil-
trate).
A seconda delle opzioni usate, nmap puo riportare le
seguenti caratteristiche dell'host remoto: S.O. in uso,
sequenziabilita TCP, nomi gli utenti che hanno eseguito i
1
NMAP(1) NMAP(1)
programmi che sono associati ad una data porta, il nome
del DNS, se l'host e un indirizzo smurf, e poco altro.
OPZIONI
Le opzioni che assieme hanno senso possono essere general-
mente combinate. Alcune opzioni sono specifiche a date
modalita di scan. nmap prova a rilevare e avvisare
l'utente su combinazioni psicotiche o non supportate.
Se siete impazienti, potete passare direttamente alla
sezioni di esempi posta alla fine, che dimostra l'utilizzo
comune. Potete anche eseguire nmap -h per ottenere una
pagina di riferimento rapido, che elenca tutte le opzioni.
TIPI DI SCAN
-sT Scan TCP connect(): Questa e la forma base dello
scan TCP. La chiamata di sistema connect() fornita
dal vostro sistema operativo e usata per aprire una
connessione ad ogni porta interessante sulla
macchina. Se la porta e in ascolto, la connect()
avra luogo, altrimenti la porta non e raggiungi-
bile. Ogni utente sulla maggior parte dei sistemi
UNIX e libero di usare questa chiamata.
Questo genere di scan e facilmente rilevabile in
quanto i log dell'host destinazione mostreranno un
gruppo di connessioni e messaggi di errore per i
servizi che accettano la connessione mediante
accept() solo per chiuderla immediatamente dopo.
-sS Scan TCP SYN: Questa tecnica e spesso chiamata scan
"semi-aperto", perche non aprite una completa con-
nessione TCP. Mandate un pacchetto SYN, come se
aveste intenzione di aprire una vera connessione, e
aspettate la risposta. Un SYN|ACK come risposta
indica che la porta e in ascolto. Un RST e indica-
tiva di una porta non in ascolto. Se viene ricevuto
un SYN|ACK come risposta , viene mandato immediata-
mente un RST per chiudere la connessione ( allo
stato attuale il kernel del vostro S.O. lo fa per
noi). Il vantaggio primario di questa tecnica di
scanning e che pochi siti la loggeranno. Sfortu-
natamente avete bisogno dei privilegi di root per
poter creare questi appositi pacchetti SYN.
-sF -sX -sN
Le modalita di scan Stealth FIN, Xmas Tree, o Null:
Ci sono delle volte che anche lo scan SYN non e
abbastanza anonimo. Alcuni firewall e packet filter
controllano i SYN per le porte riservate, e pro-
grammi come Synlogger e Courtney sono disponibili
per rilevare questi scan. Questi scan avanzati,
d'altra parte, possono essere in grado di passare
2
NMAP(1) NMAP(1)
attraverso i firewall, packet filter e/o programmi
loggers indisturbati.
L'idea e che le porte chiuse devono rispondere al
vostro pacchetto di prova con un RST, mentre le
porte aperte devono ignorare il pacchetto in ques-
tione (vedere RFC 793 pagina 64). Lo scan FIN usa
(sorpresa) un semplice pacchetto FIN come prova,
mentre lo scan Xmas attiva i flag FIN, URG, e PUSH.
Lo scan Null disattiva tutti i flag. Sfortunata-
mente Microsoft (come sua consuetudine) ha deciso
di ignorare completamente lo standard e fare le
cose a modo suo. Cosi questo tipo di scan non fun-
ziona contro i sistemi in cui gira Windows95/NT. Se
prendiamo la cosa dal punto di vista positivo,
questo fatto e un buon modo per distinguere tra le
due piattaforme. Se lo scan trova porte aperte,
sapete che la macchina non e un computer con Win-
dows. Se uno scan -sF,-sX, o -sN mostra tutte le
porte chiuse, ma uno scan SYN (-sS) vi fa vedere
porte aperte, probabilmente state guardando una
macchina Windows. Questo ora e meno utile in quanto
nmap ha un proprio un rilevamento di S.O. inte-
grato. Ci sono anche alcuni altri sistemi che
violano lo standard nella stessa maniera di Win-
dows. Questi includono Cisco, BSDI, HP/UX, MVS, e
IRIX. Tutti i sistemi operativi soprastanti man-
dano resets da porte aperte quando invece dovreb-
bero solo ignorare il pacchetto.
-sP Ping scanning: Alcune volte volete solo sapere
quali host sulla rete sono attivi. Nmap puo sco-
prire questo mandando pacchetti ICMP echo request
ad ogni indirizzo IP sulla rete che voi specifi-
cate. Gli host che rispondono sono attivi. Sfortu-
natamente, alcuni siti come ad esempio
microsoft.com bloccano i pacchetti echo-request.
Cosi nmap puo mandare anche un pacchetto ack TCP
(per default) alla porta 80. Se ottenenete indietro
un RST, la macchina e attiva. Una terza tecnica
comporta il mandare un pacchetto SYN e aspettare un
RST o un SYN/ACK. Per gli uttenti non-root, viene
usato il metodo connect().
Di default (per gli utenti root), nmap usa le tec-
niche sia ICMP che ACK in parallelo. Potete cam-
biare questo comportamento con l'opzione -P
descritta successivamente.
Notate che il pinging comunque viene fatto di
default, e solo gli host che rispondono vengono
sottoposti a scan. Usate questa opzione solo se
desiderate fare un ping sweep senza fare dei reali
portscan.
3
NMAP(1) NMAP(1)
-sU Scan UDP: Questo metodo viene usato per determinare
quali porte UDP (User Datagram Protocol, RFC 768)
sono aprte su un host. La tecnica e mandare pac-
cheti udp di 0 byte ad ogni porta sulla macchina
destinazione. Se riceviamo un messaggio ICMP port
unreachable, allora la porta e chiusa. Altrimenti
presumiamo che essa sia aperta.
Alcune persone pensano che lo scan UDP sia inutile.
Di solito ricordo loro il bug recente di rcpbind in
Solaris. Rpcbind puo essere trovato nascosto su una
porta UDP non documentata a patto che essa sia mag-
giore di 32770. Cosi' non ha importanza se la 111 e
bloccata dal firewall. Ma, potete trovare quali
porte alte maggiori della 30.000 siano in ascolto?
Con uno scanner UDP potete! Esiste anche il pro-
gramma backdoor Back Orifice del cDc, che si
nasconde su una porta UDP configurabile sulle mac-
chine Windows. Per non parlare i vari servizi
comunemente vulnerabili che utilizzano UDP come ad
esempio snmp, tftp, NFS, ecc.
Sfortunatamente lo scan UDP e alcune volte spaven-
tosamente lento in quanto molti host implementano
la proposta di limitare il tasso dei messaggi di
errore ICMP fornita dalla RFC 1812 (sezione
4.3.2.8). Per esempio, il kernel di Linux (in
net/ipv4/icmp.h) limita la generazione dei messaggi
di destination unreachable ad 80 per 4 secondi, con
una penalita di 1/4 di secondo se questo limite
viene sorpassato. Solaris ha limiti piu stretti
(circa 2 messaggi per secondo) e cosi si impiega
piu tempo per lo scan. nmap rileva questo tasso
limitando e rallentando lo scan di conseguenza,
piuttosto che flooddare la rete con pacchetti inu-
tili che saranno ignorati dalla macchina desti-
nazione.
Come e tipico, Microsoft ha ignorato la proposta
della RFC e non sembra aver imposto nessun tasso di
limitazione sulle macchine Win95 e NT. Cosi possi-
amo fare lo scan di tutte le 65K porte di una
macchina Windows molto velocemente.
-sA Scan ACK: Questo metodo avanzato viene usato soli-
tamente per scoprire gli insiemi delle regole dei
firewall. In particolare, puo aiutare determinare
se un firewall sia stateful o solo un semplice fil-
tro di pacchetti che blocca i pacchetti SYN in
entrata.
Questo tipo di scan manda un pacchetto ACK (con
acknowledgement/sequence numbers apparentemente
casuali) alle porte specificate. Se si ha come
4
NMAP(1) NMAP(1)
ritorno un RST, le porta viene classificata come
"unfiltered" (non-filtrata). Se non si ritorno ( o
se si ha come ritorno un pacchetto ICMP unreach-
able), la porta viene classificata come "filtered"
(filtrata). Notate che di solito nmap non stampa
le porte "unfiltered", cosi se non otteniamo nes-
suna porta mostrata nell'output e di solito un
segno che tutte le prove sono state portate a ter-
mine ( e hanno restituito dei RST). Questo scan
ovviamente non mostrera mai porte nello stato
"open" (aperto).
-sW Scan window: Questo scan avanzato e molto simile
allo scan ACK, eccetto che alcune volte puo rile-
vare sia le port aperte che filtrate/non filtrate a
causa di un'anomalia nel TCP window size reporting
di alcuni sistemi operativi. I sistemi vulnerabili
a questo problema includono almeno alcune versioni
di AIX, Amiga, BeOS, BSDI, Cray, Tru64 UNIX, DG/UX,
OpenVMS, Digital UNIX, FreeBSD, HP-UX, OS/2, IRIX,
MacOS, NetBSD, OpenBSD, OpenStep, QNX, Rhapsody,
SunOS 4.X, Ultrix, VAX, e VxWorks. Vedere
l'archivio della mailing list nmap-hackers per
un'elenco completo.
-sR Scan RPC. Questo metodo funziona in combinazione
con i diversi metodi di port scan di Nmap. Esso
prende tutte le porte TCP/UDP trovate aperte e poi
le flodda con comandi NULL del programma SunRPC nel
tentativo di determinare se sono porte RCP, e se le
sono, quale programma e numero di versione esse
servono. In questo modo potete effettivamente
ottenere le stesse informazioni di 'rcpinfo -p'
anche se il portmapper di destinazione e dietro un
firewall (o protetto da TCP wrappers). I decoy non
funzionano allo stato attuale con lo scan RPC, in
un qualche momento posso aggiungere il supporto per
i decoy negli scan RPC UDP.
-b <ftp relay host>
FTP bounce attack: Una "caratteristica" interes-
sante del protocollo ftp (RFC 959) e il supporto
per le connessioni ftp "proxy". In altre parole,
io dovrei essere in grado di connettemi da evil.com
al server FTP di target.com e richiedere che tale
server mandi un file OVUNQUE su internet! Ora
questo poteva andare bene nel 1985 quando la RFC fu
scritta. Ma nell'Internet di oggi non possiamo
avere persone che fanno l'hijacking dei server ftp
e che richiedono che i dati siano spediti a punti
arbitrari su Internet. Come *Hobbit* scrisse nel
1995, questo punto debole nel protocollo "puo
essere usato per postare mail e news virtualmente
irritracciabili, riempire i dischi, provare a
5
NMAP(1) NMAP(1)
scavalcare i firewall, e generalmente e fastidioso
e difficile da rintracciare allo stesso tempo."
Noi sfrutteremo questo problema per (sor-
pesa,sopresa) fare lo scan delle porte TCP da un
server ftp "proxy". Cosi potrete collegarvi a un
server ftp dietro un firewall, e poi dare lo scan
di porte che sono molto probabilmente bloccate (la
139 e una porta buona). Se il server ftp permette
la lettura da e la scrittura a qualche directory
(come ad esempio /incoming), potete mandare dati
arbitrari porte che trovate aperte (anche se nmap
non fa questo per voi).
L'argomento passato all'opzione 'b' e l'host che
volete usare come proxy, in una notazione standard
URL. Il formato e: username:password@server:porta.
Tutto tranne il server e opzionale. Per determinare
quali server siano vulenrabili a questo attacco,
potete vedere il mio articolo in Phrack 51. E una
versione aggiornata e disponibili all'URL di nmap
(http://www.insecure.org/nmap)
OPZIONI GENERALI
Nessuna di queste opzioni e richiesta ma alcune
possono essere abbastanza utili
-P0 Non provare e fare il ping degli host completo
prima di fare lo scan degli stessi. Queso permette
lo scan di reti che non permettono ICMP echo
request (o risposte) attraverso il loro firewall.
microsoft.com e un esempio di tale rete, cosi
dovreste sempre usare -P0 o -PT80 quando fate il
portscan di microsoft.com
-PT Usate il "ping" TCP per determinare quali host sono
attivi. Invece di mandare pacchetti ICMP echo
request e aspettare una risposta, mandiamo pac-
chetti TCP ACK attraverso la rete destinazione (o a
una macchina singola) e poi aspettiamo le risposte
per ottenere informazioni sull'host. Gli host che
sono attivi dovrebbero rispondere con un RST.
Questa opzione preserva l'efficenza dell'esaminare
solo host che sono attivi permettendovi anche di
fare lo scan di reti/host che bloccno i pacchetti
ping. Per gli utenti non root, usiamo la funzione
connect(). Per impostare la porta di destinazione
dei pacchetti di prova usiamo -PT<numero porta>. La
porta di default e la 80, in quanto questa porta
spesso non e filtrata.
-PS Questa opzione usa dei pacchetti SYN (richiesta di
connessione) invece dei pacchetti ACK per gli
utenti root. Gli host che sono attivi dovrebbero
rispondere con un RST (o, raramente con un
6
NMAP(1) NMAP(1)
SYN|ACK).
-PI Questa opzione usa un vero pacchetto ping (ICMP
echo request). Esso trova gli host che sono attivi
e cerca anche nella vostra rete indirizzi broadcast
orientati alla sottorete. Questi sono indirizzi IP
che sono esternamente raggiungibili e traduce a un
broadcast di pacchetti in entrata a una sottorete
di computer. Questi dovrebbero essere eliminati se
scoperti in quanto permettono numerosi attacchi
denial of service (Smurf e il piu comune).
-PB Questo e il tipo di ping di default. Esso usa gli
sweep ACK ( -PT ) e ICMP ( -PI ) in parallelo. In
questo modo potete rilevare i firewall che filtrano
uno dei due (ma non entrambe).
-O Questa opzione attiva l'identificazione dell'host
remoto via TCP/IP fingerprinting. In altre parole,
usa un'insieme di tecniche per rilevare le sot-
tigliezze nello strato sottostante dello stack di
rete del sistema operativo del computer sottoposto
a scan. Usa questa informazione per creare una
'impronta' (fingerprint) che viene confrontata con
il suo database di impronte note relative ai vari
S.O. (il file nmap-os-fingerprints) per decidere a
quale tipo di sistema state facendo lo scan.
Se trovate una macchina che e mal diagnosticata e
ha almeno una porta aperta, sarebbe utile se voi mi
madate via mail i dettagli (per esempio il S.O
pippo versione numero e stato rilevato come S.O.
pluto versione numero1). Se trovate una macchina
con almeno una porta aperta con almeno una porta
aperta per quale nmap dice 'unknown operating sys-
tem' (sistema operativo sconosciuto), allora
sarebbe utile se mi mandaste l'indirizzo IP assieme
con il nome del S.O. e il numero di versione. Se
non potete mandarmi l'indirizzo IP, la cosa
migliore da fare e di eseguire nmap con l'opzione
-d e mandarmi le tre fingerprint che dovreste
ottenere assieme al nome del S.O. e il numero di
versione. Facendo questo voi contribuite all'elenco
dei sistemi operativi conosciuti ad nmap e cosi
tale elenco sara piu accurato per tutti.
-I Questa opzione abilita lo scanning TCP reverse
ident. Come notato da Dave Goldsmith in un post del
1996 a BugTraq, il protocollo ident (rfc 1413) per-
mette di scoprire il nome dell'utente appartenente
ad ogni processo connesso via TCP, anche se il pro-
cesso non ha iniziato una connessione. Cosi potete,
per esempio collegarvi alla porta http e poi usare
identd per scoprire se il server e in esecuzione
7
NMAP(1) NMAP(1)
con i diritti di root. Questo scan puo essere fatto
solo con una connessione TCP completa alla porta
destinazione (per esempio con l'opzione -sT).
Quando viene usata l'opzione -I l'identd dell'host
remoto viene interrogato per ogni porta aperta.
Ovviamente questo scan non funziona se nell'host
non e in esecuzione identd.
-f Questa opzione provoca gli scan SYN, FIN, XMAS, o
NULL ad usare minuscoli pacchetti IP frammentati.
L'idea e di suddividere l'header TCP in diversi
pacchetti per rendere piu difficile ai filtri di
pacchetti (packet filters), ai sistemi di rileva-
mento delle intrusioni (IDS), e altre seccature
rilevare quello che state facendo. State attenti
con questa opzione! Alcuni programmi hanno problemi
nella gestione di questi pacchetti minuscoli. Il
mio sniffer preferito e andato in segmentation
fault immediatamente dopo aver ricevuto il primo
frammento di 36-byte. Dopo quello ne viene mandato
un'altro da 24 byte! Sebbene questo metodo non
passera i filtri di pacchetto e firewall che met-
tono in coda tutti i frammenti IP (come l'opzione
CONFIG_IP_ALWAYS_DEFRAG nel kernel Linux), alcune
reti non possono permettersi l'abbattimento delle
prestazioni che questa opzioni causa e cosi la las-
ciano disabilitata.
Notate che non ho ancora questa opzione funzionante
su tutti i sistemi. Funziona bene per le mie
mcchine Linux, FreeBSD, e OpenBSD e alcune persone
hanno r con altre varianti *NIX.
-v Modalita verbose. Questa e un'opzione altamente
raccomandata e da molte piu informazioni su quello
che sta accadendo. Potete usarla due volte per
ottendere maggiori effetti. Usate -d un paio di
volte se volete realmente impazzire con lo
scrolling dello schermo!
-h Questa comoda opzione mostra una schermata di
riferimento rapido sulle opzioni di utilizzo di
nmap. Come potete aver notato, questa man page non
e esattamente un 'riferimento rapido' :)
-oN <nomefiledilog>
Questa opzione logga i risultati dei vostri scan
nella normale forma chiaramente leggibile nel file
che specificate come argomento.
-oM <nomefiledilog>
Questa opzione logga i risultati dei vostri scan
nella forma analizzabile dalla macchina nel file
che specificate come argomento. Potete dare
8
NMAP(1) NMAP(1)
l'argomento '-' (senza apici) per inviare l'output
allo stdout (per fare shell pipe, ecc.). In questo
caso l'output normale sara sopresso. Controllate i
messaggi di errore se usate quest'ultima possi-
bilita (essi andranno ancora allo stderr). Notate
anche che '-v' fara in modo che informazioni extra
vengano stampate.
-oS <nomefiledilog>
QuEsT0 l0gGa | rIsUlTaT| d3i v0sTr| Scanz iN UnA
f0rMa s|<ipT kiDd|3 n3L fiL3 sPecfiCaT0 C0mE arGu-
MEnT0! P0t3t3 Dar3 L'Arg0M3nt0 '-' (s3Nza
Virg0L3Tt3) p3R mAnDAr3 L'0uTput n3ll0 stDouT!@!!
--resume <nomefiledilog>
Uno scan di rete che e stato cancellato a causa di
un control-C, problemi di rete, ecc. puo essere
riprestinto usando questa opzione. Il nome-
filedilog deve essere o un log normale (-oN) o un
log analizzabile dalla macchina (-oM) dello scan
interrotto. Nessun'altra opzione deve essere data
(le opzioni saranno le stesse dello scan inter-
rotto). Nmap iniziera a fare lo scan sulla
macchina posta dopo l'ultima macchina di cui e
stato fatto lo scan nel file di log.
-iL <nomedelfilediinput>
Legge le specifiche della destinazione da un file
specificato PIUTTOSTO che da linea di comando. Il
file dovrebbe contenere una lista di host o espres-
sioni di rete separate da spazi, caratteri di tabu-
lazione, o newline. Usate una linea trattegiata (-)
come nomedelfilediinput se volte che nmap legga le
espressioni dell'host dallo stdin (come alla fine
di una pipe). Vedere la sezione specifica della
destinazione per ulteriori informazioni sulle
espressioni con le quali potete riempire il file.
-iR Questa opzioni dicono ad Nmap di generare i propri
host da esaminare prendendo semplicemente numeri
casuali :). Non terminera main. Questa opzione puo
essere utile per campionamenti statistici di Inter-
net per stimare diverse cose. Se siete veramente
annoiati, provate nmap -sS -iR -p 80 per trovare
dei web server da guardare.
-p <intervallo di porte>
Questa opzione specifica quali porte volete speci-
ficare. Per esempio con '-p 23' Nmap provera la
porta 23 del/degli host destinazione. Con '-p
20-30,139,60000-' Nmap fara lo scan delle porte tra
20 e 30, la porta 139, e tutte le porte maggiori di
60000. Di default Nmap fa lo scan sia di tutte le
porte tra 1 e 1024 che di ogni porta elencata nel
9
NMAP(1) NMAP(1)
file services fornito con nmap.
-F Modalita di scan veloce.
Specifica che desiderate esaminare solo le porte
elencate nel file servizi fornito con nmap. Questo
tipo di scan e ovviamente piu veloce di fare lo
scan di tutte le 65535 porte di un host.
-D <decoy1 [,decoy2][,ME],...>
Causa lo svolgimento di uno scan decoy, che fa in
modo che all'host remoto posto sotto scan appaiano
anche lo/gli host che specificate come decoy
(esche). Cosi i loro IDS potrebbero riportare 5-10
port scan da un unico indirizzo IP, ma non sanno
quale IP stava effettuando lo scn e quali sono
innocenti decoy. Sebbene questo scan possa essere
sconfitto attraverso il router path tracing, il
response-dropping e altri meccanismi "attivi", e
generalmente una tecnica estremamente efficace per
nascondere il vostro indirizzo IP.
Separate ciascun host decoy con virgole, e potete
opzionalmente usare 'ME' come uno dei decoy per
rappresentare la posizione nella quale volete il
vostro indirizzo IP venga usato. Se mettete 'ME'
nella sesta posizione o oltre, per alcuni rileva-
tori di portscan comuni (come ad esempio l'eccel-
lente scanlogd di Solar Designer) e molto poco
probabile che mostrino il vostro indirizzo IP. Se
non usate 'ME', nmap lo porra in una posizione
casuale.
Notate che gli host che usate come decoy dovrebbero
essere attivi o potreste accidentalmente fare il
SYN flood delle destinazioni. Dovrebbe essere anche
abbastanza semplice determinare quale host e sotto-
posto a scan se uno solo e allo stato attuale
attivo sulla rete. Potreste voler usare gli indi-
rizzi IP invece dei nomi (in questo modo le rete
dei decoy non vi vedono nei log dei loro name-
server).
Notate anche che alcuni "rilevatori di port scan"
(stupidi) firewalleranno/negheranno il routing agli
host che provano a fare il portscan. Cosi potreste
inavvertitamente causare alla macchina sottoposta a
scan la perdita di connettivita con le macchine
decoy che state usando, Questo potrebbe causare
alle macchine target maggiori problemi se il decoy,
e diciamo, il suo gateway internet o anche "local-
host". Cosi potreste voler essere prundenti con
questa opzione. La vera morale della storia e che
i rilevatori dei portscan spoofabili non dovrebbero
agire contro la macchina che a loro sembra stia
10
NMAP(1) NMAP(1)
eseguendo lo scan. Potrebbe essere solo un decoy!
I decoy sono usati sia nello scan ping iniziale
(usando ICMP, SYN, ACK, o altro) e durante la fase
attuale fase di port scanning. I decoy sono anche
usate durante il rilevamento remoto del S.O. ( -O
).
Vale la pena notare che usare troppi decoy puo ral-
lentare il vostro scan e renderlo potenzialmente
anche meno accurato. Inoltre, alcuni ISP filtr-
eranno i vostri pacchetti spoofati, sebbene molti
(attualmente la maggior parte) non restringono i
pacchetti IP spoffati completamente.
-S <Indirizzo_IP>
In alcune circostanze, nmap puo non essere in grado
di determinare il vostro indirizzo sorgente ( nmap
vi informera se questo e il caso). In questa situ-
azione, usate -S con il vostro indirizzo IP
(dell'interfaccia mediante la quale desiderate man-
dare i pacchetti).
Un'altro possibile uso di questo flag e di spoof-
fare lo scan per fare in modo che le destinazioni
pensino che qualcun altro le stia scannando.
Immaginate una societa sulla quale un'altra rivale
fa ripetutamente dei port scan!. Questo non e un
utilizzo supportato ( o lo scopo principale) di
questo flag. Ho gia pensato che questo flag avanza
una interessante possibilita di cui le persone
dovrebbero essere consapevoli prima che vadano
accusando altri di fare lo portscanning contro di
loro. -e sarebbe generalmente richiesta per questo
tipo di utilizzo.
-e <interfaccia
Dice ad nmap su quale interfaccia mandare e rice-
vere i pacchetti. Nmap dovrebbe essere ingrado di
rilevare tale interfaccia, ma questa opzione perme-
tte di dirgliela se non e in grado.
-g <numeroporta>
Imposta il numero di porta sorgente usata negli
scan. Molti firewall nativi e installzioni di fil-
tri di pacchetti fanno un'eccezione nel loro
insieme di regole per permettere ai pacchetti DNS
(53) o FTP-DATA (20) di passare attraverso e sta-
bilire una connessione. Ovviamente questo sovverte
i vantaggi di sicurezza di un firewall in quanto
gli intrusi possono mascherarsi come FTP o DNS mod-
ificando la loro porta sorgente. Ovviamente per
uno scan UDP dovreste prima provare uno scan UDP e
gli scan TCP dovrebbero trovare 20 prima di 53.
11
NMAP(1) NMAP(1)
Notate che questa e solo una richiesta -- nmap la
onorera solo se e in grado di farlo. Per esempio,
non potete fare il campionamento TCP ISN da un
host:porta a un'altro host:porta, cosi nmap cambia
la porta sorgente anche se avete usato -g.
Rendetevi conto che usando questa opzione v'e una
lieve penalita nelle prestazione, perche alcune
volte io memorizzo informazioni utili nel numero
della porta sorgente.
-r Dice ad Nmap DI NON rendere casuale l'ordine nel
quale le porte sono esaminate.
--randomize_hosts
Dice ad Nmap di mescolare ciascun gruppo di host,
fino a 2048 host prima di farne lo scanner. Questo
puo renedere gli scan meno ovvi ai diversi sistemi
di monitoraggio della rete, specialmente quando lo
combinare con opzioni di timing lente (vedere
sotto).
-M <max sockets>
Imposta il numero massimo di socket che saranno
usati in parallelo per uno scan TCP connect() (lo
scan di default). Questa opzione e utile per ral-
lentare di poco lo scan e evitare il crash delle
macchine remote. Un'altro approccio e usare -sS,
opzione che e generalmente piu semplice da gestire
le le macchine.
OPZIONI DI TIMING
Generalmente Nmap fa un ottimo lavoro nell'adat-
tarsi alle caratteristiche di rete a run-time e
fare lo scan tanto veloce quanto possibile mini-
mizando le possibilita che degli host/ delle porte
rimangano non rilevate. Comunque, possono esservi
casi lo stesso in qui l politica di timing
impostata di default possa non incontrare i vostri
obiettivi. Le seguenti opzioni forniscono un buon
livello di controllo sul timing di uno scan:
-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>
Queste sono possibili politiche di timing per
esprimere convenientemente le vostre priorita ad
Nmap.
La modalita Paranoid fa gli scan molto lentamente
nella speranza di evitare il rilevamento dai sis-
temi IDS. Essa serializza tutti gli scan (nessuno
scanning parallelo) e generalmente aspetta almeno 5
minuti tra i pacchetti mandati. Sneaky e simile,
eccetto che aspetta solo 15 secondi tra i pacchetti
12
NMAP(1) NMAP(1)
mandati. Polite e stato pensata per facilitare il
carico sulla reta e ridurre le possibilita di man-
dare in crash le macchine. Serializza le prove e
aspetta almeno 0.4 secondi tra esse. Normal e il
comportamento di default di Nmap, che prova a fare
gli scan tanto velocemente quanto gli e possibile
senza sovracaricare la rete o mancare degli
host/delle porte. La modalita Aggressive aggiunge
un timeout di 5 minuti per host e non aspetta mai
piu di 1.25 secondi per le risposte di prova.
Insane e solo adatto per reti molto veloci o dove
non vi importa la perdita di alcune informazioni.
Manda in time out gli host in 75 secondi e aspetta
solo 0.3 per le prove individuali. Pero non perme-
tte sweep di rete molto veloci :). Potete anche
fare riferimento a questi numeri. Per esempio, '-T
0' vi da la modalita Paranoid e '-T 5' e la
modalita Insane.
Queste possibili modalita di timing NON dovrebbe
essere usata con i controlli a basso livello dati
sotto.
--host_timeout <millisecondi>
Specifica la quantita di tempo, permessa ad Nmap
per fare lo scan di un singolo host prima di ter-
minare lo scan su quel dato IP. La modalita di tim-
ing impostata per default non ha host timeout.
--max_rtt_timeout <millisecondi>
Specifica la somma massima di tempo permessa ad
Nmap per aspettare un risultato di una prova prima
di ritrasmettere o mandare in time-out quella prova
particolare. La modalita di default imposta questo
limite a circa 9000 ms.
--min_rtt_timeout <millisecondi>
Quando gli host destinazione iniziano a stabilire
un pattern di risposta molto velocemente, Nmap
diminuira la somma di tempo data per prova. Questo
velocizza lo scan, ma puo condurre a pacchetti man-
cati quando una risposta impiega di piu del solito.
Con questo parametro potete garantire che Nmap
aspettera al meno la data quantita di tempo prima
di terminare una prova.
--initial_rtt_timeout <millisecondi>
Specifica il timeout iniziale di prova. Questo e
generalmente utile solo quando fate lo scan di host
firewallati con -P0. Normalmente Nmap puo ottenere
buone stime RTT dal ping e dalle prime prove. La
modalita di default usa 6000.
13
NMAP(1) NMAP(1)
--max_parallelism <numero>
Specifica il massimo numero di scan da svolgere in
parallelo, che e permesso a Nmap. Se impostate
questo a 1 Nmap non provera mai ad esaminare piu di
una porta alla volta. Questa opzione ha effetto
anche sugli altri scan paralleli come i ping sweep,
lo scan RPC, ecc.
--scan_delay <millisecondi>
Specifica la quantita di tempo minima nella quale
Nmap deve aspettare tra le prove. Questa opzione e
utile principalmente per ridurre il carico di rete
o per rallentare il metodo di scan per penetrare
furtivamente sotto le soglie degli IDS.
SPECIFICA DELLA DESTINAZIONE
Tutto cio che non e un'opzione (o un argomenti di
un'opzione) viene trattato in nmap come specifica
dell'host destinazione. Il caso piu semplice e elencare
hostname singoli o indirizzi IP sulla linea di comando. Se
volete fare lo scan di una sottorete di indirizzi IP,
potete aggiungere '/mask' al nome host o all'indirizzo IP
mask deve essere compreso tra 0 (fai lo scan dell'intera
internet) e 32 (fai lo scan del singolo host specificato).
Usate /24 per fare lo scan di un indirizzo di classe 'C' e
/16 per fare lo scan di un indirizzo di classe 'B'.
Nmap ha anche un notazione piu potente che vi permette di
specificare un indirizzo IP usando liste/intervalli per
ogni elemento. Cosi potete fare lo scan dell'intera rete
classe 'B' 128.210.*.* specificando '128.210.*.*' o
'128.210.0-255.0-255' o anche
'128.210.1-50,51-255.1,2,3,4,5-255'. E certamente potete
usare la notazione maschera: '128.210.0.0/16'. Queste sono
tutte equivalenti. Se usate asterischi ('*'), ricordatevi
che la maggior parte delle shell vi richiedono che voi ne
facciate l'escape con le backslashes o li proteggiate con
gli apici.
Un'altra cosa interessante da fare e quantizzare Internet
in un'altro modo. Invece di fare lo scan di tutti gli host
in una classe 'B', fate lo scan '*.*.5.6-7' per esaminare
ogni indirizzo IP che finisce in .5.6 o .5.7. Decidete i
voi i vostri numeri. Per ulteriori informazioni sulla
specifica degli host su cui fare lo scan, vedere la
sezione esempi
ESEMPI
Ecco qui vi sono alcuni esempi di utilizzo per nmap, da
quelli semplici e normali a quelli piu complessi/eso-
terici. Notate che numeri attuali e alcuni nomi di dominio
attuali sono stati usati per rendere le cose piu concrete.
Al loro posto dovreste sostituire gli indirizzi/nome della
14
NMAP(1) NMAP(1)
vostra rete. Non penso che fare il portscanning di altre
reti sia illegale; i portscan non dovrebbero essere inter-
pretati dagli altri come un attacco. Ho fatto lo scan di
centinaia di migliaia di macchine e ho ricevuto solo una
lamentela. Ma non sono un avvocato e alcune persone
(anali) protrebbero essere infastidite dalle prove con
nmap. Ottete il permesso prima o usatelo a vostro ris-
chio.
nmap -v destinazione.esempio.com
Questa opzione fa lo scan di tutte le porte riservate TCP
sulla macchina destinazione.esempio.com. Il -v significa
aabilita la modalita verbose.
nmap -sS -O destinazione.esempio.com/24
Lancia uno scan SYN invisibile (stealth) contro ogni
macchina che e attiva compresa nelle 255 macchine della
classe 'C' dove destinazione.esempio.com risiede. Prova
anche a determinare quale sistema opertivo e in esecuzione
su ciascun host che e attivo. Questo scan richiede i
privilegi di root a causa dello scan SYN ed del rileva-
mento del S.O.
nmap -sX -p 22,53,110,143,4564 128.210.*.1-127
Manda uno scan Xmas tree alla prima meta di ciascuno delle
possibili sottoreti a 8 bit nello spazio di indirizzo
classe Stiamo testando se i sistemi hanno in esecuzione
sshd, DNS, pop3d, imapd, o la porta 4564 aperta. Notate
che lo scan Xmas non funziona sulle macchine Microsoft a
causa del loro stack TCP deficente. Lo stesso vale per le
macchine CISCO, IRIX, HP/UX, e BSDI.
nmap -v --randomize_hosts -p 80 '*.*.2.3-5'
Piuttosto che concentrarsi su un'intervallo IP specifico,
alcune volte e interessante suddividere in parti l'intera
Internet e fare lo scan di una piccola parte. Questo
comando trova tutti i server web sulle macchine con gli
indirizzi IP che terminano in .2.3, .2.4, o .2.5. Se siete
root potrete allo stesso modo aggiungere -sS. Potrete
anche trovare macchine piu interessanti che iniziano con
127. cosi potreste voler usare una maggior densita di mac-
chine interessanti (IMHO).
host -l company.com | cut '-d ' -f 4 | ./nmap -v -iL -
Fa un DNS zone tranfer per trovare gli host in company.com
e poi da in pasto gli indirizzi IP a nmap. I comandi
sopra visti sono per la mia macchina GNU/Linux. Potreste
aver bisogno di diversi comandi/opzioni su altri sistemi
operativi.
15
NMAP(1) NMAP(1)
BUGS
Bugs? Che bugs? Mandatemeli se li trovate. Anche patch
sono gradite :) Ricordate anche di mandare i fingerprint
per i nuovi S.O. cosi possiamo far crescere il database.
Nmap vi dara una URL di submission quando e stata trovata
un'appropriata fingerprint.
AUTORE
Fyodor <fyodor@dhp.com>
DISTRIBUZIONE
La piu recente distribuzione di nmap nmap puo' essere
ottenuta al http://www.insecure.org/nmap/
nmap is (C) 1997,1998,1999,2000 by Fyodor (fyodor@inse-
cure.org)
libpcap viene anche distribuita assieme ad nmap. Il suo
copyright e detenuto da Van Jacobson, Craig Leres and
Steven McCanne, tutti del Lawrence Berkeley National Labo-
ratory, Universita della California, Berkeley, CA. La
versione distributa con nmap puo essere stata modificata i
sorgenti originali sono disponibili al
ftp://ftp.ee.lbl.gov/libpcap.tar.Z .
Questo programma e software libero; potete ridistribuirlo
e/o modificarlo rispettando i termini della GNU General
Public License com pubblicata dalla Free Software Founda-
tion; Versione 2. Questa garantisce i vostri diritti di
usare, modificare e ridistribuire Nmap sotto certe con-
dizioni. Se questa licenza e per voi inaccettabile, Inse-
cure.Org puo essere in grado di vendervi licenze alterna-
tive (contattate fyodor@dhp.com).
Il sorgente viene fornito con questo software perche cre-
diamo che gli utenti abbiano il diritto di sapere cosa
esattamente un programma ha intenzione di fare prima di
eseguirlo. Questo potrebbe anche permettevi di correggere
di testare il software per buchi alla sicurezza (non ne
sono stati trovati da molto).
Il codice sorgente vi permette anche di fare il port di
nmap a nuove architetture, fissare i bug, e aggiungere
nuove caratteristiche. Siete fortemente incoraggiati di
mandare i vostri cambi a Fyodor per la possibile inclu-
sione nella distribuzione principale di Nmap. Mandando
questi cambi a Fyodor, o a nmap-hackers, si assume che voi
stiate offrendo a Fyodor il diritto illimitato, non esclu-
sivo di riusare, di modificare, e porre sotto nuova
licenza il codice. Se desiderate specificare condizioni
speciali per la licenza dei vostri contributi,
dichiarateli prima sul contributo stesso.
Questo programma e distribuito nella speranza che sia
16
NMAP(1) NMAP(1)
utile, ma SENZA ALCUNA GARANZIA; senza anche l'implicita
garanzia di COMMERCIABILITA' o ADEGUATEZZA AD UNO SCOPO
PARTICOLARE. Vedere la GNU Public License per ulteriori
dettagli (essa e nel file COPYING della distribuzione di
nmap ).
Si dovrebbe notare che Nmap puo mandare in crash determi-
nate applicazioni mal progettate, stack TCP/IP, e anche
sistemi operativi. Nmap non dovrebbe mai essere eseguito
contro sistemi, che hanno compiti critici (detti anche
mission critical systems) a meno che non siate preparati a
tollerare il tempo in cui essi siano disattivi. Qui
riconosciamo che Nmap puo mandare in crash i vostri sis-
temi o reti e non ci assumiamo nessuna responabilita per
ogni danno o problema che Nmap potrebbe causare.
Tutte le versioni di Nmap a partire dalla 2.0 inclusa non
presentano problemi in tutti i loro aspetti con il bug
dell'anno 2000 (Y2K bug). Non esiste nessuna ragione di
credere che le versioni precedenti alla 2.0 siano
suscettibili a tale problema, ma non sono state testate.
17
Man(1) output converted with
man2html