Может ли DHCP-сервер определять клиентскую ОС? [закрыто]

Возможно ли, чтобы DHCP-сервер определил клиентскую операционную систему?

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

В противном случае я знаю, как фильтровать трафик на порт 80 и вытаскивать информацию заголовка HTML, но этот метод основан на ожидании, что устройство будет работать в Интернете и, следовательно, менее желательно, чем очень рано на обнаружении /разрешении, esp , поскольку не все устройства будут использоваться для просмотра в Интернете.

У меня есть полный контроль над конфигурацией шлюза - он работает с уменьшенным дистрибутивом debian, поэтому любые другие инструменты, которые выполняли бы работу - DHCP, DNS, ARP и т. д., я открыт для предложений!

17 голосов | спросил Michael Lang 29 PM00000090000003031 2013, 21:26:30

4 ответа


15

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

Взгляните на документы и подписи на fingerbank.org . Это предполагает (не проверял сам) пассивную отпечатку на OS на основе DHCP-трафика. Результат может быть улучшен за счет включения другой информации, такой как общие свойства IP (TTL, diffserv, ...).

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

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

ответил Gerben 29 PM000000110000004631 2013, 23:02:46
3

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

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

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

Я бы сделал это настраиваемым вариантом на сервере, так как некоторым людям может не понравиться стандартная проверка nmap на каждом DHCP хоста.

Пример nmap Сканирование ОС на Windows7:

[mpenning @ myhost ~] $ sudo nmap -O 10.1.1.1

Запуск Nmap 5.51 (http://nmap.org) в 2013-08-24 16:20 CDT
Отчет о сканировании Nmap для 10.1.1.1
Хост увеличен (0 00078 с).
Не показано: 985 закрытых портов
ГОСУДАРСТВЕННАЯ СЕТЬ ПОРТА
135 /tcp открыть msrpc
139 /tcp open netbios-ssn
445 /tcp open microsoft-ds

Тип устройства: универсальное
Запуск: Microsoft Windows Vista | 2008 | 7
Сведения о ОС: Microsoft Windows Vista SP0 - SP2, Server 2008 или Windows 7 Ultimate
Расстояние до сети: 5 прыжков

Выполнено обнаружение ОС. Пожалуйста, сообщите о любых неправильных результатах по адресу http://nmap.org/submit/.
Выполнено Nmap: 1 IP-адрес (1 хост вверх), отсканированный за 5,25 секунды
[mpenning @ myhost ~] $
ответил Mike Pennington 29 PM00000090000001931 2013, 21:59:19
2

Как часть самого процесса DHCP, я так не считаю. Тем не менее, вы можете очистить журналы dhcpd, посмотреть на dhcp acks и на их основе выполнить внешний процесс, такой как nmap os fingerprinting, чтобы узнать, можете ли вы понять, что стоит за IP-адресом, который был только что назначен.

ответил Mark 29 PM00000090000005631 2013, 21:46:56
2

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

ответил pajaja 29 PM000000100000003631 2013, 22:42:36

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132