Banner Shishii
Pagina aggiornata il:  31/01/2006 12:03

Pagina Stampabile     Pagina Stampabile

Precedente - Indice - Successiva


7 Opzioni

I seguenti flag costituiscono delle opzioni che possono essere molto importanti nell'uso di Nmap.

Tempo
Alcune opzioni richiedono l'indicazione di una quantità di tempo, che di default viene espresso in millisecondi, dalla versione 3.99 Nmap consente anche l'uso di un flag per esprimere il tempo in secondi (s), minuti (m), ore (h). Ad esempio se vogliamo settare il time out per l'analisi di un host a 45 minuti prima potevamo solo scrivere:
--host_timeout 2700000
ora possiamo indicare:
--host_timeout 45m
-P0
Tramite questo flag diciamo a Nmap di non pingare l'host bersaglio, ciò è utile quando siamo sicuri che è in linea poichè ci fa risparmiare tempo, ed è necessario quando vogliamo mantenerci nascosti per usare un tipo di scan anonimo.
-PT
Qui possiamo richiedere che il bersaglio venga pingato, invece che con pacchetti ICMP echo-request, tramite pacchetti TCP con flag ACK attivo. Ciò consente di superare i firewall che respingono i primi. Se non si indica alcuna porta il ping avviene sulla 80 (http) che in genere è quella più frequentemente aperta. Sintassi:
> nmap -PT<numero porta - opzionale>
-PS
Con questo flag facciamo il ping tramite pacchetti TCP con flag SYN attivo, il bersagli se non è filtrato da un firewall risponde o con un SYN|ACK (porta aperta) o con un RST (porta chiusa). Sintassi:
> nmap -PS<numero porta - opzionale>
-PR
Con questo flag effettuiamo uno scan tramite il protocollo ARP, che funziona a livello ethernet, quindi consente di superare la maggior parte dei firewall che funzionano a livello IP superiore.
-PE
Con questo flag effettuiamo uno scan con pacchetti icmp ping echo request, che trovano gli host attivi e raggiungibili. Inoltre individua gli indirizzi subnet-directed broadcast, possibile obiettivo di attacchi DoS di tipo 'Smurf'.
-PU
Facciamo il ping tramite pacchetti UDP. L'host bersaglio dovrebbe rispondere con un altro pacchetto UDP o con un pacchetto ICMP-port-unreachable se è aperta, non rispondere in caso di porta chiusa, ma non è una tecnica molto affidabile a causa di differenze di reazione tra vari sistemi operativi o della presenza di firewall.
-PI
In questo modo si usano i canonici pacchetti ICMP-echo-request per fare il ping, ed è un ottimo sistema per scoprire gli host esistenti in una rete.
-PP
Vengono usati pacchetti ICMP-timestamp-request per fare il ping.
-PM
Vengono usati pacchetti ICMP-netmask-request per fare il ping.
-PB
Questa opzione è disponibile solo da linea di comando e, in pratica è l'opzione di default per i ping che somma le opzioni -PT e -PI.
-O
Tramite questa opzione è possibile cercare di identificare il sistema operativo dell'host bersaglio. Nmap rileva le caratteristiche sottili di basso livello dello stack TCP/IP, ricavando un'impronta che viene confrontata con quelle presenti in un database contenuto nel file nmap-os-finger-prints. Questa opzione fornisce anche le seguenti informazioni: tempo di uptime; livello di prevedibilità dell'ISN (vedi appendice 8.1); tipo di incremento dell'ISN (vedi appendice 8.2 e 8.3). Per avere queste info è necessaria anche l'opzione -v (verbose). Sintassi:
> nmap -sS -O -v <host bersaglio>
-A
Questa opzione è disponibile solo da linea di comando e non è molto utile in quanto serve solo ad abilitare altre opzioni, attualmente abilita -O e -sV.
-6
E' necessaria se si deve utlizzare Nmap contro un host che usa il protocollo IPv6 (IP versione 6, l'attuale è IPv4). Ovviamente in questo caso l'hot andrà indicato tramite un nome di dominio, se esistente, o tramite l'IP di tipo 6, ad esempio 3ffe::4819:2000:210:f3ff:fe03:4d0.
-I
Questa opzione è compatibile solo con il tipo di scan ``Connect'' -sT, e consente di identificare il proprietario (owner) dei processi in ascolto sulle varie porte, ma funziona solo se l'host bersaglio ha il servizio ``identd'' attivato.
--send_eth
Come noto Windows XP con il SP2 ha eliminato, a livello di sistema, la possibilità di manipolare pacchetti raw ethernet (basso livello, molto efficiente), a loro dire allo scopo di impedire un uso illecito dei sistemi Windows da parte di hackers e simili. In realt&agreve; hanno solo reso la vita più difficile agli amministratori di rete che ora si trovano con meno strumenti degli attaccanti. Per bypassare questa insensata limitazione i programmatori di Nmap con la versione 3.55 introdussero l'uso sui sistemi Windows dei pacchetti raw IP, di livello più alto e meno efficienti.
Tramite questa opzione è possibile forzare l'uso di pacchetti raw ethernet.
--send_ip
Tramite questa opzione è possibile forzare l'uso di pacchetti raw IP. I motivi della necessità di questa opzione sono esposti sopra.
--spoof_mac
Tramite questa opzione è possibile alterare l'indirizzo MAC sorgente. Ciò è utile, per non farsi individuare, quando si sta effettuando uno scan con protocollo ARP, come descritto in merito all'opzione -PR.
E' possibile indicare le seguenti modalità di generazione dell'indirizzo MAC falso:
  • '0': Settando 0 si causa la generazione random dell'intero indirizzo.
  • '01:02:03:04:05:06': settando un indirizzo completo verrà usato questo.
  • '0020F2': settando un indirizzo incompleto la parte restatnte verrà generata in modo casuale.
  • 'OUI': prefisso letterale identificativo di un produttore. Verrà generato un numero appartenente al range ad esso assegnato.
  • 'Nome del produttore': vedi sopra.
