Как лучше всего определить, есть ли в моей сети мошеннический DHCP-сервер?
Мне интересно, как большинство администраторов подходят к подобным проблемам. я нашел DHCP-зонд через поиск, и подумал о том, чтобы попробовать. У кого-нибудь был опыт работы с этим? (Я хотел бы знать, прежде чем тратить время на его компиляцию и установку).
Знаете ли вы какие-либо полезные инструменты или рекомендации по обнаружению мошеннических DHCP-серверов?
Один из простых способов - просто запустить сниффер, например tcpdump / wirehark, на компьютере и отправить 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-серверов:
dhcpdump, который принимает форму ввода tcpdump и показывает только пакеты, относящиеся к DHCP. Помогло найти Windows с руткитами, выдающуюся за поддельный DHCP в нашей локальной сети.
Подходы Wireshark / DHCP explorer / DHCP Probe подходят для одноразовой или периодической проверки. Однако я бы рекомендовал изучить Отслеживание DHCP поддержка в вашей сети. Эта функция обеспечивает постоянную защиту от мошеннических DHCP-серверов в сети и поддерживается многими различными поставщиками оборудования.
Вот набор функций, как указано в Документы Cisco.
• Проверяет сообщения DHCP, полученные из ненадежных источников, и отфильтровывает недопустимые сообщения.
• Ограничивает скорость трафика DHCP из надежных и ненадежных источников.
• Создает и поддерживает базу данных привязки отслеживания DHCP, которая содержит информацию о ненадежных хостах с арендованными IP-адресами.
• Использует базу данных привязки отслеживания DHCP для проверки последующих запросов от ненадежных узлов.
dhcploc.exe это самый быстрый и удобный способ в системах Windows. Он доступен в инструментах поддержки XP. Инструменты поддержки находятся на каждом OEM / розничном диске XP, но могут находиться или не находиться на «дисках восстановления», предоставляемых некоторыми OEM-производителями. Вы также можете скачать их от MS.
Это простой инструмент командной строки. Ты бежишь dhcploc {yourIPaddress} а затем нажмите клавишу «d», чтобы сделать ложное открытие. Если оставить его включенным, не нажимая никаких клавиш, он будет отображать каждый DHCP-запрос и отвечать на него. Нажмите q, чтобы выйти.
Scapy - это инструмент для создания пакетов на основе Python, который хорошо подходит для таких задач сортировки. Вот пример, как именно это сделать Вот.
Чтобы расширить l0c0b0xкомментарий об использовании bootp.type == 2
как фильтр. Фильтр bootp.type доступен только в Wireshark / tshark. Он недоступен в tcpdump, чему меня склоняет контекстное расположение его комментария.
Tshark отлично подходит для этого.
Наша сеть разделена на множество широковещательных доменов, каждый со своим собственным зондом на базе Linux с точкой присутствия в "локальном" широковещательном домене и в административной подсети тем или иным образом. Царк в сочетании с ClusterSSH позволяет мне легко искать трафик DHCP или (что-то еще в этом отношении) в более удаленных уголках сети.
Это найдет ответы DHCP с использованием Linux:
# ifconfig ethX promisc
# tshark -i ethX -n port 68 -R 'bootp.type == 2'
как только вы установили, что в сети есть мошеннический сервер DHCP, я нашел самый быстрый способ решить эту проблему ...
Отправьте электронное письмо всей компании со словами:
"Кто из вас добавил беспроводной маршрутизатор в локальную сеть, вы убили Интернет для всех остальных"
ожидайте робкого ответа, или конфликтующее устройство быстро исчезнет :)
Отключите основной DHCP-сервер и (повторно) настройте соединение.
Если вы получаете IP-адрес, значит, у вас мошенник.
Если у вас есть под рукой Linux, стандартный dhcpclient сообщает вам IP-адрес DHCP-сервера (в противном случае вы можете прослушивать трафик, чтобы узнать, откуда пришел ответ DHCP).
Есть несколько способов, если вы используете небольшую сеть, самый простой способ - выключить / отключить / отключить ваш dhcp-сервер, а затем запустить ipconfig / refresh или аналогичный на клиенте, и если вы получите и IP, у вас есть что-то непонятное на вашем сеть.
Другой способ - использовать Wireshark Захват / анализатор пакетов, чтобы посмотреть на ваш сетевой трафик и найти соединения DHCP, есть лабораторный рабочий лист о том, как это сделать, доступный из Вот.
Существует также ряд доступных утилит, которые предназначены для этого: Проводник DHCP другой - 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
также прочтите эту информацию:
Вы можете выполнить ping-сканирование своих сетей, а затем сравнить его с количеством арендованных 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 порт 68 | grep -i "загрузка. * ответ"
tcpdump: подробный вывод подавлен, используйте -v или -vv для прослушивания полного декодирования протокола на enp2s0, тип канала EN10MB (Ethernet), размер захвата 262144 байта 20: a6: 80: f9: 12: 2f> ff: ff: ff: ff: ff: ff, ethertype 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, ethertype IPv4 (0x0800), длина 590: 192.168.1.253.67> 255.255.255.255.68: BOOTP / DHCP, ответ, длина 548
Терминал2 (для отправки запроса):
sudo nmap --script broadcast-dhcp-discover -e eth0
Запуск Nmap 7.01 ( https://nmap.org ) на 13.10.2019 21:21 Результаты сценария предварительного сканирования EEST: | Broadcast-dhcp-discover: | Ответ 1 из 1: | Предлагаемый IP-адрес: 192.168.1.228 | Тип сообщения DHCP: DHCPOFFER | Время аренды IP-адреса: 2ч00м00с | Идентификатор сервера: 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 может показывать только первый ответ).