Чи може сервер DHCP визначати ОС клієнта? [зачинено]


18

Чи можливо для сервера DHCP визначити операційну систему клієнта?

Я працюю над інструментом моніторингу шлюзів у локальних мережах, який базується на веб-сторінках, і я хотів би якось визначити, на якій ОС працює пристрій у мережі, і мені здається найбільш очевидним місцем виявити, що знаходиться в час, коли IP-адреса призначена сервером DHCP.

Якщо цього не зробити, я знаю, як відфільтрувати трафік на порту 80 та витягнути інформацію заголовка HTML, але цей метод покладається на очікування, коли пристрій перегляне веб-сторінки, і, таким чином, менш бажано, ніж дуже рано на виявлення / дозвіл, особливо. оскільки не кожен пристрій буде використовуватися для перегляду Інтернету.

Я маю повний контроль над конфігурацією шлюзу - його запущеним послідовно розробленим дистрибутивом debian, тому будь-які інші інструменти, які виконали б цю роботу - DHCP, DNS, ARP тощо, я відкритий для пропозицій!


Infoblox має сервер DHCP, який буде виконувати відбитки пальців на ОС.
some_guy_long_gone

Відповіді:


15

Деяка робота була проведена для визначення тонких відмінностей DHCP-пакетів з різних ОС, в результаті чого з'являються відбитки DHCP. Приклади включають параметри, присутні в запиті DHCP, та їх порядок, а також вміст певних параметрів, таких як варіант 55 (список параметрів).

Погляньте на папери та підписи на fingerbank.org . Це говорить про те, що (я не перевіряв цього самого) можна зробити пасивну дактилоскопію ОС на основі трафіку DHCP. Результат, можливо, можна покращити, включивши іншу інформацію, наприклад загальні властивості IP (TTL, diffserv, ...).

Активний відбиток пальців може забезпечити кращий результат, але може не бути варіантом у вашому випадку використання.

На веб-сайті Fingerbank згадується пара продуктів з відкритим кодом, які використовують підписи. Власний прилад DHCP Infoblox, схоже, містить подібну функцію, але технічні деталі не надаються.


3

Деякі клієнти DHCP не завантажують надійно інформацію про ОС під час завантаження. Як було сказано вище, є деякі інтелектуальні властивості, пов'язані з цими методами; наприклад, Infoblox і Cisco ISE можуть створювати профілі клієнтської ОС на основі пакетів dhcp, які вони бачать. Насправді Cisco ISE включає деякі досить складні алгоритми класифікації ОС, якщо ви можете надіслати на нього більше dhcp.

Крім того, ви можете використовувати евристичну, наприклад, помилку Windows endian у полі "минули секунди", але покладатися на помилку в ОС - це поганий спосіб вирішення виявлення ОС.

Якщо ви дійсно повинні виявити ОС без спеціального пристрою постачальника, просто виберіть IP-адресу та скануйте хоста за допомогою NMAP після відправлення DHCP Ack. Використання заголовків HTTP не настільки надійно, як nmap , тому що кожен може змінити рядок UserAgent, якщо захоче. nmap не на 100% надійний при виявленні ОС, але він настільки ж хороший, як ви побачите, якщо вам потрібно вибрати єдиний метод для всього.

Я зробив би це налаштування на сервері, оскільки деяким людям може не подобатися сканування nmap за замовчуванням на кожному хості DHCP.

Приклад сканування ОС nmap для 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 ~]$

Дякуємо, що вказали на можливості відбитків пальців nmap ... Її акуратно і працює близько 50% часу (вийшло 5 з 10 комп’ютерів у моїй мережі правильних), але її сканування займає від 25 секунд до 102 секунд для кожного пристрою. Це, однак, допомогло мені багато чого зрозуміти щодо відбитків пальців на ОС та esp. пасивні варіанти, які здаються мені найкращими.
Майкл Ланг

@MichaelLang Щоб зменшити необхідну кількість часу, запустіть nmap із -T5прапором, щоб різко прискорити роботу .
Райан Фолі

2

Як частина самого процесу DHCP, я не вірю в це. Однак ви можете скребти свої журнали dhcpd, спостерігати за dhcp acks та на основі тих, хто виконує зовнішній процес, наприклад nmap os fingerprinting, щоб побачити, чи зможете ви зрозуміти, що стоїть за IP, який щойно призначений.


2

Найкоротша точна відповідь - ні. Ви вже отримали корисні відповіді про те nmap, але якщо це повинно бути через DHCP, багато клієнтів надсилають ідентифікатори класу постачальників (DHCP варіант 60) у свої пакети виявлення, щоб сервер DHCP міг надати пропозицію із специфічними для постачальника параметрами (варіант 43 DHCP). Якщо ви запустите tcpdump, подивіться на DHCP-пакети виявлення, надіслані клієнтами для опції 60, ви можете побачити такі речі, як MSFT 5.0для клієнтів Windows, udhcpcзвичайно для вбудованих пристроїв, що працюють з мікро dhcp клієнтом тощо. Майте на увазі, що ця інформація не дуже конкретна, оскільки вона використовується розрізняти клієнт DHCP, а не операційну систему.


1
Крім того, ще одним корисним способом принаймні звузити, яким може бути пристрій у мережі, є пошук їх OUI на основі MAC-адреси на веб-сайті IEEE.
Майкл Ланг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.