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!
quelle
Antworten:
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.
quelle
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:
quelle
-T5
Flag aus, um die Dinge drastisch zu beschleunigen .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.
quelle
Kürzeste genaue Antwort ist nein. Sie haben bereits nützliche Antworten dazu erhalten.
nmap
Wenn 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 wieMSFT 5.0
bei Windows-Clients,udhcpc
normalerweise 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.quelle