-f
Se si setta questa opzione i scan di tipo SYN -sS, FIN -sF, XMAS -sX, o NULL -sN vengono effettuati con frammenti di pacchetti, cioè con header non completi, questo molte volte confonde e rende inefficaci firewall e IDS, ma... ATTENZIONE... in alcuni casi può provocare il crash dell'applicazione in ascolto o del sistema. Questo metodo è inefficace se si ha difronte un sistema attrezzato per individuare e trattare i pacchetti frammentati, tipo Linux con il kernel compilato con l'opzione ``CONFIG_IP_ALWAYS_DEFRAG'', che però rallenta le prestazioni.
E'possibile variare la dimenzione dei frammenti. Di default il frammento è di 8 bytes, se si specifica -ff diventa di 16. Se si vuole andare oltre bisogna sostituire -f con --mtu che DEVE essere un multiplo di 8.
--mtu
Questa opzione è disponibile solo da linea di comando e serve a settare la grandezza in bytes dei frammenti dei pacchetti. Vedi opzione -f.
-v
Si tratta del ``verbose mode'', che consente di avere più informazioni del normale.
-vv
Come sopra, ma con maggiore quantità di informazioni.
-d e -dd
Modalità di debug, da usare solo se si hanno problemi e si sta cercando di risolverli.
-oN
Consente di indicare un file in cui salvare l'output in forma ``human readable'', cioè così come lo vedremmo sulla console. Sintassi:
> nmap -sS -v -oN </path/file.txt> <host bersaglio>
-oX
In questo caso l'output viene salvato nel file indicato in formato XML, ciò ne consente una grandissima esportabilità e lavorabilità, anche allo scopo di inserire i dati in un eventuale database. E' disponibile anche la DTD di validazione all'URL nmap.dtd. Inoltre è possibile avere immediatamente la possibiltà di visionare i report in un browser, con una formattazione veramente eccellente, usando file XSL, come spiegato in appendice 8.4. Sintassi:
> nmap -sS -v -oX </path/file.xml> <host bersaglio>
--stylesheet
Questa opzione lavora insieme a -oX, e serve ad indicare un file XSL, per la formattazione del file di output XML in XHTML, alternativo a quello di default. Può essere utile indicare, ad esempio:
> nmap -sS -v -oX </path/file.xml> 
--stylesheet http://www.insecure.org/nmap/data/nmap.xsl 
<host bersaglio>
in modo da utilizzare per la formattazione la versione più aggiornata del file XSL, ed inoltre in questo modo il file di output XML sarà visibile anche su computer su cui non è istallato Nmap.
--webxml
Questa opzione lavora insieme a -oX, e corrisponde esattamente a:
--stylesheet http://www.insecure.org/nmap/data/nmap.xsl
in modo da utilizzare per la formattazione la versione più aggiornata del file XSL, senza dovere ricordare l'indirizzo.
--no-stylesheet
Questa opzione disabilita l'uso del file XSL per la formattazione in XHTML del file di output. Utile quando non si intende visualizzare in un browser il file di report, ma, ad esempio riporlo in un database.
-oG
Con questa opzione i report vengono salvati in formato cosidetto ``grepable'', cioè facilmente utilizzabile dal programma grep, che, in ambiente UNIX, serve per trovare i file che contengono certe stringhe. In pratica non fa altro che mettere tutto l'output su una sola riga. Sintassi:
> nmap -sS -v -oG </path/file> <host bersaglio>
-oA
Con questa opzione Nmap produce tre files di output aventi estensione rispettivamente .nmap, .gnmap, .xml che corrispondono a tre file ottenibili effettuando tre volte la stessa scansione con le opzioni -oN -oX -oG. Sintassi:
> nmap -sS -v -oA </path/file> <host bersaglio>
otterremo tre files: file.nmap, file.gnmap, file.xml contenti gli stessi dati, nelle tre forme sopra descritte.
-oS
Questa è un opzione da veri mattacchioni, infatti l'output viene inserito in un file avente forma ``script-kiddie''!!! Cioè di questo tipo:
thIs l0gz th3 r3suLtS of YouR ScanZ iN 
a s|<ipT kiDd|3 f0rM iNto
THe fiL3 U sPecfy 4s an arGuMEnT!  U 
kAn gIv3 the  4rgument  "-"
(wItHOUt qUOteZ) to sh00t output iNT0 stDouT!@!!
Evidentemente quel giorno l'autore di Nmap ``Fyodor'' si stava annoiando.
--resume
Questa opzione consente di proseguire uno scan iniziato ed interrotto, ma è utilizzabile solo se si è stava effettuando lo scan con l'opzione -oN o -oG. Sintassi:
> nmap -sS -v --resume </path/file> <host bersaglio>
--exclude
Questa opzione consente di escludere dallo scan uno o più host, inseriti in una lista separata da virgole. Sintassi:
> nmap -sS -v --exclude <host1,host2,ecc> <host bersaglio>
--excludefile
Come sopra ma la lista viene prelevata da un file. Sintassi:
> nmap -sS -v --excludefile </path/file> <host bersaglio>
--append_output
In questo modo non sovrascriveremo un file precedente, ma aggiungeremo i report alla fine. Sintassi:
> nmap -sS -v -resume </path/file> <host>
-iL
Questo consente di utilizzare un file che contiene una lista di host da controllare, i vari host devono essere separati o con uno spazio, una tabulazione o un ritorno a capo. Si possono usare le forme descritte nel paragrafo 5.1.2. Sintassi:
> nmap -sS -v -iL </path/file_di_Input> <host bersaglio>
-iR
Si chiede a Nmap di generare lui stesso gli indirizzi degli host da esaminare in maniera random. Si deve indicare il numero di indirizzi da generare, se si setta 0, allora Nmap continuerà all'infinito. Questa opzione può avere un senso, ad esempio, quando si sta cercando uno ``zombie'' per effettuare poi un IDLE SCAN. Sintassi:
> nmap -sS -v -iR <numero hosts>
-p
Tramite questa opzione si può indicare un intervallo di porte da analizzare. l'elenco deve essere separato da virgole. Forme ammesse:

  • [-p 23] solo la porta 23
  • [-p 10-250] dalla porta 10 alla 250
  • [-p 60000-] dalla porta 60000 fino alla fine
  • [-p 9,25-40] la porta 9 e dalla porta 25 alla 40
