Una delle piu` famose caratteristiche di NMap e` la possibilita`
di identificare remotamente il sistema operativo di un host attraverso
il "Fingerprint" dello stack TCP/IP. Nmap invia una serie di pacchetti
TCP ed UDP all'Host Remoto ed esamina ogni bit ricevuto in risposta.
Dopo aver effettuato decine di test come il "TCP ISN sampling", il "TCP
option support and ordering", il "IPID Sampling" ed il controllo del
Window Size iniziale, NMap compara i risultati con il suo database
(nmap-os-fingerprints) contenente
piu` di 1500 "OS Fingreprints" conosciuti e ne visualizza i dettagli se
ne trova riscontro. Ogni fingerprint comprendo una descrizione del
sistema operativo ed una classificazione che tale da indicare il Vendor
(per esempio Sun), il sistema operativo (per esempio Solaris), la
versione (per esempio 10) ed il tipo di device (per esempio "general
purpose", router, switch, "game console" ecc).
Se NMap non e` in grado di indovinare il sistema operativo di una
macchina e le condizioni sono propizie (almeno una porta trovata aperta
ed una trovata chiusa), NMap fornira` una URL che potra` essere
utilizzata per inviare la FingerPrint (nel solo caso che si conosca con
certezza il sistema operativo dell'host in questione) Inviando queste
FingerPrint e` possibile contribuire ad ampliare la gamma di sistemi
operativi conosciuti da NMap, cosi` da rendelo piu` accurato per
tutti.
OS Detection abilita diversi altri test che utlizzano le
informazioni che sono state ottenute durante questo processo. Una di
queste e` la misura dell'UpTime, che sfrutta l'opzione TimeStamp (RFC
1323) per indovinare quando una macchina ha effettuato l'ultimo reboot.
Questo e` riportato solo per quelle macchine che forniscono tale
informazione. Un'altra e` la "TCP Sequence Predictability
Classification", che misura approssimativamente quanto e` stato
complesso stabilire una "Forged TCP Connection" verso un host remoto. E'
utile per sfruttare exploit basati sul controllo del SourceIP (rlogin,
filtri firewall, ecc.) o per nascondere la sorgente di un attacco.
Questo tipo di spoofing e` attualmente utilizzato di rado, ma molte
macchine sono tuttora vulnerabili ad esso. Il numero indicante la
"difficulty" e` basato su campionamenti statistici e puo` fluttuare. E'
generalmente preferibile utilizzare la classificazione verbale, come
“worthy challenge” oppure “trivial joke”. Tale
indicazione e` riportata nel normale output in modalita` "Verbose"
(-v) Quando la modailita` "Vervose" e` utilizzata
congiuntamente all'opzione -O, anche la sequenza di
generazione dell'IPID viene riportata. La maggior parte delle macchine
e` nella classe “incremental”, il che significa che
incrementano il campo ID dell'Header IP per ogni pacchetto inviato. Cio`
le rende vulnerabili a diversi attacchi avanzati di spoofing ed
"Information Gathering".
Un documento riguardante il funzionamento, l'utilizzo e la
personalizzazione del "Version Detection" e` disponibile tradotto in
oltre una dozzina di lingue: http://www.insecure.org/nmap/osdetect/.
OS detection viene attivato e controllato dalle le seguenti
opzioni:
-O (Enable OS detection)Abilita l'OS detection, come descritto sopra. In
alternativa, e` possibile utilizzare l'opzione -A
per attivare sia l'OS detection che il version detection.
--osscan_limit (Limit OS detection to
promising targets)L'OS detection e` molto piu` efficace se vengono rilevate
almeno una porta aperta ed una chiusa. Utilizzando questa opzione
NMap non cerchera` di effettuare la OS Detection su quegli host
che non rispondo a questo criterio. E' cosi` possibile un
sensibile risparmio di tempo, specialmente se si utilizza anche
l'opzione -P0 su molti host. E' importante
unicamente quando l'OS Detection e` richiesto attravero le opzioni
-O o -A.
--osscan_guess; --fuzzy
(Guess OS detection results)Quando NMap non e` in grado di rilevare una corrispondenza
esatta dell'OS, propone come possibilita` gli OS piu` vincini alla
rilevazione. La corrispondenza pero` deve essere molto simile
perche` NMap lo faccia per default. Entrambe queste opzioni
(equivalenti) fanno si che NMap proceda con il riconoscimento
dell'OS in modo piu` aggressivo.