如何查找networking上是否存在恶意DHCP服务器?

确定我的networking中是否有stream氓DHCP服务器的最佳方法是什么?

我想知道大多数pipe理员如何处理这类问题。 我通过search发现了DHCP Probe ,并想过尝试一下。 有没有人有经验呢? (我想知道之前花时间来编译和安装)。

你知道任何有用的工具或最佳做法findstream氓DHCP服务器?

一个简单的方法是简单地在计算机上运行一个像tcpdump / wireshark这样的嗅探器,并发出一个DHCP请求。 如果你看到从你真实的DHCP服务器以外的任何报价,那么你知道你有一个问题。

回顾并添加一些其他答案:

暂时禁用您的生产DHCP服务器,看看其他服务器是否响应。

你可以通过在Windows机器上运行ipconfig /all来获取服务器的IP地址,然后通过使用arp -a来查找IP地址来获得MAC地址。

在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服务器可能不是一个好的select。

使用专门查找恶意DHCP服务器的工具

请参阅http://en.wikipedia.org/wiki/Rogue_DHCP了解工具列表(其中许多工具已在其他答复中列出)。

configuration交换机以阻止DHCP提供

大多数pipe理型交换机都可以configuration为防止恶意DHCP服务器:

dhcpdump ,它以tcpdump的formsinput,只显示与DHCP相关的数据包。 帮助我find了rootkit的Windows,在我们的局域网中伪装成DHCP。

Wireshark / DHCP浏览器/ DHCP探测方法适用于一次性或定期检查。 不过,我build议您查看您的networking上的DHCP监听支持。 此function将为networking上的恶意DHCP服务器提供持续保护,并得到许多不同的硬件供应商的支持。

这是思科文档中指出的function集。

•validation从不受信任的来源接收的DHCP消息,并过滤出无效的消息。

•速率限制来自可信和不可信来源的DHCPstream量。

•构build和维护DHCP监听绑定数据库,其中包含有关具有租用IP地址的不可信主机的信息。

•使用DHCP监听绑定数据库validation来自不受信任主机的后续请求。

dhcploc.exe是Windows系统上最快最方便的方式。 它在XP支持工具中可用。 支持工具位于每个OEM /零售XP磁盘上,但可能或不可能位于某些OEM提供的“恢复磁盘”上。 你也可以从MS 下载它们。

这是一个简单的命令行工具。 你运行dhcploc {yourIPaddress} ,然后按'd'键做一个虚假的发现。 如果在不按任何键的情况下保持运行状态,则会显示每个DHCP请求并接听。 按'q'退出。

Scapy是一个基于python的包制作工具,适用于这些sorting任务。 这里有一个如何做到这一点的例子。

扩展l0c0b0x关于使用bootp.type == 2作为filter的注释。 bootp.typefilter仅在Wireshark / tshark中可用。 它在tcpdump中是不可用的,他的评论的上下文位置使我相信。

Tshark完美地为此工作。

我们将networking划分为多个广播域,每个广域都有自己的基于Linux的探测器,在“本地”广播域和pipe理子网上以某种方式存在。 Tshark与ClusterSSH相结合,使我可以轻松地在networking的另一个angular落寻找DHCPstream量或(对于其他任何事情)。

这将使用LinuxfindDHCP答复:

 # ifconfig ethX promisc # tshark -i ethX -n port 68 -R 'bootp.type == 2' 

一旦你确定在networking上有一个stream氓DHCP服务器,我发现解决这个问题的最快捷的方法是…

给整个公司发一封电子邮件说:

“你们哪一个在局域网中增加了一个无线路由器,你已经为其他人杀死了互联网”

期待一个不客气的反应,或冲突的设备消失,快:)

禁用主DHCP服务器并(重新)configuration连接。

如果你得到一个IP地址,你有一个stream氓。

如果你有一个Linux的方便,标准的dhcpclient告诉你的DHCP服务器的IP地址(否则你可以嗅探stream量,看看DHCP响应来自哪里)。

有几种方法,如果你运行一个小的networking,最简单的方法是closures/禁用/取消你的DHCP服务器,然后在客户端上运行IPCONFIG /续订或类似的,如果你获得和IP你有什么rou onnetworking。

另一种方法是使用Wireshark数据包捕获器/分析器来查看您的networkingstream量并查找DHCP连接,这里有一个实验室工作表。

另外还有一些可用的实用程序,它们是您在原始文章中提到的DHCP探针。

您可以使用Microsoft的RogueChecker:

原始链接: 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

也读了这个资料:

https://social.technet.microsoft.com/wiki/contents/articles/25660.how-to-prevent-rogue-dhcp-servers-on-your-network.aspx

您可以对您的networking执行ping扫描,然后将其与您的DHCP服务器分配的DHCP租约数进行比较。

您需要对静态设备(路由器接口和打印机)的数量有一个大概的了解,这个设备会略微偏离这个数字,但是这应该是一个在多个networking上快速而准确地识别它们的方法。