E' anche possibile diversificare tra porte TCP e UDP, basta precedere alla parte di lista interessata i ripettivi prefissi, ad esempio: T:80,139-141,U:1000-2500, che significa controlla le porte TCP 80 e dalla 139 alla 141 e le porte UDP dalla 1000 alla 2500.

-F
Impostando questa opzione vengono scansionate solo le porte indicate nel file nmap-services di Nmap, e quindi è una scansione più veloce.
-D
Questa è un'opzione fondamentale per cercare di mantenere l'anonimato quando non è possibile utilizzare le tecniche di scanning indiretto. Infatti in questo caso saremo costretti ad usare il nostro IP, altrimenti non riceveremmo le risposte, e se l'host bersaglio è amministrato bene ci sono delle probabilità che il firewall o l'IDS si accorgano dello scan. Per rendere la vita più difficile al difensore Nmap cercherà di mischiare le carte, cioè di inviare, oltre ai pacchetti con il nostro IP, altri con IP alterato ed appartenente ad altri sistemi, quasti ultimi vengono chiamati ``decoy'' ovvero falsi bersagli. Non si pensi che in questi casi sia molto semplice per un amministratore capire che c'è un vero attacco mirato in corso, infatti sulla rete non sono infrequenti delle ``tempeste'' di pacchetti, che possono essere dovuti a vari motivi, se oltre a ciò si limita al massimo il numero di porte scansionato diventa molto... molto difficile capire. Sintassi:
> nmap -sS -P0 -v -D 111.111.111.111,\
222.222.222.222,ME,333.333.333.333 <host bersaglio>

