Nmap network security scanner man page

Manpage converted by man2html 3.0.1
Tradotto in italiano da Gilberto Ficara - veleno@3dinfinity.net


| Nome | Sintassi | Descrizione | Opzioni | Specificazione dei bersagli | Esempi | Bugs | Autore | Distribuzione |


Nome

nmap - Strumento di esplorazione della rete e scanner della sicurezza


Sintassi

nmap [Tipo(i) di scan] [Opzioni] <host o rete #1 ... [#N]>


Descrizione


Nmap è disegnato per permettere ai sysadmin ed a individui curiosi di scannare grosse reti per determinare quali host sono 'su' e quali servizi offrono. Nmap supporta un gran numero di tecniche di scan come per esempio: UDP, TCP connect(), TCP SYN (half open), ftp proxy (bounce attack), Reverse-ident, ICMP (ping sweep), FIN, ACK sweep, Xmas Tree, SYN sweep, e Null scan. Leggete la sezione tipi di scan per maggiori dettagli.
Nmap offre anche molte funzioni avanzate come il detect del sistema operativo da remoto via TCP/IP fingerprinting, stealth scanning, dynamic delay e retrasmission calculations, parallel scanning, detect degli host 'down' con il parallel ping, decoy scanning, detect di port filtering, RPC scanning diretto (non-portmapper), fragmentation scanning e specificazione flessibile di target e host.

Uno sforzo significativo è stato messo per ottenere una performance decente di nmap per gli users non-root. Sfortunatamente molte interfacce critiche del kernel (come i raw sockets) richiedono i privilegi di root. Nmap deve essere usato da root, quando possibile.

Il risultato di eseguire nmap è di solito una lista di porte interessanti della macchina (o delle macchine) scannate. Nmap dà sempre il nome del servizio 'well known' (entro le prime 1024 porte?), numero, stato e protocollo. Lo stato è sia 'open' (aperto) che 'filtered' (filtrato) che 'unfiltered' (non filtrato). 'Open' significa che la macchina scannata accetterà connessioni su quella porta. 'Filtered' significa che un firewall, un filtro o un altro ostacolo di rete copre la porta e previene nmap dal determinare se la porta è aperta. 'Unfiltered' significa che la porta è conoscita da nmap come chiusa e nessun firewall o filtro sembra interferire con i tentativi di nmap di stabilirlo. Le porte 'unfiltered' sono casi comuni e vengono mostrate solo se la maggior parte delle porte scannate sono in stato di filtering.

Dipendentemente dalle opzioni usate, nmap può inoltre riportare le seguenti caratteristiche dell'host remoto: Sistema Operativo (OS) in uso, capacità di azzeccare la sequenza TCP, username di quelli che eseguono i programmi che hanno il bound su ogni porta, il nome DNS, se l'host e' uno smurf address, e alcune altre.

OPZIONI


Le opzioni che contano in genere possono essere combinate. Molte opzioni sono specifiche di certi tipi di scan. nmap cerca di accettare e avvisare l'utente circa combinazioni di opzioni psicotiche o non supportate.

NMAP(1) Se sei impaziente puoi saltare alla sezione degli esempi alla fine, che dimostrano gli usi più comuni. Potete anche lanciare nmap -h per una veloce pagina di referenza che lista tutte le opzioni.

SCAN TYPES

-sT   Tcp connect() scan: questo è il più semplice modo di TCP scanning. La chiamata di sistema connect() fornito dal vostro sistema operativo è usate per aprire una connessione a tutte le porte interessanti nella macchina. Se la porta è in ascolto, connect() avrà successo, altrimenti la porta non è raggiungibile. Un gran vantaggio di questa tecnica è che non ha bisogno di nessun privilegio speciale. Ogni utente su gran parte dei box Unix è libero di usare questa chiamata.

