Kann der DHCP-Server das Betriebssystem des Clients ermitteln? [geschlossen]


18

Kann der DHCP-Server das Client-Betriebssystem ermitteln?

Ich arbeite an einem Überwachungstool für Gateways in lokalen Netzwerken, das webbasiert ist und in der Lage sein möchte, das Betriebssystem eines Geräts im Netzwerk zu bestimmen, und es scheint mir der naheliegendste Ort zu sein, an dem dies festgestellt werden kann Die Zeit, zu der eine IP-Adresse vom DHCP-Server zugewiesen wird.

Andernfalls kann ich den Datenverkehr auf Port 80 filtern und die HTML-Header-Informationen abrufen. Diese Methode beruht jedoch darauf, dass das Gerät darauf wartet, im Internet zu surfen, und ist daher weniger wünschenswert als eine sehr frühe Erkennung / Auflösung. da nicht jedes Gerät zum Surfen im Internet verwendet wird.

Ich habe die vollständige Kontrolle über die Konfiguration des Gateways - es läuft eine abgespeckte Debian-Distribution, also alle anderen Tools, die diese Aufgabe übernehmen würden - DHCP, DNS, ARP usw., ich bin offen für Vorschläge!


Infoblox verfügt über einen DHCP-Server, der die Betriebssystem-Fingerabdrücke erstellt.
some_guy_long_gone

Antworten:


15

Es wurden einige Arbeiten durchgeführt, um geringfügige Unterschiede in DHCP-Paketen von verschiedenen Betriebssystemen zu ermitteln, die zu DHCP-Fingerabdrücken führen. Beispiele sind die in der DHCP-Anforderung enthaltenen Optionen und deren Reihenfolge sowie der Inhalt bestimmter Optionen wie Option 55 (Parameterliste).

Schauen Sie sich die Papiere und Unterschriften auf fingerbank.org an . Dies legt nahe (habe es nicht selbst getestet), dass ein passiver Betriebssystem-Fingerprint basierend auf DHCP-Verkehr durchgeführt werden kann. Das Ergebnis kann möglicherweise verbessert werden, indem andere Informationen wie generische IP-Eigenschaften (TTL, Diffserv, ...) einbezogen werden.

Aktive Fingerabdrücke liefern möglicherweise ein besseres Ergebnis, sind jedoch in Ihrem Anwendungsfall möglicherweise keine Option.

Auf der Fingerbank-Website werden einige Open-Source-Produkte erwähnt, bei denen die Signaturen verwendet werden. Proprietäre DHCP-Appliance Infoblox scheint eine ähnliche Funktion zu bieten, es werden jedoch keine technischen Details bereitgestellt.


3

Einige DHCP-Clients geben die Betriebssysteminformationen beim Booten nicht zuverlässig weiter. Wie oben erwähnt, ist mit diesen Techniken geistiges Eigentum verbunden; Infoblox und Cisco ISE können beispielsweise Client-Betriebssystemprofile auf der Grundlage der angezeigten DHCP-Pakete erstellen. Tatsächlich enthält Cisco ISE einige ziemlich ausgefeilte Betriebssystemklassifizierungsalgorithmen, wenn Sie mehr als DHCP an das System senden können.

Alternativ können Sie eine Heuristik wie den Windows-Endian-Fehler im Feld "Sekunden verstrichen" verwenden. Die Verwendung eines Betriebssystemfehlers ist jedoch eine schlechte Methode, um die Betriebssystemerkennung zu handhaben.

Wenn Sie das Betriebssystem wirklich ohne dedizierte Vendor Appliance erkennen müssen, geben Sie einfach eine IP-Adresse ein und scannen Sie den Host mit NMAP, nachdem Sie die DHCP-Bestätigung gesendet haben. Die Verwendung von HTTP-Headern ist nicht so zuverlässig wie nmap , da jeder die UserAgent-Zeichenfolge ändern kann, wenn er möchte. nmap ist bei der Betriebssystemerkennung nicht 100% zuverlässig, aber es ist ungefähr so ​​gut, wie Sie feststellen werden, wenn Sie für alles eine einzige Methode auswählen müssen.

Ich würde dies zu einer konfigurierbaren Option auf dem Server machen, da einige Leute einen standardmäßigen nmap- Scan nicht auf jedem DHCP-Host mögen .

Beispiel für einen nmap- Scan unter 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 ~]$

Vielen Dank, dass Sie auf die Fingerabdruckfunktionen von nmap hingewiesen haben. Es ist ordentlich und funktioniert in etwa 50% der Fälle (es wurden 5 von 10 Computern in meinem Netzwerk korrekt überprüft), aber die Überprüfungen dauern zwischen 25 Sekunden und 102 Sekunden für jedes Gerät. Dies hat mir jedoch geholfen, viel über OS Fingerprinting und esp zu verstehen. passive Optionen, die meine beste Wahl zu sein scheinen.
Michael Lang

@MichaelLang Um die benötigte Zeit zu verkürzen, führen Sie nmap mit dem -T5Flag aus, um die Dinge drastisch zu beschleunigen .
Ryan Foley

2

Als Teil des DHCP-Prozesses selbst glaube ich nicht. Sie können jedoch Ihre DHCP-Protokolle kratzen, nach DHCP-Bestätigungen Ausschau halten und basierend auf diesen einen externen Prozess wie nmap os fingerprinting ausführen, um festzustellen, was sich hinter der soeben zugewiesenen IP verbirgt.


2

Kürzeste genaue Antwort ist nein. Sie haben bereits nützliche Antworten dazu erhalten. nmapWenn dies jedoch über DHCP erfolgen muss, senden viele Clients ihre Herstellerklassen-IDs (DHCP-Option 60) in ihren Erkennungspaketen, damit der DHCP-Server ein Angebot mit herstellerspezifischen Optionen (DHCP-Option 43) erstellen kann. Wenn Sie tcpdump ausführen und sich die von Clients für Option 60 gesendeten DHCP- Erkennungspakete ansehen, sehen Sie Informationen wie MSFT 5.0bei Windows-Clients, udhcpcnormalerweise bei eingebetteten Geräten mit Micro-DHCP-Client usw. Beachten Sie, dass diese Informationen nicht sehr spezifisch sind, da sie verwendet werden DHCP-Client eher als Betriebssystem zu unterscheiden.


1
Ein weiterer nützlicher Weg, um zumindest einzugrenzen, was ein Gerät im Netzwerk sein kann, besteht darin, die OUI anhand der MAC-Adresse auf der IEEE-Website nachzuschlagen.
Michael Lang
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.