Home page logo
/
Intro Reference Guide Book Install Guide
Download Changelog Zenmap GUI Docs
Bug Reports OS Detection Propaganda Related Projects
In the Movies In the News

Nmap Network Scanning

Output

Qualunque tool di sicurezza 蠵tile quanto l'output che esso stesso genera. Test e algoritmi complessi son di scarsa importanza se non son presentati in modo comprensibile e ben organizzato. Dato il grande numero di modi in cui Nmap viene usato dagli utenti e da altro software, nessun formato potrebbe soddisfare tutti. Per questo motivi Nmap offre molti formati, inclusa la modalita` interattiva per la lettura diretta degli utenti, sia XML per rendere l'output facilmente interpretabile dal software.

Inoltre per offrire differenti formati di output, Nmap fornisce opzioni per il controllo della verbosita` dell'output come anche dei messaggi di debugging. I tipi di output possono essere mandati allo standard output o a files, ai quali Nmap puo accodare o sovrascrivere contenuto. I files di output possono anche essere usati per ripristinare scansioni precedentemente annullate.

Nmap rende l'output disponibile in cinque formati differenti. Il formato predefinito 蠣hiamato interactive output, ed 蠭andato in standard output (stdout). C'蠡nche un normal output, che 蠳imile all' interactive ad eccezione per il fatto che mostra meno informazioni di runtime e warnings dal momento che si suppone che dovra` essere analizzato dopo il completamento della scansione, piuttosto che interattivamente.

L' output XML 蠵no dei piu` importanti tipi di output, dal momento che puo` essere convertito in HTML, interpretato con facilita` dai programmi come per esempio le interfacce grafiche di Nmap, o importata in databases.

I rimanenti due tipi di output sono il semplice grepable output che include la maggior parte delle informazioni su un obiettivo in una linea singola, e il sCRiPt KiDDi3 0utPUt per utenti che si considerano |<-r4d.

Mentre l'output interattivo 蠱uello predefinito e non ha associate opzioni da linea di comando, gli altri quattro formati usano la stessa sintassi. Prendono un argomento , che 蠩l nome del file nel quale i risultati dovranno essere scritti. Possono essere specificati formati multipli, ma ogni formato puo solo essere specificato una volta. Per esempio si potrebbe voler salvare il normal output per le proprie revisioni e nel mentre salvare in XML per l'analisi programmatica. Cio` si potrebbe realizzare con le opzioni: -oX myscan.xml -oN myscan.nmap. Mentre questo capitolo usa per brevita` dei nomi semplici come myscan.xml , son generalmente consigliati nomi piu` descrittivi. I nomi scelti sono un problema di preferenza personale, anche se io ne uso di lunghi che incorporano la data della scansione e un paio di parole che descrivano la scansione., messe in una directory chiamata come l'azienda che sto scansionando.

Mentre queste opzioni salvano i risultati su files, Nmap stampa ancora l'output interattivo in standard output come sempre. Per esempio, il comando nmap -oX myscan.xml target stampa XML dentro myscan.xml e scrive in standard output gli stessi risualtati interattivi che avrebbe stampato se -oX non fosse stata specificata. Si puo cambiare questo comportamento passando un carattere trattino come argomento di un tipo di formato. Questo fa si che Nmap disattivi l'output interattivo, e stampi il risultato nel formato che si 蠳pecificato nello stream dello standard otput. Cosi` il comando nmap -oX - target mandera` in stdout soltanto l'output XML. Possono ancora comparire degli avvisi di errore grave sullo stream di standard error stderr.

A differenza di alcuni argomenti di Nmap, lo spazio tra il file di log e l'opzione di log (ad esempio -oX) e il nome del file o il trattino, 蠯bbligatorio. Se si omettono le opzioni e si danno argomenti come -oG- o -oXscan.xml, una feature di retrocompatibilita` causera` la creazione di file di output in normal format chiamati G- e Xscan.xml rispettivamente.

Nmap offre inoltre l'opzione di controllo sullla verbosita` e la possibilita` di accodare ai files invece di sovrascriverli. Tutte queste opzioni sono descritte di seguito.

I Formati di Output di Nmap

-oN <filespec> (Normal output)

Richiede che il t normal output venga rediretto al dato file. Come detto sopra, questo 蠬eggermente diverso da interactive output.

-oX <filespec> (XML output)

Richiede che l'output XML sia rediretto al dato file.Nmap contiene un document type definition (DTD) che permette agli interpreti XML di validare l'output di Nmap. Sebbene inteso come prioritariamente per l'uso programmatico, puo essere d'aiuto anche agli utenti. Il DTD definisce gli elementi convenzionali del formato, e spesso enumera gli attributi e i valori che possono assumere.

XML offre un formato stabile e facilmente interpretato dal software. Gli interpreti XML liberi (free) sono disponibili per la maggior parte dei linguaggi di programmazione, compresi C/C++, Perl, Python, e Java. C'e anche chi ha scritto dei bindings per gran parte di questi linguaggi per trattare in maniera specifica l'output e l'esecuzione di Nmap. Ne sono esempio: Nmap::Scanner e Nmap::Parser nel Perl CPAN. In quasi tutti i casi il modo preferito per interpretare i risultati di Nmap 蠳tato XML.

L'output XML fa riferimento ad uno stylesheet XSL che puo essere usato per formattare il risultato in HTML. La maniera piu` facile di usarlo 蠳emplicemente aprire il file XML in un web browser come Firefox o IE. Di norma questa procedura dovrebbe funzionare solo sulla macchina su cui si esegue Nmap (o una configurata in maniera simile) perche` il percorso a nmap.xsl 蠱uello hardcoded in Nmap. Si veda l'opzione --stylesheet per creare un file XML portabile che renderizza come HTML in ogni macchina connessa al web.

-oS <filespec> (ScRipT KIdd|3 oUTpuT)

Lo script kiddie output 蠣ome l' interactive output, ad eccezione del post-processing che meglio adatta l'output al 'l33t HaXXorZ che prima guardavano dall'alto in basso Nmap per la sua troppo corretta ortografia e per l'uso proprio delle maiuscole.Per le persone poco inclini all'humor, si noti che questa opzione prende in giro gli script kiddies che prima mi criticavano perche` "li aiutassi".