Questo tipo di scan è facilmente rintracciabile perchè l'host di destinazione mostrerà molte connessioni e messaggi di errore per i servizi che accettano la connessione visto che viene immediatamente chiusa.
-sS   TCP SYN scan: Questa tecnica è spesso riferita come 'half-open' scanning, poichè non potete creare una connessione TCP completa. Voi spedite un pacchetto SYN, come se voleste creare una vera connessione ed aspettate la risposta. Un SYN|ACK indica che la porta è in ascolto. Se viene ricevuto un SYN|ACK, un RTS viene subito spedito per chiudere la connessione (attualmente il kernel del nostro OS si occupa di ciò). Il primo vantaggio di questa tecnica di scan è che molti meno siti lo loggano. Sfortunatamente dovete avere privilegi di root per costruire questi pacchetti SYN 'custom'.

-sF -sX -sN
Metodi Stealth FIN, Xmas Tree o Null scan: questi sono per quando anche il SYN scan non è abbastanza 'clandestino'. Molti firewall e filtri di pacchetti controllano per pacchetti SYN sulle porte 'interessanti' e programmi come Synlogger e Courtney sono stati creati per scoprire questi scan. Questi scan avanzati, in altre parole, potrebbero invece passare inosservati.

L'idea è che le porte chiuse devono rispondere alla vostra ricerca con un RTS, mentre le porte aperte devono ignorare il pacchetto in questione (vedere RFC 973 pp 64). Lo scan FIN usa un pacchetto FIN puro (sorpresa) come ricerca, mentre lo scan Xmas tree si basa sulle flags URG e PUSH del FIN. Sfortunatamente Microsoft (come al solito) ha deciso di ignorare completamente lo standard e fare le cose a modo suo. Questi scan non funzionano contro sistemi Win9x/NT.

La parte buona è che è un buon modo per distinguere tra le die piattaforme. Se lo scan trova porte aperte saprete che la macchina non è uno Windows. Se uno scan -sF, sX o -sN trova tutte le porte chiuse mentre uno scan SYN (-sS) trova porte aperte, probabilmente quello sarà un box Windows. Questo è meno utile ora che nmap ha il proprio scan per trovare l'OS incluso. Ci sono anche altri sistema che sono rotti come Windows. Questi includono Cisco, BSDI, HP/UX, MVS e IRIX. Tutti quelli sopra spediscono resets dalle porte aperte quando buttano via il pacchetto.

-sP   Ping scanning: spesso volete solamente sapere quali host in una rete sono online. Nmap può farlo spedendo richieste ICMP echo a ciascun IP nella rete che specificate. Gli host che rispondono sono su. Sfortunatamente molti siti come microsoft.com bloccano i pacchetti di richiesta di echo. Quindi nmap pu&ogrrave; anche spedire un pacchetto TCP ACK alla porta (di default) 80. Se abbiamo in risposta un RST, la macchina è su. Una terza tecnica implica di spedire un pacchetto SYN e aspettare per un RST o SYN/ACK. Per gli users non root viene usato il metodo connect().

Di solito (per gli user non-root), nmap usa entrambi i metodi ICMP e ACK in parallelo. Potete cambiare l'opzione -P descritta in seguito.

Ricordate che il ping è fatto comunque di default e solo gli host che rispondono vengono scannati. Usate questa opzione se volete solo scannare senza fare alcuno scan.

-sU   UDP scans: questo metodo è usato per determinare quali porte UDP (User Datagram Protocol, RFC 768) sono attualmente aperte su un host. La tecnica è di spedire un pacchetto UDP di 0 bytes ad ogni porta della macchina bersaglio. Se riceviamo un messaggio ICMP port unreachable, la porta è chiusa. Altrimente si assume che sia aperta.

Molti pensano che lo scanning UDP sia senza scopo. Di solito gli ricordo il recente buco del Solaris rcpbind. Rcpbind può essere scoperto nascondendo una porta UDP non documentata sopra alla 32770. Quindi non importa che la 111 sia bloccata dal firewall. Ma potete trovare quale in quale porta delle oltre 30000 alte sta ascoltando? Con uno scan UDP potete farlo! C'è anche il BackOrifice che si installa in una porta UDP configurabile, sulle macchine Windows. Per non parlare dei più comuni servizi vulnerabili che usano UDP come snmp, tftp, NFS etc.

