Як дізнатись, чи є в моїй мережі негідний DHCP-сервер?


92

Який найкращий підхід до визначення, чи є в моїй мережі серверний DHCP-сервер?

Мені цікаво, як більшість адміністраторів підходять до подібних проблем. Я знайшов зонд DHCP шляхом пошуку і подумав про те, щоб його спробувати. Хтось із цим мав досвід? (Хотілося б знати, перш ніж витрачати час на його складання та встановлення).

Чи знаєте ви будь-які корисні інструменти або найкращі практики щодо пошуку шахрайських серверів DHCP?


2
MS Tool і дуже простий у використанні! Виявлення сервера Rogue DHCP - RogueChecker.zip blogs.technet.com/b/teamdhcp/archive/2009/07/03/…
aa.malta

Я знайшов офіційну посилання на ваше посилання aa.malta на social.technet.microsoft.com/wiki/contents/articles/…, але посилання більше не працює, починаючи з 2016 року. Він показує мені повідомлення в блозі з 2009 року, але я лише дивіться повідомлення про 6 липня та 29 червня. Здається, повідомлення про 3 липня не вказано URL-адресою посилання, яку ви опублікували. Схоже, МС видалила його з того, хто знає, з якої причини.
Даніель

Схоже, це пряме посилання (яке я знайшов на сайті Wordpress) працює для завантаження файлу з сервера Microsoft. Посилання працює з січня 2016 року. Оскільки URL-адреса - Microsoft, я вважаю, що їй можна довіряти, але я не даю жодних гарантій: blogs.technet.com/cfs-file.ashx/__key/…
Даніель,

Відповіді:


54

Один з простих методів - просто запустити sniffer на зразок tcpdump / wireshark на комп’ютері та надіслати DHCP-запит. Якщо ви бачите будь-які пропозиції, крім вашого справжнього сервера DHCP, знаєте, у вас є проблеми.


28
Допомагає використовувати такий фільтр: "bootp.type == 2" (лише для показу пропозицій DHCP та
перевірки

4
Використовуйте таку програму, як DHCP-Find ( softpedia.com/get/Network-Tools/Network-IP-Scanner/… ) спільно з TCPDump / Wireshark, щоб запустити DHCP-відповіді.
салюс

1
Чи можете ви запропонувати більш конкретне рішення?
тарабайте

@tarabyte Я не впевнений, яке рішення я або покращення я повинен запропонувати. Я думаю, що це питання має досить гарне висвітлення з десятка інших хороших відповідей? Мій варіант goto сьогодні - це просто налаштувати свої комутатори для блокування DHCP, як запропонував Джейсон Лютер. Чи було щось конкретне, що потрібно було краще висвітлити?
Зоредаче

2
Я очікував більше послідовності команд, які використовують tcpdump, arpі т.д. з явними параметрами та поясненням цих параметрів.
тарабайт

22

Щоб скласти резюме та додати до деяких інших відповідей:

Тимчасово відключіть свій виробничий сервер 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:


17

dhcpdump , який приймає форму входу tcpdump і показує лише пов'язані з DHCP пакети. Допоміг мені знайти rootkited Windows, представляючи себе фальшивим DHCP у нашій локальній мережі.


15

Підходи Wireshark / DHCP explorer / DHCP Probe підходять для одноразової або періодичної перевірки. Однак я рекомендую заглянути в підтримку DHCP Snooping у вашій мережі. Ця функція забезпечить постійний захист від шахрайських серверів DHCP в мережі та підтримується багатьма різними постачальниками обладнання.

Ось набір функцій, як зазначено в документах Cisco .

• Перевіряє DHCP-повідомлення, отримані з ненадійних джерел, і фільтрує недійсні повідомлення.

• Обмежує швидкість трафіку DHCP з надійних та ненадійних джерел.

• Створює та підтримує базу даних прив'язки DHCP, що містить інформацію про недовірених хостів з орендованими IP-адресами.

• Використовує базування даних прив'язки DHCP для перевірки наступних запитів від недовірених хостів.



10

dhcploc.exe - найшвидший і зручний спосіб у системах Windows. Він доступний у засобах підтримки XP. Інструменти підтримки є на кожному диску OEM / роздрібної XP, але можуть бути або не бути на "дисках відновлення", наданих деякими виробниками оригіналу. Ви також можете завантажити їх з MS.

Це простий інструмент командного рядка. Ви запускаєте dhcploc {yourIPaddress} і потім натискаєте клавішу 'd', щоб зробити фальшиве виявлення. Якщо залишити його без натискання жодної клавіші, він відобразить кожен запит DHCP і відповість, що він почує. Натисніть "q", щоб вийти.


Щойно використав це в поєднанні з вбивством окремих портів комутаторів для відстеження підлогого шахрайського сервера, з яким ми мали справу. Хороший матеріал!
DHayes

1
Ви все ще можете використовувати DHCPloc.exe в Windows 7: 1. Завантажте "Інструменти підтримки Windows XP Service Pack 2" з [тут] [1]. 2. Клацніть правою кнопкою миші на виконуваний файл і виберіть Властивості-> Сумісність, потім увімкніть Режим сумісності та встановіть його на "Windows XP (Service Pack 3)". 3. Встановіть як звичайно. DHCPLoc.exe відмінно працює на моїй установці Win7 x64. [1]: microsoft.com/en-us/download/details.aspx?id=18546
петрушка72

1
Щойно я помітив, що ви можете завантажити лише виконуваний файл з наступного місця, і він працює чудово під Win 10 x64: gallery.technet.microsoft.com/DHCPLOC-Utility-34262d82
PeterJ

9

Scapy - це інструмент для створення пакетів, який базується на пітоні, який підходить для таких завдань сортування. Тут є приклад того, як це зробити саме тут .


2
Нічого собі, я вважаю, що Скапі настільки потужний, коли заглиблювався в нього протягом декількох днів. Він перевершує хитрі інструменти, такі як dhcpfind.exe і dhcploc.exe. Scapy 2.2 може працювати на Linux і Windows - я спробував і те, і інше. Єдиний бар'єр - це те, що ти маєш знати мову програмування Python певною мірою, щоб використати його потужність.
Джимм Чен

Посилання, яке ви опублікували, порушено
Jason S

@JasonS Привіт. Я оновив посилання, але зміна очікує на експертну перевірку ... Дочекавшись,
Huygens

7

Щоб розширити коментар 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'

Дуже корисно, я витратив досить багато часу, намагаючись зрозуміти, чому я отримую tcpdump: syntax error. Навіть розмістив на ньому запитання, ваша відповідь розблокувала мене, дякую! networkengineering.stackexchange.com/questions/39534/…
Ілля Лінн

1
Крім того, я думаю, що щось змінилося з -R <Read filter>. Я отримую tshark: -R without -2 is deprecated. For single-pass filtering use -Y.. -Yпрацює чудово.
Ілля Лінн

6

як тільки ви встановили, що в мережі є негідний сервер dhcp, я знайшов найшвидший спосіб вирішити це ...

Надішліть круглу адресу електронної пошти всій компанії із зазначенням:

"хто з вас додав бездротовий маршрутизатор в локальну мережу, ви вбили Інтернет для всіх інших"

очікуйте, що швидка реакція зникає, або конфліктний пристрій швидко зникне :)


