Nmap network security scanner man page (Italian translation)
XXX
XXX WARNING: old character encoding and/or character set
XXX
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 è progettato per permettere agli ammistratori di sistema 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-portmapper), lo scan di frammentazione, la specifica
flessibile della destinazione e delle porte.
Sforzi significativi sono stati impiegati nel rendere decenti le per-
formance per gli utenti non root. Sfortunatamente, 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 è possi-
bile.
Il risultato di un’esecuzione di nmap è 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 può essere ’open’
(aperto), Open significa che la macchina destinazione accetterà ( medi-
ante 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 è aperta. Unfiltered sig-
nifica che nmap ha riconosciuto la porta come chiusa e nessun fire-
wall/filtro sembra aver interferito con il tentativo di nmap di rile-
vare se la porta fosse aperta o chiusa. Le porte unfiltered (non-fil-
trate) sono il caso più comune e sono mostrate solo quando la maggior
parte delle porte esaminate sono nello stato filtered (filtrate).
A seconda delle opzioni usate, nmap può riportare le seguenti caratter-
istiche dell’host remoto: S.O. in uso, sequenziabilità TCP, nomi gli
utenti che hanno eseguito i programmi che sono associati ad una data
porta, il nome del DNS, se l’host è un indirizzo smurf, e poco altro.
OPZIONI
Le opzioni che assieme hanno senso possono essere generalmente combi-
nate. Alcune opzioni sono specifiche a date modalità 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 è la forma base dello scan TCP. La
chiamata di sistema connect() fornita dal vostro sistema
operativo è usata per aprire una connessione ad ogni porta
interessante sulla macchina. Se la porta è in ascolto, la con-
nect() avrà luogo, altrimenti la porta non è raggiungibile.
Ogni utente sulla maggior parte dei sistemi UNIX è libero di
usare questa chiamata.
Questo genere di scan è 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 è spesso chiamata scan "semi-
aperto", perchè non aprite una completa connessione 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 è in ascolto. Un RST è indicativa di una
porta non in ascolto. Se viene ricevuto un SYN|ACK come risposta
, viene mandato immediatamente un RST per chiudere la connes-
sione ( allo stato attuale il kernel del vostro S.O. lo fa per
noi). Il vantaggio primario di questa tecnica di scanning è che
pochi siti la loggeranno. Sfortunatamente avete bisogno dei
privilegi di root per poter creare questi appositi pacchetti
SYN.
-sF -sX -sN
Le modalità di scan Stealth FIN, Xmas Tree, o Null: Ci sono
delle volte che anche lo scan SYN non è abbastanza anonimo.
Alcuni firewall e packet filter controllano i SYN per le porte
riservate, e programmi come Synlogger e Courtney sono disponi-
bili per rilevare questi scan. Questi scan avanzati, d’altra
parte, possono essere in grado di passare attraverso i firewall,
packet filter e/o programmi loggers indisturbati.
L’idea è che le porte chiuse devono rispondere al vostro pac-
chetto di prova con un RST, mentre le porte aperte devono igno-
rare il pacchetto in questione (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. Sfortunatamente Microsoft (come sua
consuetudine) ha deciso di ignorare completamente lo standard e
fare le cose a modo suo. Così questo tipo di scan non funziona
contro i sistemi in cui gira Windows95/NT. Se prendiamo la cosa
dal punto di vista positivo, questo fatto è un buon modo per
distinguere tra le due piattaforme. Se lo scan trova porte
aperte, sapete che la macchina non è un computer con Windows. 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 è meno utile in
quanto nmap ha un proprio un rilevamento di S.O. integrato. Ci
sono anche alcuni altri sistemi che violano lo standard nella
stessa maniera di Windows. Questi includono Cisco, BSDI, HP/UX,
MVS, e IRIX. Tutti i sistemi operativi soprastanti mandano
resets da porte aperte quando invece dovrebbero solo ignorare il
pacchetto.
-sP Ping scanning: Alcune volte volete solo sapere quali host sulla
rete sono attivi. Nmap può scoprire questo mandando pacchetti
ICMP echo request ad ogni indirizzo IP sulla rete che voi spec-
ificate. Gli host che rispondono sono attivi. Sfortunatamente,
alcuni siti come ad esempio microsoft.com bloccano i pacchetti
echo-request. Così nmap può mandare anche un pacchetto ack TCP
(per default) alla porta 80. Se ottenenete indietro un RST, la
macchina è attiva. Una terza tecnica comporta il mandare un pac-
chetto 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 tecniche sia ICMP
che ACK in parallelo. Potete cambiare 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.
-sU Scan UDP: Questo metodo viene usato per determinare quali porte
UDP (User Datagram Protocol, RFC 768) sono aprte su un host. La
tecnica è mandare paccheti udp di 0 byte ad ogni porta sulla
macchina destinazione. Se riceviamo un messaggio ICMP port
unreachable, allora la porta è 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 può
essere trovato nascosto su una porta UDP non documentata a patto
che essa sia maggiore di 32770. Cosi’ non ha importanza se la
111 è bloccata dal firewall. Ma, potete trovare quali porte
alte maggiori della 30.000 siano in ascolto? Con uno scanner
UDP potete! Esiste anche il programma backdoor Back Orifice del
cDc, che si nasconde su una porta UDP configurabile sulle mac-
chine Windows. Per non parlare i vari servizi comunemente vul-
nerabili che utilizzano UDP come ad esempio snmp, tftp, NFS,
ecc.
Sfortunatamente lo scan UDP è alcune volte spaventosamente 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 destina-
tion unreachable ad 80 per 4 secondi, con una penalità di 1/4 di
secondo se questo limite viene sorpassato. Solaris ha limiti
più stretti (circa 2 messaggi per secondo) e cosi si impiega più
tempo per lo scan. nmap rileva questo tasso limitando e rallen-
tando lo scan di conseguenza, piuttosto che flooddare la rete
con pacchetti inutili che saranno ignorati dalla macchina desti-
nazione.
Come è tipico, Microsoft ha ignorato la proposta della RFC e non
sembra aver imposto nessun tasso di limitazione sulle macchine
Win95 e NT. Così possiamo fare lo scan di tutte le 65K porte di
una macchina Windows molto velocemente.
-sA Scan ACK: Questo metodo avanzato viene usato solitamente per
scoprire gli insiemi delle regole dei firewall. In particolare,
può aiutare determinare se un firewall sia stateful o solo un
semplice filtro di pacchetti che blocca i pacchetti SYN in
entrata.
Questo tipo di scan manda un pacchetto ACK (con acknowledge-
ment/sequence numbers apparentemente casuali) alle porte spec-
ificate. Se si ha come ritorno un RST, le porta viene classifi-
cata come "unfiltered" (non-filtrata). Se non si ritorno ( o se
si ha come ritorno un pacchetto ICMP unreachable), la porta
viene classificata come "filtered" (filtrata). Notate che di
solito nmap non stampa le porte "unfiltered", così se non otte-
niamo nessuna porta mostrata nell’output è di solito un segno
che tutte le prove sono state portate a termine ( e hanno resti-
tuito dei RST). Questo scan ovviamente non mostrerà mai porte
nello stato "open" (aperto).
-sW Scan window: Questo scan avanzato è molto simile allo scan ACK,
eccetto che alcune volte può rilevare 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 com-
pleto.
-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 infor-
mazioni di ’rcpinfo -p’ anche se il portmapper di destinazione è
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" interessante del proto-
collo ftp (RFC 959) è il supporto per le connessioni ftp
"proxy". In altre parole, io dovrei essere in grado di connet-
temi 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 "può essere usato per postare mail e
news virtualmente irritracciabili, riempire i dischi, provare a
scavalcare i firewall, e generalmente è fastidioso e difficile
da rintracciare allo stesso tempo." Noi sfrutteremo questo
problema per (sorpesa,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 è 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’ è l’host che volete usare
come proxy, in una notazione standard URL. Il formato è: user-
name:password@server:porta. Tutto tranne il server è opzionale.
Per determinare quali server siano vulenrabili a questo attacco,
potete vedere il mio articolo in Phrack 51. E una versione
aggiornata è disponibili all’URL di nmap (http://www.inse-
cure.org/nmap)
OPZIONI GENERALI
Nessuna di queste opzioni è 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 perme-
ttono ICMP echo request (o risposte) attraverso il loro fire-
wall. microsoft.com è un esempio di tale rete, così 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 pacchetti TCP ACK attraverso la rete desti-
nazione (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’eff-
icenza 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 è la 80, in quanto questa
porta spesso non è 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
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 permet-
tono numerosi attacchi denial of service (Smurf è il più
comune).
-PB Questo è il tipo di ping di default. Esso usa gli sweep ACK (
-PT ) e ICMP ( -PI ) in parallelo. In questo modo potete rile-
vare 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 tec-
niche per rilevare le sottigliezze nello strato sottostante
dello stack di rete del sistema operativo del computer sotto-
posto 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-finger-
prints) per decidere a quale tipo di sistema state facendo lo
scan.
Se trovate una macchina che è 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 è 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 system’ (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 è 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 così tale elenco sarà più 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 pro-
tocollo ident (rfc 1413) permette di scoprire il nome
dell’utente appartenente ad ogni processo connesso via TCP,
anche se il processo non ha iniziato una connessione. Così
potete, per esempio collegarvi alla porta http e poi usare
identd per scoprire se il server è in esecuzione con i diritti
di root. Questo scan può 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 è in esecuzione identd.
-f Questa opzione provoca gli scan SYN, FIN, XMAS, o NULL ad usare
minuscoli pacchetti IP frammentati. L’idea è di suddividere
l’header TCP in diversi pacchetti per rendere più difficile ai
filtri di pacchetti (packet filters), ai sistemi di rilevamento
delle intrusioni (IDS), e altre seccature rilevare quello che
state facendo. State attenti con questa opzione! Alcuni pro-
grammi hanno problemi nella gestione di questi pacchetti minus-
coli. Il mio sniffer preferito è 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 passerà i filtri di pacchetto e firewall che mettono
in coda tutti i frammenti IP (come l’opzione CON-
FIG_IP_ALWAYS_DEFRAG nel kernel Linux), alcune reti non possono
permettersi l’abbattimento delle prestazioni che questa opzioni
causa e così la lasciano 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 Modalità verbose. Questa è un’opzione altamente raccomandata e
da molte più 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 è esattamente un ’riferimento rapido’ :)
-oN <nomefiledilog>
Questa opzione logga i risultati dei vostri scan nella normale
forma chiaramente leggibile nel file che specificate come argo-
mento.
-oM <nomefiledilog>
Questa opzione logga i risultati dei vostri scan nella forma
analizzabile dalla macchina nel file che specificate come argo-
mento. Potete dare l’argomento ´-´ (senza apici) per inviare
l’output allo stdout (per fare shell pipe, ecc.). In questo caso
l’output normale sarà sopresso. Controllate i messaggi di errore
se usate quest’ultima possibilità (essi andranno ancora allo
stderr). Notate anche che ´-v´ farà 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 arGuMEnT0! P0t3t3 Dar3
L’Arg0M3nt0 ´-´ (s3Nza Virg0L3Tt3) p3R mAnDAr3 L’0uTput n3ll0
stDouT!@!!
--resume <nomefiledilog>
Uno scan di rete che è stato cancellato a causa di un control-C,
problemi di rete, ecc. può essere riprestinto usando questa
opzione. Il nomefiledilog 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 interrotto). Nmap inizierà a fare lo scan
sulla macchina posta dopo l’ultima macchina di cui è 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 espressioni di rete separate da spazi,
caratteri di tabulazione, o newline. Usate una linea trattegiata
(-) come nomedelfilediinput se volte che nmap legga le espres-
sioni dell’host dallo stdin (come alla fine di una pipe). Vedere
la sezione specifica della destinazione per ulteriori infor-
mazioni sulle espressioni con le quali potete riempire il file.
-iR Questa opzioni dicono ad Nmap di generare i propri host da esam-
inare prendendo semplicemente numeri casuali :). Non terminerÃ
main. Questa opzione può essere utile per campionamenti statis-
tici di Internet 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 specificare. Per
esempio con ’-p 23’ Nmap proverà la porta 23 del/degli host des-
tinazione. Con ´-p 20-30,139,60000-´ Nmap farà 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 file services fornito con
nmap.
-F ModalitÃÃ di scan veloce.
Specifica che desiderate esaminare solo le porte elencate nel
file servizi fornito con nmap. Questo tipo di scan è ovviamente
più 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). Così 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",
è 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 met-
tete ’ME’ nella sesta posizione o oltre, per alcuni rilevatori
di portscan comuni (come ad esempio l’eccellente scanlogd di
Solar Designer) è molto poco probabile che mostrino il vostro
indirizzo IP. Se non usate ’ME’, nmap lo porrà in una posizione
casuale.
Notate che gli host che usate come decoy dovrebbero essere
attivi o potreste accidentalmente fare il SYN flood delle desti-
nazioni. Dovrebbe essere anche abbastanza semplice determinare
quale host è sottoposto a scan se uno solo è allo stato attuale
attivo sulla rete. Potreste voler usare gli indirizzi IP invece
dei nomi (in questo modo le rete dei decoy non vi vedono nei log
dei loro nameserver).
Notate anche che alcuni "rilevatori di port scan" (stupidi)
firewalleranno/negheranno il routing agli host che provano a
fare il portscan. Così potreste inavvertitamente causare alla
macchina sottoposta a scan la perdita di connettività con le
macchine decoy che state usando, Questo potrebbe causare alle
macchine target maggiori problemi se il decoy, è diciamo, il suo
gateway internet o anche "localhost". Così potreste voler
essere prundenti con questa opzione. La vera morale della sto-
ria è che i rilevatori dei portscan spoofabili non dovrebbero
agire contro la macchina che a loro sembra stia 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 può rallentare il
vostro scan e renderlo potenzialmente anche meno accurato.
Inoltre, alcuni ISP filtreranno i vostri pacchetti spoofati,
sebbene molti (attualmente la maggior parte) non restringono i
pacchetti IP spoffati completamente.
-S <Indirizzo_IP>
In alcune circostanze, nmap può non essere in grado di deter-
minare il vostro indirizzo sorgente ( nmap vi informerà se
questo è il caso). In questa situazione, usate -S con il vostro
indirizzo IP (dell’interfaccia mediante la quale desiderate man-
dare i pacchetti).
Un’altro possibile uso di questo flag è di spooffare lo scan per
fare in modo che le destinazioni pensino che qualcun altro le
stia scannando. Immaginate una società sulla quale un’altra
rivale fa ripetutamente dei port scan!. Questo non è un utilizzo
supportato ( o lo scopo principale) di questo flag. Ho già pen-
sato che questo flag avanza una interessante possibilità di cui
le persone dovrebbero essere consapevoli prima che vadano accu-
sando 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 ricevere i pac-
chetti. Nmap dovrebbe essere ingrado di rilevare tale interfac-
cia, ma questa opzione permette di dirgliela se non è in grado.
-g <numeroporta>
Imposta il numero di porta sorgente usata negli scan. Molti
firewall nativi e installzioni di filtri di pacchetti fanno
un’eccezione nel loro insieme di regole per permettere ai pac-
chetti 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 mascher-
arsi come FTP o DNS modificando la loro porta sorgente. Ovvia-
mente per uno scan UDP dovreste prima provare uno scan UDP e gli
scan TCP dovrebbero trovare 20 prima di 53. Notate che questa è
solo una richiesta -- nmap la onorerà solo se è in grado di
farlo. Per esempio, non potete fare il campionamento TCP ISN da
un host:porta a un’altro host:porta, così nmap cambia la porta
sorgente anche se avete usato -g.
Rendetevi conto che usando questa opzione v’è una lieve penalitÃ
nelle prestazione, perchè 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 può renedere gli scan
meno ovvi ai diversi sistemi di monitoraggio della rete, spe-
cialmente quando lo combinare con opzioni di timing lente
(vedere sotto).
-M <max sockets>
Imposta il numero massimo di socket che saranno usati in paral-
lelo per uno scan TCP connect() (lo scan di default). Questa
opzione è utile per rallentare di poco lo scan e evitare il
crash delle macchine remote. Un’altro approccio è usare -sS,
opzione che è generalmente più semplice da gestire le le
macchine.
OPZIONI DI TIMING
Generalmente Nmap fa un ottimo lavoro nell’adattarsi alle carat-
teristiche di rete a run-time e fare lo scan tanto veloce quanto
possibile minimizando le possibilità 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 conve-
nientemente le vostre priorità ad Nmap.
La modalità Paranoid fa gli scan molto lentamente nella speranza
di evitare il rilevamento dai sistemi IDS. Essa serializza
tutti gli scan (nessuno scanning parallelo) e generalmente
aspetta almeno 5 minuti tra i pacchetti mandati. Sneaky è sim-
ile, eccetto che aspetta solo 15 secondi tra i pacchetti man-
dati. Polite è stato pensata per facilitare il carico sulla
reta e ridurre le possibilità di mandare in crash le macchine.
Serializza le prove e aspetta almeno 0.4 secondi tra esse. Nor-
mal è il comportamento di default di Nmap, che prova a fare gli
scan tanto velocemente quanto gli è possibile senza sovracari-
care la rete o mancare degli host/delle porte. La modalitÃ
Aggressive aggiunge un timeout di 5 minuti per host e non
aspetta mai più di 1.25 secondi per le risposte di prova.
Insane è solo adatto per reti molto veloci o dove non vi importa
la perdità di alcune informazioni. Manda in time out gli host in
75 secondi e aspetta solo 0.3 per le prove individuali. Pero
non permette sweep di rete molto veloci :). Potete anche fare
riferimento a questi numeri. Per esempio, ´-T 0´ vi da la
modalità Paranoid e ´-T 5´ è la modalità Insane.
Queste possibili modalità di timing NON dovrebbe essere usata
con i controlli a basso livello dati sotto.
--host_timeout <millisecondi>
Specifica la quantità di tempo, permessa ad Nmap per fare lo
scan di un singolo host prima di terminare lo scan su quel dato
IP. La modalità di timing 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 modalità 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 diminuirà la somma di tempo
data per prova. Questo velocizza lo scan, ma può condurre a pac-
chetti mancati quando una risposta impiega di più del solito.
Con questo parametro potete garantire che Nmap aspetterà al meno
la data quantità di tempo prima di terminare una prova.
--initial_rtt_timeout <millisecondi>
Specifica il timeout iniziale di prova. Questo è generalmente
utile solo quando fate lo scan di host firewallati con -P0.
Normalmente Nmap può ottenere buone stime RTT dal ping e dalle
prime prove. La modalità di default usa 6000.
--max_parallelism <numero>
Specifica il massimo numero di scan da svolgere in parallelo,
che è permesso a Nmap. Se impostate questo a 1 Nmap non proverÃ
mai ad esaminare più 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 quantità di tempo minima nella quale Nmap deve
aspettare tra le prove. Questa opzione è 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 ciò che non è un’opzione (o un argomenti di un’opzione) viene
trattato in nmap come specifica dell’host destinazione. Il caso più
semplice è 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 più 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 pro-
teggiate con gli apici.
Un’altra cosa interessante da fare è 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 più complessi/esoterici. Notate che numeri attuali e
alcuni nomi di dominio attuali sono stati usati per rendere le cose più
concrete. Al loro posto dovreste sostituire gli indirizzi/nome della
vostra rete. Non penso che fare il portscanning di altre reti sia
illegale; i portscan non dovrebbero essere interpretati 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 per-
sone (anali) protrebbero essere infastidite dalle prove con nmap.
Ottete il permesso prima o usatelo a vostro rischio.
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 modalitÃ
verbose.
nmap -sS -O destinazione.esempio.com/24
Lancia uno scan SYN invisibile (stealth) contro ogni macchina che è
attiva compresa nelle 255 macchine della classe ’C’ dove desti-
nazione.esempio.com risiede. Prova anche a determinare quale sistema
opertivo è in esecuzione su ciascun host che è attivo. Questo scan
richiede i privilegi di root a causa dello scan SYN ed del rilevamento
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
è interessante suddividere in parti l’intera Internet e fare lo scan di
una piccola parte. Questo comando trova tutti i server web sulle mac-
chine 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 più interessanti che iniziano con 127. cosi potreste
voler usare una maggior densità di macchine 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.
BUGS
Bugs? Che bugs? Mandatemeli se li trovate. Anche patch sono gradite
:) Ricordate anche di mandare i fingerprint per i nuovi S.O. così pos-
siamo far crescere il database. Nmap vi darà una URL di submission
quando è stata trovata un’appropriata fingerprint.
AUTORE
Fyodor <fyodor@insecure.org>
DISTRIBUZIONE
La più recente distribuzione di nmap nmap puo’ essere ottenuta al
http://www.insecure.org/nmap/
nmap is (C) 1997,1998,1999,2000 by Fyodor (fyodor@insecure.org)
libpcap viene anche distribuita assieme ad nmap. Il suo copyright è
detenuto da Van Jacobson, Craig Leres and Steven McCanne, tutti del
Lawrence Berkeley National Laboratory, Università della California,
Berkeley, CA. La versione distributa con nmap può essere stata modifi-
cata i sorgenti originali sono disponibili al
ftp://ftp.ee.lbl.gov/libpcap.tar.Z .
Questo programma è software libero; potete ridistribuirlo e/o modifi-
carlo rispettando i termini della GNU General Public License com pub-
blicata dalla Free Software Foundation; Versione 2. Questa garantisce i
vostri diritti di usare, modificare e ridistribuire Nmap sotto certe
condizioni. Se questa licenza è per voi inaccettabile, Insecure.Org può
essere in grado di vendervi licenze alternative (contattate fyo-
dor@insecure.org).
Il sorgente viene fornito con questo software perchè crediamo che gli
utenti abbiano il diritto di sapere cosa esattamente un programma ha
intenzione di fare prima di eseguirlo. Questo potrebbe anche permet-
tevi 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 pos-
sibile inclusione 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 esclusivo 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 è distribuito nella speranza che sia 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 è nel file COPYING della distribuzione di nmap
).
Si dovrebbe notare che Nmap può mandare in crash determinate appli-
cazioni 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 può mandare in crash i vostri sistemi o reti e
non ci assumiamo nessuna responabilità 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.
NMAP(1)
Man(1) output converted with
man2html