Sfortunatamente lo scan UDP è spesso lentissimo pochè molti host mettono in pratica un suggerimento dell' RFC 1812 (sezione 4.3.2.8) di limitare l'ammontare degli errori ICMP. Per esempio il kernel di Linux (in net/ipv4.icmp.h) limita la generazione di messaggi ICMP destination unreachable a 80 ogni 4 secondi, con 1/4 di secondo di penalità se è superato. Solaris ha un limite molto più stretto (circa 2 messaggi al secondo) e questi richiedono molto più tempo per scannare. nmap scopre questo ammontare rallentando e limitandosi di conseguenza, piuttosto che floodare la rete con pacchetti inutili che verranno ignorati dalla macchina bersaglio.

Come al solito, Microsoft ha ignorato il suggerimento dell'RFC e sembra non aver imposto nessun limite di tempo in tutte le macchine Win9x/NT. Quindi possiamo scannare tutte le 65k porte di una macchina windows davvero velocemente.
Woop!

-sR   RPC scan. Questo metodo funziona in combinazione con i vari metodi di portscan di Nmap. Prende tutte le porte TCP e UDP trovate aperte e le flooda con i comandi NULL del programma SunRPC per scoprire quali sono porte RCP, e se ce n'è qualcuna, che programma e versione ci gira sopra. Possiamo effettivamente conoscere le stesse informazioni con rpcinfo -p anche se la macchina bersaglio è dietro un firewall (o protetta da TCP wrappers). Le 'trappole' (decoy) attualmente non funzionano con l'RPC scan, ma presto metterò il supporto per gli scan UDP RPC.

-b <ftp relay host>
Ftp bounce attack: Un'interessante 'servizio' del protocollo ftp (RFC 959) è il supporto per le connessioni ftp 'proxy'. In altre parole, posso connettermi da evil.com al server ftp di target.com e richiedere se il server spedisce un file OVUNQUE in internet! Ora questo forse funzionava bene nel 1985 quando l'RFC è stata scritta. Ma l'Internet di oggi, non possiamo avere gente che va in giro hijackando server ftp e richiedendo che i dati vengano buttati in qualsiasi punto di internet. Come *Hobbit* scrive tornato nel 1995, questo difetto del protocollo "può essere usato per postare mail e news virtualmente intracciabili, martellando sui server a diversi siti, riempiendo i dischi, cercando di saltare i firewalls ed essendo generalmente rompiscatole e difficili da tracciare allo stesso tempo." Quello che faremo è (sorpresa, sorpresa) di scannare le porte TCP da un server ftp 'proxy'. Quindi possiamo connetterci ad un server dietro un firewall e poi scannare le porte che probabilmente sono chiuse (la 139 è una buona). Se il server ftp permette di scrivere su alcune directory (come /incoming), potete mandare dati arbitrari alle porte che trovate aperte (nmap non lo fa per voi, naturalmente).

L'argomento passato all'opzione 'b' è l'host che volete usare come proxy nella notazione url standard. Il formato è: username:password@server:port. Tutto tranne server è opzionale. Per determinare quali server sono attaccabili da questo attacco potete vedere il mio articolo in Phrack 51. Una versione aggiornata è disponibile sul sito di nmap http://www.insecure.org/nmap.

OPZIONI GENERALI
Nessuna di queste è richiesta, ma molte possono essere abbastanza utili.

-P0 Non cerca di pingare gli host del tutto prima di scannarli. Questo permette di scannare reti che non permettono le richieste ICMP echo (o le risposte) attraverso i loro firewall. microsoft.com è un esempio di questo tipo di rete, e noi possiamo quindi usare -P0 o -PT80 quando facciamo portscan a microsoft.com.

