Avanti Indietro Indice

3. Attuali programmi di fingerprinting.

Nmap non è il primo programma per il riconoscimento del S.O. usando il fingerprinting TCP/IP. Il comune spoofer IRC sirc creato da Johan ha incluse tecniche molto rudimentali di fingerprinting sin dalla versione 3 (o precedente). Esso tenta di collocare un host nelle classi "Linux", "4.4BSD","Win95", o "Unknown" usando pochi semplici test sui flag TCP.

Un altro di tali programmi è checkos, rilasciato pubblicamente nel Gennaio di quest'anno da Shok in Confidence Remains High Issue #7. Le tecniche di fingerprinting sono esattamente le stesse di sirc, e anche il codice è identico in molte parti. Checkos era privatamente disponibile per lungo tempo precedente alla release pubblica, cosí io non ho nessuna idea su chi ha soffiato il codice e a chi. Ma nessuno dei due sembra attribuirlo all'altro. Una cosa che fa in piú checkos è il controllo del banner telnet, che è, utile ma ha i problemi descritti prima.[Aggiornamento: Shok scrisse di dire che non era mai stata sua intenzione rendere pubblico checkos e questo è il motivo perchè gli secca attribuire a sirc parte del codice].

Anche Su1d scrisse un programma per determinare il S.O. Il suo è, chiamto SS e la versione 3.11 può identificare 12 tipi differenti di S.O. Sono piuttosto parziale in questo in quanto Su1d attribuisce al mio programma nmap del codice di networking:).

Poi c'è queso. Questo programma è il più nuovo ed rappresenta un enorme balzo in avanti rispetto agli altri programmi. Non solo fa quello che fanno gli altri e introduce un paio di test nuovi, ma esso è il primo (che ho visto) a spostare le fingerprint di un S.O. fuori dal codice. Gli altri scanner includono codice come:

/*da SS */
if ((flagsfour & TH_RST) && (flagsfour & TH_ACK) && (winfour == 0) && (flagsthree & TH_ACK)) 
reportos(argv[2],argv[3], "Livigston Portmaster ComOS") ;

Invece queso sposta questo in un file di configurazione, che ovviamente è, molto meglio e rende l'aggiunta di un S.O. tanto facile quanto fare l'append ad un file di fingerprint con poche linee. Queso è stato scritto da Savage, uno della bella gente di Apostol.org.

Un problema con tutti i programmi descritti sopra è che essi sono molto limitati nel numero di test di fingerprinting, il che limita la granularità delle risposte. Voglio sapere molto di più che solo 'questa macchina è OpenBSD, FreeBSD, o NetBSD', desidero sapere esattamente sia quale di queste è, che il numero di versione della release. Allo stesso modo, vorrei piuttosto vedere 'Solaris 2.6' che semplicemente 'Solaris'. Per ottenere questa granularità nel risultato, ho lavorato su un numero di tecniche fingerprinting, le quali sono descritte nella prossima sezione.


Avanti Indietro Indice