Il server DHCP può determinare il sistema operativo del client? [chiuso]


18

È possibile per il server DHCP determinare il sistema operativo client?

Sto lavorando a uno strumento di monitoraggio per gateway su reti locali basato sul Web e vorrei essere in grado di determinare in qualche modo quale sistema operativo è in esecuzione un dispositivo sulla rete e mi sembra il posto più ovvio per scoprire che si trova l'ora in cui un indirizzo IP viene assegnato dal server DHCP.

In caso contrario, so come filtrare il traffico sulla porta 80 ed estrarre le informazioni dell'intestazione HTML, ma questo metodo si basa sull'attesa che il dispositivo navighi sul Web e quindi sia meno desiderabile di un rilevamento / risoluzione molto precoce, esp. poiché non tutti i dispositivi verranno utilizzati per navigare in Internet.

Ho il controllo completo della configurazione del gateway - sta eseguendo una distro debian ridotta, quindi qualsiasi altro strumento che farebbe il lavoro - DHCP, DNS, ARP, ecc. Sono aperto ai suggerimenti!


Infoblox ha un server DHCP che eseguirà l'impronta digitale del sistema operativo.
some_guy_long_gone

Risposte:


15

Alcuni lavori sono stati fatti per determinare sottili differenze nei pacchetti DHCP da diversi sistemi operativi, con conseguenti impronte digitali DHCP. Gli esempi includono le opzioni presenti nella richiesta DHCP e il loro ordine e il contenuto di alcune opzioni come l'opzione 55 (elenco parametri).

Dai un'occhiata ai documenti e alle firme su fingerbank.org . Questo suggerisce (non l'ho testato da solo) che si possano fare le impronte digitali passive del sistema operativo basate sul traffico DHCP. Il risultato può eventualmente essere migliorato includendo altre informazioni, come le proprietà IP generiche (TTL, diffserv, ...).

L'impronta digitale attiva potrebbe fornire un risultato migliore, ma potrebbe non essere un'opzione nel tuo caso d'uso.

Il sito Web di Fingerbank menziona un paio di prodotti open source che utilizzano le firme. L'appliance DHCP proprietaria Infoblox sembra includere una funzionalità simile, ma non vengono forniti dettagli tecnici.


3

Alcuni client DHCP non rivelano in modo affidabile le informazioni del sistema operativo all'avvio. Come accennato in precedenza, vi è una certa proprietà intellettuale associata a queste tecniche; ad esempio, Infoblox e Cisco ISE possono creare profili del sistema operativo client in base ai pacchetti dhcp che vedono. In realtà Cisco ISE include alcuni algoritmi di classificazione del sistema operativo abbastanza sofisticati, se è possibile inviare più di dhcp ad esso.

In alternativa, è possibile utilizzare un'euristica come il bug endian di Windows nel campo "secondi trascorsi", ma fare affidamento su un bug del sistema operativo è un modo scadente per gestire il rilevamento del sistema operativo.

Se è davvero necessario rilevare il sistema operativo senza un'appliance del fornitore dedicata, è sufficiente emettere un indirizzo IP ed eseguire la scansione dell'host con NMAP dopo aver inviato DHCP Ack. L'uso delle intestazioni HTTP non è affidabile come nmap , perché chiunque può modificare la stringa UserAgent se lo desidera. nmap non è affidabile al 100% al rilevamento del sistema operativo, ma è buono come lo troverai se devi scegliere un singolo metodo per tutto.

Vorrei rendere questa un'opzione configurabile sul server poiché alcune persone potrebbero non apprezzare una scansione nmap predefinita su ogni host DHCP.

Esempio di scansione del sistema operativo nmap su Windows7:

[mpenning@myhost ~]$ sudo nmap -O 10.1.1.1

Starting Nmap 5.51 ( http://nmap.org ) at 2013-08-24 16:20 CDT
Nmap scan report for 10.1.1.1
Host is up (0.00078s latency).
Not shown: 985 closed ports
PORT      STATE SERVICE
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds

Device type: general purpose
Running: Microsoft Windows Vista|2008|7
OS details: Microsoft Windows Vista SP0 - SP2, Server 2008, or Windows 7 Ultimate
Network Distance: 5 hops

OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 5.25 seconds
[mpenning@myhost ~]$

Grazie per aver messo in evidenza le capacità di fingerprinting di nmap ... È pulito e funziona circa il 50% delle volte (5 computer su 10 sulla mia rete sono corretti), ma le sue scansioni richiedono da 25 secondi a 102 secondi per ogni dispositivo. Ciò, tuttavia, mi ha aiutato a capire molto sull'impronta digitale del sistema operativo e esp. opzioni passive che sembrano essere la mia migliore scommessa.
Michael Lang,

@MichaelLang Per alleviare il tempo necessario, esegui nmap con la -T5bandiera per accelerare drasticamente le cose .
Ryan Foley,

2

Come parte del processo DHCP stesso, non ci credo. Tuttavia, potresti raschiare i tuoi registri dhcpd, cercare dhcp acks e in base a quelli eseguire un processo esterno come nmap os fingerprinting per vedere se riesci a capire cosa c'è dietro l'IP che è stato appena assegnato.


2

La risposta più breve e precisa è no. Hai già ottenuto risposte utili su nmap, ma se deve essere tramite DHCP molti client inviano i loro identificatori di classe del fornitore (opzione DHCP 60) nei loro pacchetti di individuazione in modo che il server DHCP possa fornire un'offerta con opzioni specifiche del fornitore (opzione DHCP 43). Se esegui tcpdump uno sguardo a DHCP scopri i pacchetti inviati dai client per l'opzione 60 puoi vedere cose come MSFT 5.0per i client Windows, di udhcpcsolito per i dispositivi embedded che eseguono client micro dhcp, ecc. Tieni presente che queste informazioni non sono molto specifiche poiché vengono utilizzate distinguere il client DHCP anziché il sistema operativo.


1
Inoltre, un altro modo utile per restringere almeno quello che un dispositivo può essere sulla rete è cercare la loro OUI in base al loro indirizzo MAC sul sito Web dell'IEEE.
Michael Lang,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.