
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.
|
|