I vari IP ``decoy'' vanno separati con una virgola, e dove inserirete ME verrà inserito il vostro vero IP, se non usate ME Nmap lo inserirà in una posizione casuale. E' altamente consigliato usare IP decoy di host esistenti e attivi, per due motivi: sia peer evitare di effettuare un SYN Flood verso l'host bersaglio, sia perchè altrimenti diviene banale individuare l'IP quello vero.

La possibilità di uso di decoy è uno dei motivi per cui è sconsigliabile utilizzare software che in maniera automatica blocchi gli IP da cui giungoni presunti port scanning... potrebbe essere fatto apposta per isolare una macchina da qualche risorsa importante.

Si tenga però presente che alcuni I.S.P. (coloro che vi danno la connessione) rifiutano il transito a pacchetti il cui IP sorgente non è quello che è stato assegnato in fase di connessione.

-S
Alcune volte Nmap non è in grado di determinare il vero IP sorgente della macchina su cui opera, in tal caso ne da avviso e si dovrà usare questa opzione per indicarlo manualmente. Sintassi:
> nmap -sS -S <mio IP> <host bersaglio>
-e
Serve per indicare l'interfaccia di rete da utilizzate se Nmap non riesce ad individuarla da solo. I valori potrebbero essere: eth0, eth1, ppp0, sit0, ecc.. Sintassi:
> nmap -sS -e <mia interfaccia di rete> <host bersaglio>
--source_port
Serve ad indicare a Nmap quale porta sorgente utilizzare. E' utile quando l'host bersaglio è protetto da un firewall che è settato per accettare connessioni dall'esterno provenienti da porte tipiche di certi protocolli, ad esempio la 20 TCP per la connessione FTP-Data e la porta 53 UDP e TCP per una connessione DNS. Sintassi:
> nmap -sS -source_port 20 <host bersaglio>
--data_length
Nmap costruisce i pacchetti, inserendo solo gli header, con le dimensioni minime possibili che per il TCP è 40 bytes e ICMP echo 28 bytes. Con questa opzione si aumenta la dimensione del pacchetto facendo inserire dei caratteri random come payload, questo potrebbe aumentare le possibilità di passare inosservati ai firewall e agli IDS. Sintassi:
> nmap -sS -data_length 100 <host bersaglio>
-n
Dice a Nmap di non effettuare mai la risoluzione DNS inversa, cioè dall'IP al nome di dominio. Rende le operazioni più veloci.
-R
Dice a Nmap di effettuare sempre la risoluzione DNS inversa, cioè dall'IP al nome di dominio. Di default questa operazione viene effettuata solo per gli host attivi.
--dns_server
consente di indicare più server DNS allo scopo di fare effettuare le risoluzioni dei nomi o inverse in modo parallelo e non sequenziale. Si ha un notevole beneficio nei casi di analisi di molti host per i quali ci servono anche le query DNS. Sintassi:
> nmap -sS --dns_server serverDNS1,serverDNS2,serverDNS3 10.0.0.0/16
--system_dns
Di regola Nmap effettua le query DNS al server indicato dal sistema appena necessario senza attendere la risposta per la precedente, in modo da migliorare le performance. Se inevce viene settata questa opzione le query vengono fatte una per volta attendendo la risposta per proseguire. Questo comporta tempi di attesa maggiori, ma potrebbe diminuire le possibilità di essere individuati.
-r
Dice a Nmap di scansionare le porte in ordine numerico e non random. Rende le operazioni più veloci, ma ci rende più individuabili.
--ttl
Setta il ``tempo di vita'' (Time To Live) dei pacchetti da inviare. Quando un pacchetto viene inviato ha nel campo ``ttl'' un numero che indica quanti snodi al massimo può attraversare (hop), ad ogni snodo il numero viene decrementato di uno, l'host che decrementa il ttl a 0 lo distrugge ed invia un pacchetto ICMP all'IP sorgente. Questa caratteristica, peraltro irrinunciabile, si può sfruttare per effettuare degli scan all'interno di reti protette. Ad ogni modo in questo settore il tool più avanzato non è Nmap, ma ``hping2'' dell'Italiano Salvatore Sanfilippo aka Antirez. Sintassi:
> nmap -sS -ttl <numero di hop> <host bersaglio>
--randomize_hosts
consente di effettuare la scansione di un segmento di rete scegliendo l'ordine degli host in modo casuale, questo diminuisce la possibilità di essere notati, ma rallenta le operazioni.
-M
Setta il numero massimo di socket con cui opera Nmap nelle scansioni CONNECT -sT, cioè in pratica limita il numero di scansioni contemporanee, per evitare di mandare in down l'host bersaglio. Sintassi:
> nmap -sT -M 10 <host bersaglio>
--packet_trace
Questa opzione aggiunge all'output i dati relativi ad ogni pacchetto inviato. Si tratta di un opzione semisconosciuta, e non disponibile nell'interfaccia grafica, che è di un'utilità straordinaria sia per affinare la scansione, sia per capire i meccanismi di rete. L'output ha il formato, ormai divenuto quasi uno standard, ``tcpdump''. Vedasi appendice 8.5.
--datadir
Serve solo per indicare a Nmap la directory in cui sono i suoi files di database, nmap-services, nmap-protocols, ecc., nel caso in cui non siano in quella di default /usr/share/nmap.
-T
Tramite questa opzione si settano una serie di parametri temporali che influscono moltissimo sulla velocità di esecuzione, l'occupazione di banda di rete e la segretezza dello scan. Nmap ha la capacità di autoregolarsi in base alle caratteristiche della rete e alle risposte degli host, ma a volte si hanno esigenze particolari su cui si può intervenire come segue.
-T0 o -T Paranoid
E' la modalità più prudente, che ha ottime possibilità di sfuggire agli IDS e simili. Effettua lo scan in maniera seriale e non parallela, cioè analizza gli host e le porte uno dopo l'altro e non contemporaneamente. Inoltre interpone almeno 5 minuti tra un pacchetto ed un altro.
-T1 o -T Sneaky
Come sopra tranne che interpone 15 secondi tra un pacchetto ed un altro.
-T2 o -T Polite
Come sopra tranne che interpone 0,4 secondi tra un pacchetto ed un altro.
-T3 o -T Normal
Come dice il nome è la modalità di default. Effettua lo scan parallelo e alla velocità resa possibile dalle caratteristiche della rete, rallentando se avverte che si possono creare sovraccarichi o perdite di dati.
-T4 o -T Aggressive
Questa opzione spinge lo scan ad alta velocità, per cui è raccomandabile usarla solo se si dispone di una connessione veloce.
-T5 o -T Insane
Spinge tutto alla massima velocità. E' necessaria una connessione veloce. C'è il rischio di mandare in crash l'host bersaglio. E' possibile una perdita di informazioni a causa dei timeout molto brevi.
--host_timeout
Consente di settare un timeout entro cui lo scan degli host deve essere terminato. Di default Nmap non pone un tempo massimo. Sintassi:
> nmap -sS --host_timeout <tempo> <host bersaglio>
--max_rtt_timeout --min_rtt_timeout
Tempo massimo e minimo di attesa per la ripetizione o il timeout di un singolo probe. Sintassi:
> nmap -sS --max_rtt_timeout <tempo> \\
--min_rtt_timeout <tempo> <host bersaglio>
--initial_rtt_timeout
Tempo iniziale di attesa per il timeout di un singolo probe. E' utile solo se si è settato -P0, cioè non si è effettuato il ping dell'host bersaglio. Sintassi:
> nmap -sS --initial_rtt_timeout <tempo> <host bersaglio>
--max_hostgroup --min_hostgroup
Numero massimo e minimo degli host da scansionare in parallelo. Sintassi:
> nmap -sS --min_hostgroup <numero> \
--max_hostgroup <numero> \ <host bersaglio>
--max_parallelism --min_parallelism
Setta il numero massimo e minimo, verso un host, di scan paralleli che vengono effettuati, più se ne rendono possibili, più veloce saranno le operazioni, più forte l'occupazione di banda, più alte le probabilità di essere individuati. Se si setta -max_parallelism 1 di fatto si ottiene uno scan seriale. Sintassi:
> nmap -sS --min_parallelism <numero> \
--max_parallelism <numero> \ <host bersaglio>
--scan_delay
Setta il tempo minimo tra un un probe e il successivo. E' compatibile solo con lo scan seriale. Più alto è questo parametro, più lente saranno le operazioni, più bassa l'occupazione di banda, più basse le probabilità di essere scoperti. Sintassi:
> nmap -sS --scan_delay <tempo> <host bersaglio>
--max_scan_delay
Setta il ritardo massimo ammesso tra un pacchetto e l'altro, ciò allo scopo di accellerare le operazioni nei casi in cui non si teme di saturare la banda e di essere scoperti. Sintassi:
> nmap -sS --max_scan_delay <tempo> <host bersaglio>
--max-retries
Consente di settare il numero di uleriori tentativi di connessione ad una porta da effettuare prima di dichiararla "filtrata". Settando 0 verrà effettuato solo il primo tentativo. Con più tentativi si ha una migliore accuratezza di analisi, cone meno maggiore velocità. Sintassi:
> nmap -sS --max-retries  10.0.0.100
--badsum
Invia pacchetti con il numero di verifica dell'integrità (checksum) alterato. Questo è utile per scoprire se tra noi e l'host bersaglio vi è un firewall o un IDS, infatti questi hanno la caratteristica di rispondere a questi pacchetti poichè di default non verificano il checksum, mentre i sistemi normali lo fanno sempre e li scartano senza rispondere.
--iflist
Stampa la lista delle interfacce di rete del sistema su cui è in uso Nmap e la tabella di routing. Questa opzione deve essere usata da sola e fornisce un output diverso dal solito. Sintassi:
> nmap --iflist
Output:
Starting Nmap 4.03 at 2006-04-29 18:36 CEST
************************INTERFACES****************
DEV  (SHORT) IP/MASK     TYPE     UP MAC
lo   (lo)    127.0.0.1/8 loopback up
eth0 (eth0)  10.0.0.7/24 ethernet up 00:04:76:9B:89:21

**************************ROUTES*******************
DST/MASK      DEV  GATEWAY
10.0.0.0/0    eth0
169.254.0.0/0 eth0
127.0.0.0/0   lo
0.0.0.0/0     eth0 10.0.0.2
--log-errors
Produce la stampa di tutti gli avvisi di errore e di warning, a video se non è specificato nulla, altrimenti all'interno di un normale file di testo. Sintassi:
> nmap -sS --log-errors  10.0.0.100

Precedente - Indice - Successiva


Indice del sito