Czy serwer DHCP może określić system operacyjny klienta? [Zamknięte]

18

Czy serwer DHCP może określić system operacyjny klienta?

Pracuję nad narzędziem do monitorowania bram w sieciach lokalnych opartym na sieci i chciałbym móc w jakiś sposób ustalić, na jakim systemie operacyjnym działa urządzenie w sieci i wydaje mi się, że jest to najbardziej oczywiste miejsce, w którym można to odkryć czas przydzielenia adresu IP przez serwer DHCP.

W przeciwnym razie wiem, jak filtrować ruch na porcie 80 i pobierać informacje nagłówka HTML, ale ta metoda polega na czekaniu, aż urządzenie będzie surfować po Internecie, a zatem mniej pożądane niż wczesne wykrycie / rozwiązanie, szczególnie. ponieważ nie każde urządzenie będzie używane do przeglądania Internetu.

Mam pełną kontrolę nad konfiguracją bramy - działa ona z ograniczoną dystrybucją Debiana, więc wszelkie inne narzędzia, które by to zrobiły - DHCP, DNS, ARP itp., Jestem otwarty na sugestie!

Michael Lang
źródło
Infoblox ma serwer DHCP, który wykona odcisk palca systemu operacyjnego.
some_guy_long_gone

Odpowiedzi:

15

Wykonano pewne prace w celu ustalenia subtelnych różnic w pakietach DHCP z różnych systemów operacyjnych, w wyniku czego powstają odciski palców DHCP. Przykłady obejmują opcje występujące w żądaniu DHCP i ich kolejność oraz treść niektórych opcji, takich jak opcja 55 (lista parametrów).

Zobacz dokumenty i podpisy na fingerbank.org . Sugeruje to (nie testowałem tego osobiście) pasywne odciski palców systemu operacyjnego na podstawie ruchu DHCP. Wynik można ewentualnie poprawić, włączając inne informacje, takie jak ogólne właściwości IP (TTL, diffserv, ...).

Aktywne pobieranie odcisków palców może zapewnić lepszy wynik, ale może nie być opcją w twoim przypadku użycia.

Witryna Fingerbank wymienia kilka produktów o otwartym kodzie źródłowym, które wykorzystują podpisy. Zastrzeżone urządzenie DHCP Infoblox wydaje się zawierać podobną funkcję, ale nie podano żadnych szczegółów technicznych.

Gerben
źródło
3

Niektórzy klienci DHCP nie ujawniają w wiarygodny sposób informacji o systemie operacyjnym podczas rozruchu. Jak wspomniano powyżej, z tymi technikami wiąże się pewna własność intelektualna; na przykład Infoblox i Cisco ISE mogą budować profile systemu operacyjnego klienta na podstawie pakietów dhcp, które widzą. W rzeczywistości Cisco ISE zawiera dość wyrafinowane algorytmy klasyfikacji systemu operacyjnego, jeśli można wysłać do niego więcej niż dhcp.

Ewentualnie możesz użyć heurystyki, takiej jak błąd endiana systemu Windows, w polu „Upłynęły sekundy”, ale poleganie na błędzie systemu operacyjnego jest złym sposobem radzenia sobie z wykrywaniem systemu operacyjnego.

Jeśli naprawdę musisz wykryć system operacyjny bez dedykowanego urządzenia dostawcy, po prostu podaj adres IP i zeskanuj host za pomocą NMAP po wysłaniu potwierdzenia DHCP. Używanie nagłówków HTTP nie jest tak niezawodne jak nmap , ponieważ każdy może zmienić ciąg UserAgent, jeśli chce. nmap nie jest w 100% wiarygodny w wykrywaniu systemu operacyjnego, ale jest tak dobry, jak okaże się, jeśli musisz wybrać jedną metodę do wszystkiego.

Uczyniłbym to konfigurowalną opcją na serwerze, ponieważ niektórzy ludzie mogą nie lubić domyślnego skanowania nmap na każdym hoście DHCP.

Przykład skanowania systemu operacyjnego nmap pod 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 ~]$
Mike Pennington
źródło
Dzięki za wskazanie możliwości pobierania odcisków palców nmap ... Jest schludny i działa przez około 50% czasu (poprawnie 5 na 10 komputerów w mojej sieci), ale jego skanowanie zajmuje od 25 sekund do 102 sekund dla każdego urządzenia. To jednak pomogło mi zrozumieć wiele na temat pobierania odcisków palców w systemie operacyjnym i esp. opcje pasywne, które wydają się moim najlepszym wyborem.
Michael Lang
@MichaelLang Aby skrócić czas potrzebny, uruchom nmap z -T5flagą, aby znacznie przyspieszyć .
Ryan Foley
2

W ramach samego procesu DHCP nie sądzę. Możesz jednak zeskrobać dzienniki dhcpd, obserwować pakiety dhcp i na ich podstawie wykonać zewnętrzny proces, np. Odcisk palca nmap os, aby sprawdzić, czy możesz dowiedzieć się, co kryje się za przypisanym właśnie adresem IP.

znak
źródło
2

Najkrótsza dokładna odpowiedź to nie. Masz już przydatne odpowiedzi nmap, ale jeśli musi to być DHCP, wielu klientów wysyła swoje identyfikatory klas dostawców (opcja DHCP 60) w swoich pakietach wykrywania, aby serwer DHCP mógł dostarczyć ofertę z opcjami specyficznymi dla dostawcy (opcja DHCP 43). Jeśli uruchomisz tcpdump i spojrzysz na pakiety wykrywania DHCP wysyłane przez klientów dla opcji 60, możesz zobaczyć rzeczy takie jak MSFT 5.0dla klientów Windows, udhcpczwykle dla urządzeń wbudowanych z klientem micro dhcp itp. Pamiętaj, że ta informacja nie jest bardzo szczegółowa, ponieważ jest używana aby odróżnić klienta DHCP zamiast systemu operacyjnego.

pajaja
źródło
1
Innym przydatnym sposobem na zawężenie tego, czym może być urządzenie w sieci, jest wyszukiwanie ich OUI na podstawie adresu MAC na stronie IEEE.
Michael Lang