确定我的网络内是否存在恶意 DHCP 服务器的最佳方法是什么?
我想知道大多数管理员如何处理这类问题。我发现DHCP 探测通过搜索,我想尝试一下。有人用过吗?(在花时间编译和安装之前我想知道)。
您是否知道任何有用的工具或最佳实践来查找恶意 DHCP 服务器?
答案1
一个简单的方法是在计算机上运行 tcpdump/wireshark 之类的嗅探器并发送 DHCP 请求。如果您看到除真实 DHCP 服务器之外的任何请求,则说明存在问题。
答案2
回顾并补充一些其他答案:
暂时禁用生产 DHCP 服务器并查看其他服务器是否响应。
您可以在 Windows 机器上运行来获取服务器的 IP 地址ipconfig /all
,然后通过使用查找该 IP 地址来获取 MAC 地址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 服务器:
答案3
我建议启动两个终端,一个用于监控,另一个用于发送请求。Terminal1 将显示所有现有 DHCP 服务器的响应,包括 MAC 地址。此示例在 Ubuntu 上运行:
终端1(用于监控):
sudo tcpdump -nelt udp port 68 | grep -i "boot.*reply"
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
终端2(用于发送请求):
sudo nmap --script broadcast-dhcp-discover -e eth0
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
只需要该监控终端就可以查看所有响应(nmap 只能显示第一个响应)。