⚠️ 免责声明

本文旨在教学网络安全知识,帮助读者理解 DHCP 协议的工作原理及潜在安全风险。所有技术内容仅供学习、研究和防御目的使用。

严禁将文中描述的技术用于任何非法活动,包括但不限于:

  • 未经授权的网络渗透测试
  • 干扰他人网络正常使用
  • 窃取他人网络数据或凭据
  • 实施中间人攻击等违法行为

任何不当使用所导致的法律后果由使用者自行承担,与作者及平台无关。


目录


一、DHCP 是什么?

**DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)**​

运行在 UDP​ 之上:

  • 客户端端口:68

  • 服务器端口:67

作用:自动给客户端分配 IP 地址 + 子网掩码 + 网关 + DNS + 其他网络参数,避免人工配置。


二、DHCP 工作流程(DORA 四步)

无论是家庭网络还是企业内网,DHCP 核心流程完全一致,称为 DORA

步骤名称方向源 IP目的 IP作用
DDiscover客户端 → 广播0.0.0.0255.255.255.255“谁给我 IP?”
OOffer服务器 → 广播/单播服务器 IP255.255.255.255 / 候选 IP“我有 IP,给你这个?”
RRequest客户端 → 广播0.0.0.0255.255.255.255“我要这个 IP,其他人别抢”
AACK服务器 → 广播/单播服务器 IP255.255.255.255 / 客户端 IP“确认,IP 归你了”

📌 关键点

  • Discover 和 Request 一定是广播(因为客户端还没有 IP)

  • Offer 和 ACK 可以是广播,也可以是单播(取决于客户端标志位)

  • 整个过程中没有任何身份认证


三、DHCP 工作范围(非常重要)

DHCP 只在“广播域(Broadcast Domain)”内生效

也就是说:

  • 不能跨路由器(三层设备)直接工作

  • 每个 VLAN = 一个广播域

  • 不同 VLAN 的 DHCP 广播互相不可见

这也是为什么:

  • DHCP 攻击只能影响同一个 VLAN

  • 企业网络里经常需要 DHCP Relay(中继)


四、示例拓扑

网络环境

  • 一台二层/三层交换机

  • 端口划分如下:

VLAN端口范围网段
VLAN 101–10192.168.10.0/24
VLAN 2011–20192.168.20.0/24
VLAN 3021–30192.168.30.0/24
  • 每个 VLAN 各有一台 DHCP 服务器(或在三层交换机上起 DHCP 服务)

  • PC1 插在 端口 2(VLAN 10)

  • PC2 插在 端口 12(VLAN 20)


五、DHCP 工作过程

场景:PC1 开机获取 IP

① Discover(广播)
  • PC1 发出 DHCP Discover

  • 源 IP:0.0.0.0

  • 目的 IP:255.255.255.255

  • 交换机行为:

    • 收到帧 → 判断来自 VLAN 10

    • 只向 VLAN 10 的端口(1–10)广播

    • 不会转发到 VLAN 20 / VLAN 30

✅ PC2 完全收不到这个包

② Offer(服务器响应)
  • VLAN 10 的 DHCP 服务器收到 Discover

  • 192.168.10.0/24 中选一个空闲 IP(如 .100

  • 发回 Offer:

    • IP: 192.168.10.100

    • Gateway: 192.168.10.1

    • DNS: 192.168.10.2

③ Request(再次广播)
  • PC1 广播 Request:“我要 192.168.10.100”

  • 同样只在 VLAN 10 内传播

④ ACK(确认)
  • DHCP 服务器确认租约

  • PC1 正式获得 IP


六、注意点

1️⃣ VLAN 天然隔离 DHCP

  • VLAN 10 的 DHCP 服务器永远影响不了 VLAN 20

  • 攻击者插在端口 12(VLAN 20),无法饿死 VLAN 10 的地址池

2️⃣ Rogue DHCP 的影响范围

如果你在端口 5 接了一台恶意 DHCP 服务器:

  • ✅ 只会影响 VLAN 10

  • ❌ 无法影响 VLAN 20 / 30

  • 除非交换机没做 DHCP Snooping + trust 口


七、补充-- DHCP 服务器只有一个怎么办

现实企业网络中,常见情况是:

  • 一台 DHCP 服务器

  • 三个 VLAN

这时就需要 DHCP Relay(中继)

PC1(VLAN10)
   ↓ Discover(广播)
Switch(三层)
   ↓ 单播转发 Discover 给 DHCP Server
DHCP Server
   ↓ Offer(单播)
Switch
   ↓ 转发给 PC1

中继不改变 DHCP 攻击本质:

  • 攻击仍然发生在 VLAN 内部

  • Rogue DHCP 若在中继前响应,依然有效


两大经典攻击

一、攻击一:DHCP Starvation(饥饿攻击)

1️⃣ 原理

DHCP 服务器对地址池的管理是先到先得,并且:

  • 一个 MAC 地址 ≈ 一个 IP 租约

  • 租约未到期前,IP 不会被回收

攻击者利用这一点:

用海量随机 MAC 地址疯狂发 DHCP Discover,把地址池全部占满

结果:

  • 合法客户端拿不到 IP

  • 网络可用性被破坏(DoS)

  • 为 Rogue DHCP 创造“真空期”


二、攻击二:Rogue DHCP Server(流氓 DHCP 服务器)

1️⃣ 原理

DHCP 协议没有任何身份认证

  • 客户端不验证服务器身份

  • 客户端通常接受第一个收到的 Offer

攻击者:

私自运行一个 DHCP 服务器,给客户端分配“被操控的网络配置”

其中最关键的配置是:

  • 默认网关 → 攻击者 IP

  • DNS → 攻击者 DNS

结果:

  • 客户端所有流量经过攻击者

  • 形成 中间人(MITM)


2️⃣ 流程

Step 1:攻击者接入 VLAN 10
  • IP:192.168.10.66

  • 开启 DHCP 服务

Step 2:客户端发起 Discover
PC1: DHCP Discover
     └─ 广播到 VLAN 10
Step 3:两个服务器同时响应
服务器Offer 内容
合法 DHCPIP: .100 / GW: .1 / DNS: .2
Rogue DHCPIP: .101 / GW: .66​ / DNS: .66
Step 4:客户端接受 Rogue Offer
  • 谁快听谁的

  • PC1 配置:

    • IP: 192.168.10.101

    • Gateway: 192.168.10.66(攻击者)

Step 5:流量被劫持
PC1 → Attacker (.66) → Gateway (.1) → Internet

攻击者可以:

  • 抓明文密码

  • 篡改 HTTP 流量

  • DNS 劫持

  • 发起后续内网攻击


3️⃣ 效果

中间人攻击(MITM)

  • 所有出口流量可控

凭据窃取

  • HTTP / FTP / Telnet 明文密码

  • Net-NTLMv2 哈希(配合 LLMNR 投毒)

持久化控制

  • 只要租约有效,控制不断

比 ARP 欺骗更“稳”

  • ARP 表会老化、会冲突

  • DHCP 配置通常在租期内稳定


⚠️ 再次提醒

网络安全技术是一把双刃剑。学习攻击原理是为了更好地防御,而不是实施攻击。

请务必遵守法律法规

  1. 仅在授权范围内进行安全测试
  2. 不攻击非自有或未经授权的网络
  3. 发现漏洞及时报告,而非利用
  4. 将所学知识用于保护网络,而非破坏

技术无罪,人心有责。愿我们共同维护清朗的网络空间。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