Как лучше всего определить, есть ли в моей сети мошеннический DHCP-сервер?
Мне интересно, как большинство администраторов подходят к таким проблемам. Я нашел DHCP Probe через поиск и подумал попробовать. У кого-нибудь был опыт с этим? (Я хотел бы знать, прежде чем тратить время на его компиляцию и установку).
Знаете ли вы какие-либо полезные инструменты или лучшие практики для поиска мошеннических серверов DHCP?
Один из простых способов - просто запустить сниффер, такой как tcpdump/wireshark, на компьютере и отправить запрос DHCP. Если вы видите предложения, отличные от вашего реального DHCP-сервера, то вы знаете, что у вас есть проблема.
Напомним и добавим к некоторым другим ответам:
Временно отключите производственный DHCP-сервер и посмотрите, отвечают ли другие серверы.
Вы можете получить IP-адрес сервера, запустив ipconfig /all
на машине с Windows, и затем вы можете получить MAC-адрес, выполнив поиск этого IP-адреса с помощью arp -a
.
На Mac запустите ipconfig getpacket en0
(или en1). См http://www.macosxhints.com/article.php?story=20060124152826491 .
Информация о DHCP-сервере обычно находится в/var/log/messages. Sudo grep -i dhcp /var/log/messages*
Конечно, отключение вашего производственного DHCP-сервера не может быть хорошим вариантом.
Используйте инструмент, специально предназначенный для поиска мошеннических DHCP-серверов
Смотрите http://en.wikipedia.org/wiki/Rogue_DHCP список инструментов (многие из которых были перечислены в других ответах).
Настройка коммутаторов для блокировки предложений DHCP
Большинство управляемых коммутаторов можно настроить для предотвращения мошеннических DHCP-серверов:
Подходы Wireshark/DHCP Explorer/DHCP Probe подходят для одноразовой или периодической проверки. Однако я бы порекомендовал посмотреть поддержку DHCP Snooping в вашей сети. Эта функция обеспечивает постоянную защиту от мошеннических DHCP-серверов в сети и поддерживается многими поставщиками оборудования.
Вот набор функций, как указано в Документы Cisco .
• Проверяет сообщения DHCP, полученные из ненадежных источников, и отфильтровывает недействительные сообщения.
• Ограничивает скорость трафика DHCP из доверенных и ненадежных источников.
• Создает и поддерживает базу данных привязок DHCP snooping, которая содержит информацию о ненадежных хостах с арендованными IP-адресами.
• Использует базу данных привязки DHCP snooping для проверки последующих запросов от ненадежных хостов.
dhcploc.exe - это самый быстрый и удобный способ в системах Windows. Он доступен в XP Инструментах поддержки. Инструменты поддержки есть на каждом OEM/retail XP диске, но могут или не могут быть на "дисках восстановления") предоставлены некоторыми OEM. Вы также можете скачать их с MS.
Это простой инструмент командной строки. Вы запускаете dhcploc {yourIPaddress} и затем нажимаете клавишу "d", чтобы сделать поддельное обнаружение. Если вы оставите его работающим без нажатия каких-либо клавиш, он будет отображать каждый запрос DHCP и отвечать на него. Нажмите "q", чтобы выйти.
Scapy - это инструмент создания пакетов, основанный на python), который подходит для таких задач сортировки. Есть пример того, как именно это сделать здесь .
Чтобы расширить комментарий l0c0b0x об использовании bootp.type == 2
в качестве фильтра. Фильтр bootp.type доступен только в Wireshark/tshark. Он недоступен в tcpdump, в который мне поверило контекстное расположение его комментария.
Тшарк отлично работает для этого.
Наша сеть разделена на многочисленные широковещательные домены, каждый из которых имеет собственный зонд на основе Linux с точкой присутствия в "локальном" широковещательном домене и административной подсети тем или иным способом. Tshark в сочетании с ClusterSSH позволяет мне легко искать DHCP-трафик или (что-нибудь еще в этом отношении) в дальнейших углах сети.
Это найдет ответы DHCP, использующие Linux:
# ifconfig ethX promisc
# tshark -i ethX -n port 68 -R 'bootp.type == 2'
как только вы установили, что в сети есть мошеннический dhcp-сервер, я нашел самый быстрый способ его решения ...
Отправьте электронное письмо всей компании:
"Кто из вас добавил беспроводной маршрутизатор в локальную сеть, вы убили интернет для всех остальных"
ожидать быстрого ответа или исчезновения конфликтующего устройства :)
Вы можете использовать RogueChecker от Microsoft:
исходная ссылка: http://blogs.technet.com/b/teamdhcp/archive/2009/07/03/rogue-dhcp-server-detection.aspx
ссылка для скачивания: https://web.archive.org/web/20141022013752/http://blogs.technet.com/b/teamdhcp/archive/2009/07/03/rogue-dhcp-server- detection.aspx
также прочитайте эту информацию:
Отключите основной DHCP-сервер и (заново) настройте соединение.
Если вы получаете IP-адрес, у вас есть мошенник.
Если у вас есть удобный Linux, стандартный dhcpclient сообщает вам IP-адрес DHCP-сервера (иначе вы можете прослушать трафик, чтобы увидеть, откуда пришел ответ DHCP).
Есть несколько способов, если вы используете небольшую сеть, самый простой способ - это отключить/отключить/отключить ваш dhcp сервер, а затем запустить ipconfig/renew или аналогичный на клиенте, и если вы получаете и IP, у вас есть что-то не так на вашем сеть.
Другим способом было бы использовать Wireshark захват/анализатор пакетов для просмотра сетевого трафика и поиска DHCP-соединений. Существует лабораторная таблица, как сделать это доступным из здесь .
Есть также несколько доступных утилит, которые используют один из следующих протоколов DHCP Explorer другой - это пробник DHCP, который вы упомянули в своем первоначальном посте.
Вы можете выполнить пинг в ваших сетях, а затем сравнить его с количеством аренды DHCP, выданной вашим DHCP-сервером.
Вам необходимо иметь общее представление о количестве статических устройств (возможно, интерфейсов маршрутизаторов и принтеров), которые слегка искажают это число, но это должен быть быстрый и точный способ их идентификации в нескольких сетях.
в Debian/Ubuntu также есть возможность использовать dhcpdump
и / или tcpdump
с помощью, например. dhclient
Используйте dhcpdump:
dhcpdump -i eth0
в одной оболочке/оболочке (eth0 или название вашего интерфейса)dhclient
в другой оболочке (он не должен успешно выполняться)dhcpdump
для получения информации (это должен быть отформатированный, информативный список наиболее подробной информации)Вариант 2, если вы не хотите использовать dhcpdump:
tcpdump -i eth0 -t -n > /tmp/my_file.txt
в одной оболочке/окне-t
= отключить отметку времени // -n
= отключить разрешение имен, только IP-адрес, без имени сервера (для RHEL/centos используйте -nn))dhclient
в другой оболочке (он не должен успешно выполняться)* sidenote: вероятно, должны быть установлены tcpdump и dhcpdump (например: Sudo apt get install tcpdump dhcpdump
); dhcpdump зависит от tcpdump
Я предлагаю запустить два терминала, один для мониторинга и другой для отправки запроса. Terminal1 покажет ответы от всех существующих серверов DHCP, включая MAC-адрес. Этот пример был запущен в Ubuntu:
Терминал1 (для мониторинга):
Sudo tcpdump -nelt udp port 68 | grep -i "boot. * reply"
tcpdump: подробный вывод подавлен, используйте -v или -vv для прослушивания полного декодирования протокола на enp2s0, тип соединения EN10MB (Ethernet), размер захвата 262144 байта 20: a6: 80: f9: 12: 2f> ff: ff: ff: ff: ff: ff, ethervip IPv4 (0x0800), длина 332: 192.168.1.1.67> 255.255.255.255.68: BOOTP/DHCP, Ответ, длина 290 00: 23: cd: c3: 83: 8a> ff: ff : ff: ff: ff: ff, ethervip IPv4 (0x0800), длина 590: 192.168.1.253.67> 255.255.255.255.68: BOOTP/DHCP, Reply, длина 548
Терминал2 (для отправки запроса):
Sudo nmap --script broadcast-dhcp-Discover -e eth0
Начало Nmap 7.01 ( https://nmap.org ) в 2019-10-13 21:21 Результаты сценария предварительного сканирования EEST: | broadcast-dhcp-Discover : | Ответ 1 из 1: | Предложенный IP: 192.168.1.228 | Тип сообщения DHCP: DHCPOFFER | Время аренды IP-адреса: 2h00m00s | Идентификатор сервера: 192.168.1.1 | Маска подсети: 255.255.255.0 | Маршрутизатор: 192.168.1.1 | _ Домен Сервер имен: 8.8.8.8, 8.8.4.4 ВНИМАНИЕ: цели не указаны, поэтому отсканировано 0 хостов. Nmap выполнено: 0 IP-адресов (0 хостов вверх) отсканировано за 0,94 секунды
Этот терминал мониторинга нужен только для просмотра всех ответов (nmap может отображать только первый ответ).