-PT Usa il ping TCP per determinare se gli host sono online. Invece che mandare pacchetti ICMP echo request ed aspettare per la risposta, spediamo pacchetti TCP ACK attraverso il network bersaglio (o verso una singola macchina) e poi aspettiamo per la risposta che torni indietro. Gli host che sono su dovrebbero rispondere con un RST. Quest'opzione preserva l'efficienza solo scannando host che sono su, mentre non vi permette di scannare networks che bloccano pacchetti ping. Per gli user non root, usiamo connect(). Per settare la porta di destinazione dei pacchetti di ricerca usate -PT<port number>. La porta di default è la 80, visto che non è quasi mai filtrata. -PS usa pacchetti SYN (richiesta di connessione) invece di pacchetti ACK per gli utenti root. Gli host che sono su risponderanno con un RST (o raramente con un SYN|ACK).

-PI Questa opzione usa un vero pacchetto di ping (ICMP echo request). Se trova host che sono su cerca anche nella vostra rete per indirizzi di broadcast diretti alla subnet. Questi sono IP raggiungibili dall'esterno e traducono i pacchetti IP in arrivo ad una subnet di computers. Questi vengono eliminati se vengono trovati a permettere numerosi tipi di attacchi D.o.S. (Denial of Service) come lo Smurf.

-PB Questo è il tipo di ping di default. Usa sia il ping ACK (-PT) che l'ICMP (-PI) in parallelo. Potete infatti eludere i firewall che bloccano uno dei due tipo (ma non entrambi).

-O Questa opzione attiva l'identificazione dell'host remoto via TCP/IP fingerprinting. In altre parole usa diverse tecniche per trovare sottigliezze nello stack di rete del sistema operativo che sta sotto ai computers che state scannando. Usa queste informazioni per creare un 'fingerprint' che compara con un database di fingerprints di OS conosciuti (il file nmap-os-fingerprint) per decidere quale tipo di sistema state scannando.

Se trovate una macchina che viene diagnosticata male ed ha almeno una porta aperta, sarebbe utile che voi mi mandaste via mail i dettagli (ad esempio: OS blah version foo è stata trovata come OS blah version bar). Se trovate una macchina con almeno una porta aperta per cui nmap dice 'unknown operating system;', sarebbe utile che voi mi mandaste l'indirizzo IP insieme con il sistema operativo ed il numero di versione. Se potete spedirmi l'indirizzo IP, la cosa successiva migliore da fare è di far girare nmap con l'opzione -d e spedirmi i tre fingerprints che devono risultare con il nome del sistema operativo ed il numero di versione. Facendo questo contribuirete al database dei sistemi operativi conosciuti da nmap e questo sarà più accurato per tutti.

