Назад | Перейти на главную страницу

Как узнать, есть ли в моей сети поддельный DHCP-сервер?

Как лучше всего определить, есть ли в моей сети мошеннический 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-зонд, о котором вы упомянули в своем исходном сообщении.

Вы можете выполнить ping-сканирование своих сетей, а затем сравнить его с количеством арендованных DHCP-серверов, выданных вашим DHCP-сервером.

Вам необходимо иметь общее представление о количестве статических устройств (возможно, интерфейсов маршрутизаторов и принтеров), которые будут немного искажать это число, но это должен быть быстрый и точный способ их идентификации в нескольких сетях.

на debian / ubuntu можно также использовать dhcpdump и / или tcpdump с помощью, например, dhclient

Используйте dhcpdump:

  • 1.а) запустить dhcpdump -i eth0 в одной оболочке / оболочке (eth0 или имя вашего интерфейса)
  • 1.b) начало dhclient в другой оболочке (она не обязательно должна работать успешно)
  • 1.c) посмотрите на вывод dhcpdump для информации (это должен быть хорошо отформатированный, информативный список самых подробностей)

Вариант 2, если вы не хотите использовать dhcpdump:

  • 2.а) запустить tcpdump -i eth0 -t -n > /tmp/my_file.txt в одной оболочке / окне
    (по желанию: -t = отключить отметку времени // -n = отключить разрешение имен, только IP-адрес, без имен серверов (для RHEL / centos используйте -nn))
  • 2.b) начало dhclient в другой оболочке (она не обязательно должна работать успешно)
  • 2.c) остановить запущенный tcpdump ()
  • 2.d) просмотрите файл /tmp/my_file.txt с помощью вашего любимого редактора и найдите такие вещи, как ".53" (порт DNS по умолчанию) / "NX" / "CNAME" / "A?" / «АААА» -

* 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 может показывать только первый ответ).