tracert

Mattepuffo's logo
Scoprire il sistema operativo con ping e traceroute

Scoprire il sistema operativo con ping e traceroute

Faccio una piccola premessa: per scoprire il sistema operativo usato dai computer in rete sarebbe meglio usare altri sistemi con Nmap; però se non si ha la possibilità/voglia di installare/studiare qualcosa di nuovo questo potrebbe essere un buon metodo, tenendo però in considerazioni i suoi limiti.

Detto ciò cominciamo con una breve descrizione di che cosa è l'OS Fingerprint: in breve è, appunto, il processo che permette di determinare il sistema operativo dell’host remoto.

Esistono due modi per farlo, uno attivo e uno passivo.

Quello attivo consiste nell'inviare pacchetti e analizzare la risposta.

Quello passivo nell'intercettare (sniffing) i dati in transito e valutare particolari campi dei protocolli.

Possiamo dire che tutti i sistemi operativi creano i pacchetti con valori arbitrari e distintivi.

Analizzando questi valori è possibile sapere con buona precisione quale sistema ha creato quei pacchetti, e di rimbalzo capire quale sistema operativo sta girando sulla macchina target.

Dei vari protocolli disponibili a noi interessa il protoccolo IP (Internet Protocol).

In maniera abbastanza generica possiamo dire che ogni informazione (email, streaming, ecc) attraversa la rete in forma frammentata: ogni frammento viene chiamato pacchetto dati.

Ogni connessione TCP viene fatta a pezzi e inglobata in pacchetti IP.

Questi pezzi contengo sia informazioni sui dati trasmessi, sia informazioni specifiche sul protocollo IP.

Di questi a noi interessa il campo TTL (Time To Live).

Il TTL è un valore che indica per quanto tempo il pacchetto IP può vagare per la rete prima di raggiungere la destinazione, e serve per evitare che pacchetti per qualche motivo sfuggiti al controllo continuino all’infinito a girare per la rete.

Infatti una volta che questo tempo scade, il pacchetto stesso viene eliminato.

Il TTL funziona così: quando il pacchetto viene creato/trasmesso viene impostato un valore TTL non specificato da nessuna parte; ognuno lo può impostare come vuole; ad ogni passaggio di router questo valore è decrementato di uno; quando raggiunge lo zero viene scartato.

Per verificare il TTL basta il comando Ping (disponibile su tutte le piattaforme).