-oG <filespec> (Grepable output)

Questo formato di output 蠤escritto per ultimo perche` il suo uso 蠯rmai da considerarsi in disuso. L'outpt XML 蠤i gran lung apiu` potente, e pressoche` ugualmente utile per gli utenti esperti. XML 蠵no standard per le dozzine di eccellenti parsers che sono disponibili, mentre il grepable output 蠵n mio semplice hack. XML 蠥stensibile al supporto di nuove features di Nmap man mano che queste vengono rilasciate, mentre spesso ometto queste nuove features per il formato grepable per mancanza di spazio dove aggiungerle.

Ad ogni modo, il grepable output 蠡ncora discretamente usato. E' un formato semplice che lista ogni host su una riga e puo` essere facilmente cercato e interpretato dai tool standard di UNIX, come grep, awk, cut, sed, diff e Perl. Anche io lo uso per test semplici da riga di comando. Trovare tutti gli host che hanno la porta di ssh aperta o che montano Solaris, 蠱uestione di un semplice grep per identificare gli host e un pipe verso awk o cut per visualizzare i campi desiderati.

Il grepable output contiene commenti (le righe che iniziano con il cancelletto (#)) e righe target. Una riga target include una combinazione di 6 campi etichettati, saeparati da tabulazioni e terminati da un duepunti. I campi sono Host, Ports, Protocols, Ignored State, OS, Seq Index, IPID, e Status.

I piu` importanti tra questi campi sono generalmente il campo Ports, che da dettagli su ogni porta interessante,. E' una lista di porte separate da una virgola. Ogni porta rappresenta una porta interessante e prende la forma di sette sottocampi separati da uno slash (/). Questi sottocampi sono: Port number, State, Protocol, Owner, Service, SunRPC info, and Version info.

Come in XML output, questa pagina di manuale non permette di documentare l'intero formato. E' disponibile una descrizione piu` dettagliata del formato grepable output.

-oA <basename> (Output in tutti i formati)

Secondo convenienza, si potrebbe specificare -oA <basename> per salvare i risultati dello scan in normal, XML, e grepable formats in una sola volta. Questi vengono salvati nei files <basename>.nmap, <basename>.xml, e <basename>.gnmap, rispettivamente. Come la maggior parte dei programmi, si puo mettere un prefisso ai nomi dei files, come ad esempio un percorso a directory, come ~/nmaplogs/foocorp/ su UNIX o c:\hacking\sco su Windows.

Verbosita` e livello di debugging

-v (Aumenta il livello di verbosity)

Aumenta il livello di verbosita`, facendo in modo che Nmap stampi piu` informazioni riguardo allo scan in esecuzione. Le porte aperte sono mostrate man mano che Nmap le trova e il tempo rimanente stimato vengono mostrati se Nmap ritiene che lo scan possa durare piu` di qualche minuto. Si puo mettere l'opzione due volte per aumentare ulteriormente il livello di verbosita`. Triplicare l'opzione non ha effetti.

La maggior parte dei cambiamenti riguarda l'interactive output, e alcune cose anche il normal e script kiddie output. Gli altri tipi di output sono fatti per essere processati dalle macchine, quindi Nmap puo dare un grosso livello di dettaglio di default, senza il problema di poter affaticare un utente umano. In ogni casoci sono delle leggere differenza negli altri modi dove la dimensione dell'output puo essere sostanzialmente ridotta omettendo alcuni dettagli. Per esempio solo in modalita` verbosa viene stampatauna linea di commento nel grepable output che fornisce una lista di tutte le porte scansionate, questo perche` potrebbe essere abbastanza lunga

-d [level] (Aumenta o setta il livello di debugging)

Quando anche il verbose mode non fornisce dati a sufficienza, 蠤isponibile la modalita` debugging, che sommergera` l'utente di informazioni in quantita` molto maggiore! Come succede per l'opzione verbosita` (-v), il debugging 蠡ttivato da una opzione di riga di comando (-d) e il livello di debug puo essere aumentato ripetendo l'opzione diverse volte. In alternativa si puo settare il debug level dando come argomento di -d un numero. Ad esempio, -d9 setta il livello a nove. Questo e` il livello piu` alto e produrra` migliaia di linee a meno che non si stia facendo uno scan molto semplice con pochi target e poche porte.

L'output di debugging è utile quando si sospetta un bug in Nmap, oppure se si rimane confusi su cosa stia facendo Nmap e perche`. Siccome questa feature 蠳tata pensata principalmente per gli sviluppatori, le linee di debug non sono granche` autoesplicative. Si potrebbe incontrare qualcosa tipo: Timeout vals: srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000. Se non si capisce una linea, quello che si puo fare 躠ignorarla, guardarla nel codice sorgente, o richiedere aiuto alla lista di sviluppo (nmap-dev). Alcune linee si spiegano bene da se`, ma i messaggi divengono sempre piu` oscuri man mano che il livello di debugging sale.

--packet_trace (Traccia i pacchetti e i dati mandati e ricevuti)

Fa in modo che Nmap stampi un riassunto di ogni pacchetto mandato o ricevuto. Questo si usa spesso per il debugging, ma 蠡nche un modo valido per gli utenti novizi per capire esattamente cosa stia facendo Nmap dietro le quinte. Per evitare che stampi migliaia di linee, si dovrebbe specificare una lista limitata di porte da controllare, come -p20-30. Se importa soltanto vedere come stia procedendo il version detection si puo usare --version_trace .

--iflist (Lista interfacce e instradamenti)

Stampa la lista delle interfacce e degli instradamenti di sistema rilevati da Nmap. Questo 蠵tile per risolvere i problemi di routing e cattive caratterizzazioni delle interfacce (ad esempio quando Nmap scambia una connessione PPP per Ethernet).

--log-errors (Effettua il log degli errori e degli avvertimenti ("warnings") nel file di output)

Gli avvertimenti ("warnings") e gli errori mostrati da Nmap in genere vanno allo standard output (schermo) nella modalita` interattiva, lasciando cosi` "puliti" i file di output normali. Tuttavia nel caso in cui si voglia vedere questi messaggi nel normale file di output specificato e` necessario specificare quest'opzione. Essa e` utile quando non si ha la possibilita` di guardare l'output interattivo e quando si sta cercando di effettuare il debug di un problema; i messaggi appariranno comunque sullo schermo come se si fosse in modalita` interattiva. Quest'opzione non funzionera` per la maggior parte degli errori dovuti all'uso di opzioni in maniera errata sulla linea di comando, poiche` probabilmente Nmap non avra` ancora inizializzato i file nei quali dovra` andare a scrivere. Inoltre alcuni errori e warning di Nmap usano un sistema di notifica che non supporta ancora quest'opzione. Un'alternativa all'uso di --log-errors e` quella di ridirigere l'output interattivo (e lo standard error) in un file. Nonostante quest'approccio sia facile in ambiente Unix, puo` risultare difficile in Windows.

Altre opzioni di output

--append-output (Accoda anziche` sovrascrivere i file di output)

Quando si specifica un nome di file mediante un parametro di output come -oX o -oN, questo file viene sovrascritto di default. Se si preferisce mantenere il contenuto del file e aggiungerci i nuovi risultati, si deve usare l'opzione --append-output. Tutti i file di output specificati in quell'istanza di Nmap verranno usati in APPEND mode anziche` essere sovrascritti. Quest'opzione non e` di grande aiuto (e non funziona molto bene) nel caso di output in formato XML (-oX), poiche` il parsing del file risultante non sara` corretto fino a quando non si controllera` il file manualmente.

--resume <filename> (Riprendi una scansione interrotta)

Alcune esecuzioni di Nmap possono richiedere molto tempo - dell'ordine di giorni. Tali scansioni non arrivano sempre alla fine; alcune restrizioni possono impedire a Nmap di funzionare durante le ore del giorno, la rete puo` diventare irraggiungibile, la macchina sulla quale Nmap sta girando puo` subire un riavvio pianificato o improvviso, o Nmap stesso puo` andare in crash. L'amministratore che sta usando Nmap puo` interromperlo per qualsiasi ragione, premento ctrl-C. Ricominciare l'intera scansione dall'inizio puo` diventare fastidioso. Fortunatamente se sono rimasti i log in formato "normal" (-oN) o "grepable" (-oG), l'utente puo` richiedere a Nmap di ricominciare la scansione dall'host sul quale stava lavorando quando l'esecuzione e` stata interrotta. Semplicemente basta specificare l'opzione --resume e passargli il file di output in formato normal/grepable come argomento. Non e` permesso nessun altro argomento, poiche` Nmap fara` il parsing del file di output per usare le stesse opzioni specificate in precedenza. E` quindi sufficiente invocare Nmap come nmap --resume <logfilename>. Nmap aggiungera` i nuovi risultati ai files specificiati nell'esecuzione precedente. La ripresa di un'esecuzione non supporta il formato di output XML poiche` sarebbe troppo difficile combinare le due esecuzioni in un unico file XML valido.

--stylesheet <path or URL> (Imposta il foglio di stile XSL per trasformare l'output XML)

Nmap viene fornito con un foglio di stile XSL chiamato nmap.xsl per vedere o tradurre l'output XML in HTML. L'output XML include una direttiva xml-stylesheet che punta al file nmap.xml dove e` stato installato Nmap la prima volta (o nella directory corrente nel caso di Windows). Basta semplicemente caricare l'output XML in un browser recente e dovrebbe automaticamente prelevare nmap.xsl dal filesystem e usarlo per effettuare il rendering dei risultati. Se si volesse usare un foglio di stile diverso, va specificato mediantel'opzione --stylesheet. Il file va indicato con il PATH completo o l'URL. Un esempio di invocazione di Nmap con quest'opzione e` --stylesheet http://www.insecure.org/nmap/data/nmap.xsl. Questo indica al browser di caricare l'ultima versione del foglio di stile da Insecure.org. L'opzione --webxml fa la stessa cosa ma richiede meno digitazioni e meno cose da ricordare. Caricando l'XSL da Insecure.org rende piu` semplice visualizzare i risultati su una macchina che non ha Nmap (e quindi il file nmap.xsl installato). Quindi l'URL e` spesso una scelta migliore, ma di default viene usato il file dal filesystem locale per ragioni di privacy.

--webxml (Carica il foglio di stile da Insecure.org)

Quest'opzione e` semplicemente una comodita` per l'opzione --stylesheet http://www.insecure.org/nmap/data/nmap.xsl.

--no_stylesheet (Non specificare la dichiarazione del foglio di stile XSL dal file XML)

Quest'opzione va specificata quando non si vuole che Nmap associ un qualsiasi foglio di stile XSL con il proprio output XML. La direttiva xml-stylesheet viene omessa.

[ Nmap | Sec Tools | Mailing Lists | Site News | About/Contact | Advertising | Privacy ]