-I Questo accende il TCP reverse ident scanning. Come annotato da Dave Goldsmith in un post del 1996 di bugtraq, il protocollo ident (rfc 1413) permette la scoperta dello username 'owner' di ogni processo connesso via TCP, anche se questo processo non inizia la connessione. Quindi potete, per esempio, connettervi alla porta http e poi usare identd per trovare se il server gira come root. Questo può essere fatto solo con una connessione TCP 'full' alla porta del bersaglio (per esempio con l'opzione di scan -sT). Quando -I viene usato, l'identd dell'host remoto viene interrogato per ogni porta aperta trovata. Ovviamente questo non funzionerà se l'host non sta facendo girare un identd.

-f Questa opzione fa si che lo scan SYN, FIN, XMAS o NULL usino pacchetti IP frammentati. L'idea è di dividere l'header del pacchetto TCP in più pacchetti piccoli per rendere più difficile scoprire cosa state facendo ai vari sistemi di scoperta di intrusione, e loggers vari. Siate prudenti con questo! Molti programmi hanno problemi a gestire questi piccoli pacchetti. Il mio sniffer preferito è saltato immediatamente appena ha ricevuto il primo frammento di 36 bytes. E dopo ne arriva uno da 24! Mentre questo metodo non viene accettato dai filtri di pacchetti e dai firewall che mettono in coda tutti i frammenti IP (come l'opzione CONFIG_IP_ALWAYS_DEFRAG del kernel di Linux), molte reti non possono affrontare la performance di contatti che questo genera e lo lasciano disabilitato.
Questa opzione non funziona ancora in tutti i sistemi... funziona bene con Linux, FreeBSD e OpenBSD e altre persone hanno riportato successi su altre varianti *NIX.

-v Verbose mode. Quest'opzione è altamente consigliata e dà maggiori informazioni su quello che sta succedendo. Potete usarla due volte (-vv) per un effetto migliore. Usate -d un po' di volte se volete diventare matti scorrendo lo schermo!

-h Questa comoda opzione mostra un rapido schermo di referenza sulle opzioni d'uso di nmap. Come potreste aver capito, questa man page non è esattamente una 'quick reference' :)

-o <logfilename>
Questo logga i risultati dei vostri scan in una forma 'human readable' in un file che potete specificare come argomento.

-m <logfilename> Questo logga i risultati dei vostri scan in un formato 'machine parseable in un file specificato come argomento. Potete dare -m l'argomento '-' (senza le virgolette) per indirizzare l'output sullo stout (per shell, pipelines, etc). In questo caso l'output normale viene soppresso. Guardate per messaggi di errore se usate quest'opzione (saranno diretti allo stderr).

-i <inputfilename> Legge le specificazione dei bersagli dal file specificato PIUTTOSTO che dalla linea di comando. Il file deve contenere una lista di host o espressioni di network separate da spazi, tabs o newline. Usate un '-' come inputfilename se volete che nmap legga gli host dallo stdin (come alla fine di un pipe). Guardate la sezione specificazione dei bersagli per maggiori informazioni sulle espressioni con cui riempire il file.

-p <range di porte> Quest'opzione specifica quali porte volete scannare. Per esempio '-p 23' proverà solo la porta 23 degli host bersaglio. '-p 60000-' le porte oltre 60000. Di default lo scan è tra le porta 1 e 1024 e tra quelle del file dei services che è fornito con nmap.

-F Scan veloce (fast scan) Specifica che volete cercare solo per le porte nel file di services fornito con nmap. Questo è ovviamente molto più veloce che scannare tutte e 65535 le porte di un host.

-D <decoy1 [,decoy2][,ME],...> Fa si che parta uno scan 'esca' che da sembrare all'host remoto di essere scannato dagli host che specifichiamo come 'esche'. I loro IDS potrebbero riportare 5-10 port scan da IP address unici, ma non possono sapere quale ip li sta scannando e quale sia un innocente esca. Mentre questo può essere reso inoffensivo tramite router path tracing, response-dropping e altri meccanismi "attivi", ma in generale è un buon modo per nascondere il vostro ip.
Separate ogni 'esca' con virgole e potete usare 'ME' come una delle 'esce' per rappresentare la posizione in cui volete che sia usato il vostro ip address. Se mettete 'ME' nella sesta posizione o dopo, molto scan detector comuni (come l'eccellente scanlogd di Solar Designer) non sono capaci di mostrare il vostro ip del tutto. Se non usate 'ME', nmap metterà il vostro in una posizione a caso.
Gli host che usate come 'esche' devono essere 'up' altrimenti farete un SYN flood sui vostri bersagli. Infatti è molto semplice trovare quale host è quello che sta scannando, se solo uno degli scanners è 'up' in quel momento. Potreste voler usare IP addresses al posto dei nomi (cosi' la rete delle 'esche' non vi avrà nei log del loro nameserver).
Ricordare che molti (stupidi) "port scan detectors" possono mettere deny nel firewall agli host che cercano di fare port scans. Quindi potete inavvertitamente fare si' che la macchina che state scannando di perdere la connessione con le macchine 'esche' che state usando. Questo può causare alla macchina bersaglio problemi pesanti se l'esca è il gateway o anche "localhost". Quindi bisogna usare una certa prudenza con quest'opzione. La vera morale della storia è che questi detector di spoofable port scans non dovrebbero prendere provvedimenti contro la macchina che sembra scannarli. Potrebbe solo essere un'esca!
Le esche sono usate sia nel ping scan iniziale (usando ICMP, SYN, ACK o qualsiasi altro) e durante la fase di port scan attuale. Le esche sono anche usate durante l'OS detection (-O).
Bisogna ricordare che usare molte esche può rendere il vostro scan più lento e potenzialmente renderlo meno accurato. Inoltre, molti ISP filtrano i pacchetti 'spoofati', anche se molti (ora come ora la maggior parte) non applicano restrizioni di questo tipo.

-S <IP_Address> In molte circostanze, nmap potrebbe non essere in grado di determinare il vostro IP (ve lo dirà il programma stesso). In questa situazione, usate -S col vostro IP address (e l'interfaccia attraverso cui volete far passare i pacchetti).
Un altro possibile uso di questa opzione è quello di spoofare lo scan per far pensare al bersaglio che qualcun altro li sta scannando. Immaginate una compagnia scannata ripetutamente da una ditta concorrente! Questo non è un uso supportato (e nemmeno l'utilizzazione principale) di quest'opzione. Penso solo che propone un'interessante possibilità che le persone dovrebbero sapere prima di mettersi ad accusare qualcuno che li sta scannando. -e generalmente è richiesta per l'uso.

-e <interface> Dice a nmap quale interfaccia usare per spedire e ricevere pacchetti. Nmap di solito è capace di trovarlo da solo, ma vi avvertirà se non è in grado di farlo.

-g <portnumber> Setta la porta sorgente da usare negli scan. Molte installazioni 'ingenue' di firewalls e filtri di pacchetti fanno un'eccezione per permettere ai pacchetti DNS (53) o FTP-DATA (20) di entrare e stabilire una connessione. Ovviamente questo cambia totalmente i vantaggi di sicurezza di un firewall visto che gli intrusi possono mascherarsi come FTP o DNS modificando la loro porta di source. Ovviamente per uno scan UDP dovete prima provare la 53 e per lo scan TCO dovete provare la 20 prima della 53. Notate che questa è solo una richiesta -- nmap la eseguirà solo quando e se potrà farlo. Per esempio non potete fare un TCP ISN da un host:porta ad un host:porta, quindi nmap cambia la porta sorgente anche se avete usato -g.
C'è una piccola penalità di performance in molti scan usando quest'opzione perchè io salvo spesso parecchie informazioni utili sulla porta sorgente.

-M <max sockets> Setta il numero massimo di sockets che saranno usati in uno scan parallel TCP connect() (il default). È utile per mandare un po' più lento lo scan per evitare che le macchine remote vadano in crash. Un altro approccio è quello di usare -sS che generalmente è più facile da gestiro per le macchine.


OPZIONI DI TIMING

Generalmente Nmao fa un buon lavoro aggiustando i parametri per le caratteristiche della rete mentre gira e scanna il più velocemente possibile minimizzando le possibilità che host o porte rimangano scoperti. Tuttavia ci sono molti casi in cui il timing di default di Nmap potrebbe non essere compatibile coi vostri obbiettivi. Le opzioni seguenti forniscono un livello di controllo avanzato sul timing dello scan:

-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> Queste sono le regole di timing per esprimere le vostre priorità a Nmap. Il modo Paranoid scanna veramente piano cercando di non essere scoperto da sistemi IDS. Mette in serie tutti gli scan (nessun parallel scanning) e generalmente aspetta 5 minuti tra un gruppo di pacchetti e l'altro. Sneaky è simile ma aspetta 15 secondi tra i gruppi di pacchetti. Polite è fatto per caricare leggermente la rete e ridurre le possibilità di crashare le macchine. Mette le ricerche in serie ed aspetta almeno 0.4 secondi tra i pacchetti. Normal è l'impostazione di default di Nmap che cerca di andare il più veloce possibile senza sovraccaricare la rete o mancare host o porte. Il modo Aggressive aggiunge un timeout di 5 minuti per ogni host e non aspetta mai più di 1.25 secondi per risposte allo scan. Insane è usabile solo per reti molto veloci o dove pensate di non perdere molte informazioni. Mette in timeout dopo 75 secondi gli host e aspetta solo 0.3 secondi per le ricerche. Permette una veloce spazzata della rete :). Potete anche usare i numeri (0-5). Per esempio, '-T 0' è il modo Paranoid e '-T 5' è Insane.
Questi comandi non devono essere usati con i controlli a basso livello dati qui sotto.

--host_timeout <millisecondi> Specifica l'ammontare di tempo che Nmap può utilizzare per scannare un singolo host prima di lasciar perdere quell'IP. Il modo di timing di default non ha timeout.

--max_rtt_timeout <millisecondi> Specifica il tempo massimo che Nmap può utilizzare per aspettare una risposta prima di ritrasmettere o mandare in timeout la richiesta. Di default è circa 9000.

--initial_rtt_timeout <millisecondi> Specifica il timeout iniziale del prove. Questo è generalmente utile solo quando si scannano host con firewall con -P0. Normalmente Nmap non può ottenere una buona stima dell' RTT dal ping iniziale e dalle prime richieste. Il default è 6000.

--max_parallelism <numero> Specifica il numero massimo di scan che Nmap può portare avanti in parallelo. Settando questo a uno Nmap non scannerà mai più di una porta alla volta. Questo influisce anche sugli altri scan paralleli come ping sweep, RPC scan ecc. ecc.

--scan_delay <millisecondi> Specifica l'ammontare minimo di tempo che Nmap deve aspettare tra le richieste. È generalmente utile per ridurre l'affaticamento della rete o per rendere lo scan più lento per non farsi scoprire da sistemi IDS.


SPECIFICAZIONE DEI BERSAGLI


Tutto ciò che non è un'opzione (o un argomento di un'opzione) in nmap viene trattato come specificazione dell'host bersaglio. Il caso più semplice è di mettere il lista singoli hostname o IP addresses sulla linea di comando. Se volete scannare una subnet di IP addresses, potete aggiungere '/mask' all'hostname o IP address. Mask deve essere tra 0 (scanna l'intera Internet) e 32 (scanna solo l'host specificato). Usate /24 per scannare una classe 'C' e /16 per una classe 'B'.
Nmap ha anche una notazione più potente che vi permette di specificare un IP usando liste o range per ogni elemento. Quindi potete scannare l'intera classe 'B' con 128.210.*.* specificando '128.210.*.*' oppure '128.210.0-255.0-255' o ancora '128.210.1-50,51-255.1,2,3,4,5-255'. E ovviamente potete usare la 'mask' equivalente: '128.219.0.0/16'. Queste sono tutte equivalenti. Se usate asterischi ('*'), ricordatevi che molte shell richiedono di scriverli con un backslash davanti o di proteggerli con virgolette.
Un'altra cosa interessante da fare è di 'sezionare' Internet in un altro modo. Invece di scannare tutti gli host in una classe 'B', scannate '*.*.5.6-7' per scannare tutti gli ip address che finiscono in .5.6 o .5.7 . Scegliete i vostri numeri come volete. Per maggiori informazioni su come specificare gli host da scannare, vedete la sezione degli esempi.


ESEMPI


Ecco qua alcuni esempi su come usare nmap, da uno semplice e normale ad uno un po' più complesso ed esoterico. L'attuale numero e molti nomi di dominio sono usati per fare cose più concrete. Al loro posto potete sostituire nomi e indirizzi del vostro stesso network. Non penso che fare un portscan di un'altra rete sia illegale; e nemmeno gli scan possono essere considerati come un attacco dagli altri. Ho scannato centinaia di migliaia di macchina ed ho ricevuto un solo reclamo. Ma non sono un uomo di legge e molte persone [anal] possono essere annoiate dalle ricerche di nmap. Chiedete il permesso o usatelo a vostro stesso rischio.


nmap -v target.example.com

Quest'opzione scanna tutte le porte TCP riservate sulla macchina target.example.com . Il -v setta come acceso il modo verbose.


nmap -sS -O target.example.com/24

Lancia uno scan stealt SYN contro ogni macchina 'up' delle 255 macchine nella classe 'C' dove target.example.com risiede. Cerca anche di determinare quale sistema operativo sta girando su ognuna delle macchine che sono 'up'. Questo richiede privilegi di root per lo scan SYN e l'OS detection.


nmap -sX -p 22,53,110,143,4564 128.210.*.1-127

Fa partire uno scan Xmas tree sulla prima metà delle 255 possibili subnet degli 8 bit nella classe 'B' 128.210 . Stiamo testando quali sistemi stanno facendo girare sshd, DNS, pop3d, imapd, o la porta 4564. Lo scan Xmas non funziona sulle box Microsoft per il loro stack TCP scassato. La stessa cosa per box CISCO, IRIX, HP/UX e BSDI.


nmap -v -p 80 '*.*.2.3-5'

Piuttosto che focalizzare l'attenzione su un'ip range specifico, è spesso interessante 'sezionare' l'intera Internet e scannare una parte di ogni 'sezione'. Questo comando trova tutti i server web su macchine con IP address che finiscono in .2.3 , .2.4 o .2.5 . Se siete root potreste anche voler aggiungere un -sS. Potete trovare molte più macchine interessanti partendo da 127. quindi potreste voler usare '127-222' al posto del primo asterisco perchè questa 'sezione' ha una grande densità di macchine interessanti (IMHO).


host -l company.com | cut '-d' -f 4 | ./nmap -v -i -

Fa un DNS zone transfer per trovare gli host in company.com e poi passa gli IP addresses a nmap. I comandi sopra sono per il mio box GNU/Linux. Potreste aver bisogno di differenti comandi/opzioni su altri sistemi operativi.


BUGS

Bugs? Quali bugs? Speditemi qualsiasi cosa trovate. Le patch sono anche più ben accette :) Ricordate anche di spedire nuovi OS fingerprints in modo da poter accrescere il database. Nmap vi darà un url per spedirle quando un fingerprint adatto è trovato.


AUTORE

Fyodor <fyodor@dhp.com>


DISTRIBUZIONE

La versione più recente di nmap può essere ottenuta da http://www.insecure.org/nmap/ .

nmap è (C) 1997,1998,1999 by Fyodor (fyodor@dhp.com, fyodor@insecure.org)

libcap sono distribuite anche insieme a nmap. Sono copyrighted da Van Jacobson, Craig Leres and Steven McCanne, tutti di Lawrence Berkeley National Laboratory, University of California, Berkeley, CA. La versione distribuita con nmap può essere modificata, i sorgenti originali sono disponibili su ftp://ftp.ee.lbl.gov/libpcap.tar.Z .

Questo programma è free software; potete distribuirlo e/o modificarlo sottostando ai termini della GNU General Public License come pubblicato dalla Free Software Foundation; Versione 2. Questa garantisce il vostro diritto di usare, modificare, ridistribuire Nmap sottostando a certe condizioni. Se questa licensa non è accettabile per voi, Insecure.org potrebbe volere rilasciare license alternative (contattare fyodor@dhp.com).

Questo programma è distribuito nella speranza che sia utile, ma SENZA NESSUNA GARANZIA; senza neanche la garanzia di MERCHANTABILITY o FITNESS FOR A PARTICULAR PURPOSE. Vedere la GNU General Public License per maggiori dettagli (è nel file COPYING della distribuzione di nmap).

Bisogna anche ricordare che Nmap è stato riconosciuto come causa di crash di alcune applicazioni scritte male, stacks TCP/IP e anche sistemi operativi. Nmap non deve essere mai usato contro sistemi 'mission critical' se non siete preparati a soffrire il downtime. Siamo a conoscenza che Nmap può far crashare i vostri sistemi o le vostre reti e decliniamo qualsiasi responsabilità per ogni danno o problema che Nmap può causare.

Tutte le versioni di Nmap uguali o superiori alla 2.0 sono riconosciute (tramite test informale) come Y2K compliant, sotto tutti gli aspetti. Detto questo, ripetiamo che Nmap non ha garanzia. Non c'è ragione per credere che versioni precedenti alla 2.0 siano suscettibili di problemi, ma non le abbiamo testate.



| Nome | Sintassi | Descrizione | Opzioni | Specificazione dei bersagli | Esempi | Bugs | Autore | Distribuzione |