3

Вимкніть основний сервер DHCP і (пере) налаштуйте з'єднання.

Якщо ви отримаєте IP-адресу, ви отримаєте шахрая.

Якщо у вас під рукою Linux, стандартний dhcpclient повідомляє вам IP-адресу сервера DHCP (інакше ви можете нюхати трафік, щоб побачити, звідки прийшов відповідь DHCP).


2
Хоча це, звичайно, спрацює, зупинка виробничого сервера DHCP - це, мабуть, не найкращий підхід, якщо ви насправді стурбовані наданням послуги ...
Массімо

2
Залежить від кількості людей, яких ви обслуговуєте. Ви можете порушити послугу на пару хвилин у більшості випадків, і ніхто цього не помітить, особливо посеред дня, коли більшість людей вже мають свою оренду.
Вінко Врсалович

3

Є кілька способів, якщо у вашій малій мережі найпростіший спосіб - вимкнути / відключити / відключити ваш dhcp-сервер, а потім запустити ipconfig / поновити чи подібне на клієнті, і якщо ви отримаєте та IP, у вас є щось розбійне мережа.

Інший спосіб полягає у використанні Wireshark- захоплювача / аналізатора пакетів для перегляду мережевого трафіку та пошуку DHCP-з'єднань. Існує робочий лист лабораторії про те, як це зробити звідси .

Існує також ряд доступних програм, які пропонують це зробити - це провідник DHCP, інший - зонд DHCP, про який ви згадали у своєму початковому дописі.


3

2

Ви можете проаналізувати свої мережі, а потім порівняти їх із кількістю оренди DHCP, переданою вашим сервером DHCP.

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


0

на 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?" / "AAAA" -

* sidenote: tcpdump та dhcpdump, ймовірно, повинні бути встановлені (наприклад:) sudo apt get install tcpdump dhcpdump; dhcpdump залежить від tcpdump


0

Я пропоную запустити два термінали, один для моніторингу та інший для надсилання запиту. 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, ефірний 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, ефір IPv4 (0x0800), довжина 590: 192.168.1.253.67> 255.255.255.255.68: BOOTP / DHCP, Відповідь, довжина 548

Термінал2 (для надсилання запиту):

sudo nmap - сценарій трансляції-dhcp-Discover -e eth0

Починаючи з Nmap 7.01 ( https://nmap.org ) в 2019-10-13 21:21 Результати сценарію попереднього сканування EEST: | мовлення-dhcp-виявити: | Відповідь 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 може показати лише першу відповідь).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.