我如何确定我的网络上是否存在恶意 DHCP 服务器?

l0c*_*b0x 100 networking dhcp

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

我想知道大多数管理员是如何处理这些问题的。我通过搜索找到了DHCP Probe,并考虑尝试一下。有没有人有过这方面的经验?(我想在花时间编译和安装之前知道)。

您知道寻找恶意 DHCP 服务器的任何有用工具或最佳实践吗?

Zor*_*che 56

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

  • 有助于使用以下过滤器:“bootp.type == 2”(仅用于显示 DHCP 提供,并查看是否有来自不同/未知来源的响应) (30认同)
  • 将 DHCP-Find (http://www.softpedia.com/get/Network-Tools/Network-IP-Scanner/DHCP-Find.shtml) 等程序与 TCPDump/Wireshark 结合使用以触发 DHCP 响应。 (4认同)
  • 我期待更多使用`tcpdump`、`arp`等带有显式参数和对这些参数的解释的命令序列。 (3认同)
  • 你能提供更具体的解决方案吗? (2认同)

Jas*_*her 24

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

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

您可以通过ipconfig /all在 Windows 机器上运行来获取服务器的 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 服务器:


var*_*tec 19

dhcpdump,它采用tcpdump 的输入形式并仅显示与 DHCP 相关的数据包。帮我找到了 rootkit 的 Windows,在我们的 LAN 中冒充假 DHCP。


Dav*_*e K 16

Wireshark / DHCP explorer / DHCP Probe 方法适用于一次性或定期检查。但是,我建议您查看网络上的DHCP 侦听支持。此功能将提供对网络上恶意 DHCP 服务器的持续保护,并得到许多不同硬件供应商的支持。

这是Cisco 文档中指示的功能集。

• 验证从不受信任的来源接收的 DHCP 消息并过滤掉无效消息。

• 对来自受信任和不受信任来源的 DHCP 流量进行速率限制。

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

• 利用DHCP 侦听绑定数据库来验证来自不受信任主机的后续请求。

  • 瞻博网络的 DHCP 侦听文档:http://www.juniper.net/techpubs/en_US/junos9.2/topics/concept/port-security-dhcp-snooping.html ProCurve 的 DHCP 侦听:http://h40060.www4.hp。 com/procurve/uk/en/pdfs/application-notes/AN-S12_ProCurve-DHCP-snooping-final.pdf (2认同)

quu*_*uux 11

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

这是一个简单的命令行工具。您运行dhcploc {yourIPaddress}然后按“d”键进行虚假发现。如果你不按任何键就让它运行,它会显示每个 DHCP 请求并回答它听到。按“q”退出。


Kyl*_*ndt 10

Scapy 是一个基于 Python 的数据包制作工具,非常适合这些排序任务。还有就是怎么做的正是这样的例子在这里

  • 哇,我研究了几天后发现 Scapy 太强大了。它超越了像 dhcpfind.exe 和 dhcploc.exe 这样的蹩脚工具。Scapy 2.2 可以在 Linux 和 Windows 上运行——我都试过。唯一的障碍是你必须在一定程度上了解 Python 编程语言才能利用它的力量。 (3认同)

小智 8

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

Tshark 非常适合于此。

我们将我们的网络划分为多个广播域,每个域都有自己的基于 Linux 的探测器,并以一种或另一种方式在“本地”广播域和管理子网上有一个存在点。Tshark 与ClusterSSH相结合,让我可以轻松查找 DHCP 流量或(与此相关的任何其他内容)在网络的其他角落。

这将使用 Linux 找到 DHCP 回复:

# ifconfig ethX promisc
# tshark -i ethX -n port 68 -R 'bootp.type == 2'
Run Code Online (Sandbox Code Playgroud)


小智 8

我建议启动两个终端,一个用于监控,另一个用于发送请求。终端 1 将显示来自所有现有 DHCP 服务器的响应,包括 MAC 地址。这个例子是在 Ubuntu 上运行的:

终端 1(用于监控):

sudo tcpdump -nelt udp port 68 | grep -i "boot.*reply"
Run Code Online (Sandbox Code Playgroud)
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp2s0, link-type EN10MB (Ethernet), capture size 262144 bytes
20:a6:80:f9:12:2f > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 332: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 290
00:23:cd:c3:83:8a > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 590: 192.168.1.253.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 548
Run Code Online (Sandbox Code Playgroud)

Terminal2(用于发送请求):

sudo nmap --script broadcast-dhcp-discover -e eth0
Run Code Online (Sandbox Code Playgroud)
Starting Nmap 7.01 ( https://nmap.org ) at 2019-10-13 21:21 EEST
Pre-scan script results:
| broadcast-dhcp-discover:
|   Response 1 of 1:
|     IP Offered: 192.168.1.228
|     DHCP Message Type: DHCPOFFER
|     IP Address Lease Time: 2h00m00s
|     Server Identifier: 192.168.1.1
|     Subnet Mask: 255.255.255.0
|     Router: 192.168.1.1
|_    Domain Name Server: 8.8.8.8, 8.8.4.4
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 0.94 seconds
Run Code Online (Sandbox Code Playgroud)

只需要该监控终端即可查看所有响应(nmap 只能显示第一个响应)。

  • 至少对于 linux 而言,与接受的答案和其他人的噪音不同,这很简单,并且已经安装了 tcpdump 和 nmap。帮助我快速追踪网络上的 rouge dhcp 服务器。 (2认同)

小智 7

一旦你确定网络上有一个流氓 dhcp 服务器,我发现解决它的最快方法是......

向整个公司发送一封电子邮件,说:

“你们谁在局域网中添加了无线路由器,你已经为其他人扼杀了互联网”

期待一个害羞的回应,或者冲突的设备会很快消失:)