Service e Version Detection
Utilizzando Nmap e dirigendo la scansione su una macchina remota
e` possible scoprire che le porte 25/tcp 80/tcp, and 53/udp sono aperte.
Utilinzando il suo database di circa 2200 servizi noti, contenuto nel
file nmap-services, Nmap
probabilmente sara` in grado di indicare che ti tratta rispettivamente
di un Mail Server (SMTP), si un web server (HTTP), e di un name server
(DNS). Tale riconoscimento e` solitamente accurato -- la maggior parte
di demoni in ascolto sulla porta 25 sono, in effetti, Mail Server. Non
si comunuqe opportuno fidarsi ciecamente di tali indicazioni! E' infatti
possibile erogare servizi su porte non convenzionali.
Anche se le indicazioni di Nmap sono corrette, e gli ipotetici
server sopracitati sono effettivamente SMTP, HTTP e DNA, queste
informazioni non sono esaustive. Quando si eseguono dei "vulnerability
assessments" (o anche semplicemente un inventario della rete) della
vostra societa` o di clienti, e` interessante sapere esattamente di che
mail e DNS server si tratta e quale versione e` in uso. Conoscere
accuratamente la versione del software e` di fondamentale importanza per
derminare a quali exploits e` vulnerabile il server. "Version Detection"
e` di grande aiuta nel ricercare queste informazioni.
Al momento dell'identificazione delle porte TCP e/o UDP da parte
di uno dei vari metodi di scansione, il "Version Detection" interroga
queste porte per rilevare ulteriori dati sui servizi erogati. Il
database contenuto nel file nmap-service-probes contiene instruzioni per
interrogare i vari servizi e per intepretarne le risposte. Nmap cerca
quindi di terminare di che servizio si tratta (Es.: ftp, ssh, telnet,
http), di che applicazione (Es.: ISC, Bind, Apache httpd, Solaris
telnetd), la versione, l'hostname, il tipo di device, la famiglia del
sistema operativo (Es.: Windows, Linux...) e spesso altri dettagli come
l'apertura di un X server alle connessioni, la versione del protocollo
SSH, o l'untenza utilizzata da KaZaA. Ovviamente la maggior parte dei
serivizi non rilasciano tutte queste informazioni, ma se NMap viene
copilato il supporto per OpenSSL, sara` in grado di connettersi ai
server SSL per dudurre quale tipo di servizio viene offerto dietro al
suo "Encryption Layer". Quando i servizi RPC vengono identificati, Nmap
e` in grado di raffinare quanto rilevato (-sR) cosi` da
riconoscere versione e nome del servizio RPC. Alcune delle porte UDP
vengono indicate come open|filtered
se un "UDP Port Scan" non e` in grado di derminare con precisione se la
porta e` open o filtered. "Version Detection" cerchera` di ottenere una
risposta da queste porte (esattamente come per le porte aperte), e
modifichera` lo stato in "Open" se ci riuscira`. Le porte open|filtered vengono trattate nello stesso
modo. Bisogna tener presente che l'opzione -A abilita,
fra le varie cose, il Version Detection. E' disponibile un documento sul
funzionamento e sull'utilizzo nonche` sulla personalizzazione del
"Version Detection" e` disponibile al seguente indirizzo: http://www.insecure.org/nmap/vscan/.
Quando Nmap riceve delle risposte da un Servizio ma non e` in
grado di trovarne una iterpretazione nel suo database, visualizza una
particolare "FingerPrint" e una URL per permettere di inviare quanto
rilevato nel caso si conosca a priori che cosa sta effettivamente
girando su quella porta. E' importante perdere qualche minuto per
effettuare l'invio di questi dati quando possibile perche` cosi` facendo
chiunque in futuro potra` benificiare dei dati raccolti e riconoscere
anche questo serizio. Grazie a questo sistema Nmap e` in grado di
identificare circa 3.000 differenti varianti per piu` di 350 protocolli
come smtp, ftp, http, ecc.
"Version Detection" viene attivato e controllato dalle seguenti
opzioni:
-sV (Version detection)Abilita il "Version Detection", come precedentemente
illustrato. In alternativa, e` possibile utilizzare l'opzione
-A per attivare sia "OS Detection" che "Version
Detection".
--allports (Non esclude alcuna porta dal
Version Detection)Normalmente, il Version Detection di Nmap non invia
pacchetti alla porta TCP 9100 poiche` alcune stampanti accettano e
stampano direttamente qualunque dato ricevuto su questa porta. Se
tale porta fosse sottoposta a scansione, verrebbero stampate
decine di pagine contenenti richieste HTTP get, puri dati binari,
sessioni SSL e via discorrendo. E' possibile cambiare il
comportamento del Version Detection di NMap con la modifica o la
rimozione della direttiva Exclude nel file nmap-service-probes oppure specificando
l'opzione --allports cosi` da effettuare la
scansione di tutte le porte, indipendentemente da quanto indicato
nella direttiva Exclude.
--version_intensity <intensity>
(Imposta l'accuratezza del Version Scan)Quando si effettua un Version Scan (-sV),
NMap invia una serie di pacchetti-sonda, ognuno delle quali ha
assegnato un valore compreso tra 1 e 9. I pacchetti con valore
piu` basso sono in grado di riconoscere i servizi comunemente
diffusi, mentre quelli con valori piu` alti sono raramente
necessari. Il livello di accuratezza specifica quali
pacchetti-sonda devono essere impiegati; piu` alto e` il livello,
piu` e` probabile che il servizio venga correttamente
identificato. D'altro canto, piu` una scansione e` accurata e piu`
tempo sara` necessario. I valori devono essere compresi tra 1 e 9;
il valore di default e` 7. Quando viene assegnato direttamente un
pacchetto-sonda ad una porta utilizzando la direttiva ports nel file nmap-service-probes, esso viene
utilizzato indipendentemente dal valore indicato per l'accuratezza
del Version Scan. Questo garantisce, per esempio, che ogni volta
che viene trovata la porta 53 aperta vengano effettuati i
controlli specifici per il DNS; cosi` come in caso di porta 443
vengano invece utilizzati quelli per l'SSH e cosi` via.
--version_light (Attiva la modalita`
Light)Questa opzione e` equivalente alla
--version_intensity 2. Questa modalita` rende il
Version Scanning drasticamente piu` veloce, riducendone pero` la
capacita` di identificare accuratamente i servizi.
--version_all (Prova ogni singolo
pacchetto-sonda)Questa opzione e` equivalente alla
--version_intensity 9, assicurando che ogni
singolo pacchetto-sonda venga utilizzato su ogni singola
porta.
--version_trace (Evidenzia l'attivita` del
Version Scan)Indica a Nmap di visualizzare informazioni di debug estese
relative all'attivita` del Version Scanning. E' un subset di
quanto si ottiene con l'opzione
--packet_trace.
-sR (RPC scan)Questo metodo lavora in congiuntamente agli altri metodi di
scansione delle porte, riversando su ogni singola porta TCP o UDP
trovata aperta i comandi NULL di SunRPC, cercando cosi` di
determinare se le porte analizzate sono RPC o meno e, nel caso,
quale programma e versione utilizzano. E' cosi` possibile ottenere
le stesse informazioni rilevate dal comando rpcinfo -p anche se l'host indagato e`
dietro un firewall (o protetto da TCP wrappers). Al momento la
scansione Decoys non funziona con l'RPC Scan Viene automaticamente
abilitato come parte del Version Scan (-sV) se
indicato. Visto che Version Detection impiega tale sistema, che e`
molto piu` completo, l'opzione -sR e` raramente
necessaria.