Может ли 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, похоже, включает аналогичную функцию, но никаких технических подробностей не предоставлено.

Gerben
источник
3

Некоторые клиенты DHCP не надежно раскрывают информацию об ОС при загрузке. Как было упомянуто выше, есть некоторая интеллектуальная собственность, связанная с этими методами; например, Infoblox и Cisco ISE могут создавать профили клиентских ОС на основе пакетов dhcp, которые они видят. На самом деле Cisco ISE включает несколько довольно сложных алгоритмов классификации ОС, если вы можете отправить на него больше, чем dhcp.

В качестве альтернативы вы можете использовать эвристику, такую ​​как ошибка Windows в поле «истекшие секунды», но полагаться на ошибку ОС - плохой способ обработки обнаружения ОС.

Если вам действительно необходимо обнаружить ОС без выделенного устройства поставщика, просто введите IP-адрес и отсканируйте хост с помощью протокола NMAP после отправки подтверждения DHCP. Использование заголовков 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, многие клиенты отправляют свои идентификаторы класса вендора (опция 60 DHCP) в своих пакетах обнаружения, чтобы сервер DHCP мог предоставить предложение с опциями конкретного поставщика (опция 43 DHCP). Если вы запустите tcpdump, посмотрите на DHCP-пакеты для обнаружения, отправленные клиентами для опции 60, вы можете увидеть такие вещи, как MSFT 5.0для клиентов Windows, udhcpcобычно для встроенных устройств, на которых работает клиент micro-dhcp и т. Д. Имейте в виду, что эта информация не очень специфична, поскольку она используется различать DHCP-клиента, а не операционную систему.

pajaja
источник
1
Кроме того, еще один полезный способ, по крайней мере, сузить, каким может быть устройство в сети, - поиск OUI на основе их MAC-адреса на веб-сайте IEEE.
Майкл Лэнг