it-swarm.xyz

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

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

Мне интересно, как большинство администраторов подходят к таким проблемам. Я нашел DHCP Probe через поиск и подумал попробовать. У кого-нибудь был опыт с этим? (Я хотел бы знать, прежде чем тратить время на его компиляцию и установку).

Знаете ли вы какие-либо полезные инструменты или лучшие практики для поиска мошеннических серверов DHCP?

92
l0c0b0x

Один из простых способов - просто запустить сниффер, такой как tcpdump/wireshark, на компьютере и отправить запрос DHCP. Если вы видите предложения, отличные от вашего реального DHCP-сервера, то вы знаете, что у вас есть проблема.

54
Zoredache

Напомним и добавим к некоторым другим ответам:

Временно отключите производственный 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-серверов:

22
Jason Luther

dhcpdump , которая принимает форму ввода tcpdump и показывает только пакеты, связанные с DHCP. Помог мне найти руткит Windows, выдававший себя за поддельный DHCP в нашей локальной сети.

17
vartec

Подходы Wireshark/DHCP Explorer/DHCP Probe подходят для одноразовой или периодической проверки. Однако я бы порекомендовал посмотреть поддержку DHCP Snooping в вашей сети. Эта функция обеспечивает постоянную защиту от мошеннических DHCP-серверов в сети и поддерживается многими поставщиками оборудования.

Вот набор функций, как указано в Документы Cisco .

• Проверяет сообщения DHCP, полученные из ненадежных источников, и отфильтровывает недействительные сообщения.

• Ограничивает скорость трафика DHCP из доверенных и ненадежных источников.

• Создает и поддерживает базу данных привязок DHCP snooping, которая содержит информацию о ненадежных хостах с арендованными IP-адресами.

• Использует базу данных привязки DHCP snooping для проверки последующих запросов от ненадежных хостов.

15
Dave K

dhcploc.exe - это самый быстрый и удобный способ в системах Windows. Он доступен в XP Инструментах поддержки. Инструменты поддержки есть на каждом OEM/retail XP диске, но могут или не могут быть на "дисках восстановления") предоставлены некоторыми OEM. Вы также можете скачать их с MS.

Это простой инструмент командной строки. Вы запускаете dhcploc {yourIPaddress} и затем нажимаете клавишу "d", чтобы сделать поддельное обнаружение. Если вы оставите его работающим без нажатия каких-либо клавиш, он будет отображать каждый запрос DHCP и отвечать на него. Нажмите "q", чтобы выйти.

10
quux

Scapy - это инструмент создания пакетов, основанный на python), который подходит для таких задач сортировки. Есть пример того, как именно это сделать здесь .

9
Kyle Brandt

Чтобы расширить комментарий 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'
8
user62491

как только вы установили, что в сети есть мошеннический dhcp-сервер, я нашел самый быстрый способ его решения ...

Отправьте электронное письмо всей компании:

"Кто из вас добавил беспроводной маршрутизатор в локальную сеть, вы убили интернет для всех остальных"

ожидать быстрого ответа или исчезновения конфликтующего устройства :)

6
Shh now
3
juFo

Отключите основной DHCP-сервер и (заново) настройте соединение.

Если вы получаете IP-адрес, у вас есть мошенник.

Если у вас есть удобный Linux, стандартный dhcpclient сообщает вам IP-адрес DHCP-сервера (иначе вы можете прослушать трафик, чтобы увидеть, откуда пришел ответ DHCP).

3
Vinko Vrsalovic

Есть несколько способов, если вы используете небольшую сеть, самый простой способ - это отключить/отключить/отключить ваш dhcp сервер, а затем запустить ipconfig/renew или аналогичный на клиенте, и если вы получаете и IP, у вас есть что-то не так на вашем сеть.

Другим способом было бы использовать Wireshark захват/анализатор пакетов для просмотра сетевого трафика и поиска DHCP-соединений. Существует лабораторная таблица, как сделать это доступным из здесь .

Есть также несколько доступных утилит, которые используют один из следующих протоколов DHCP Explorer другой - это пробник DHCP, который вы упомянули в своем первоначальном посте.

3
Jona

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

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

2
Peter

в Debian/Ubuntu также есть возможность использовать dhcpdump и ​​/ или tcpdump с помощью, например. dhclient

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

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

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

  • 2.a) запустить 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

2
eli

Я предлагаю запустить два терминала, один для мониторинга и другой для отправки запроса. 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 может отображать только первый ответ).

1
ajaaskel