3-L2-传统DHCP攻击简单介绍-day09
⚠️ 免责声明
本文旨在教学网络安全知识,帮助读者理解 DHCP 协议的工作原理及潜在安全风险。所有技术内容仅供学习、研究和防御目的使用。
严禁将文中描述的技术用于任何非法活动,包括但不限于:
- 未经授权的网络渗透测试
- 干扰他人网络正常使用
- 窃取他人网络数据或凭据
- 实施中间人攻击等违法行为
任何不当使用所导致的法律后果由使用者自行承担,与作者及平台无关。
目录
- 一、DHCP 是什么?
- 二、DHCP 工作流程(DORA 四步)
- 三、DHCP 工作范围(非常重要)
- 四、示例拓扑
- 五、DHCP 工作过程
- 六、注意点
- 七、补充-- DHCP 服务器只有一个怎么办
- 两大经典攻击
一、DHCP 是什么?
**DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)**
运行在 UDP 之上:
-
客户端端口:68
-
服务器端口:67
作用:自动给客户端分配 IP 地址 + 子网掩码 + 网关 + DNS + 其他网络参数,避免人工配置。
二、DHCP 工作流程(DORA 四步)
无论是家庭网络还是企业内网,DHCP 核心流程完全一致,称为 DORA:
| 步骤 | 名称 | 方向 | 源 IP | 目的 IP | 作用 |
|---|---|---|---|---|---|
| D | Discover | 客户端 → 广播 | 0.0.0.0 | 255.255.255.255 | “谁给我 IP?” |
| O | Offer | 服务器 → 广播/单播 | 服务器 IP | 255.255.255.255 / 候选 IP | “我有 IP,给你这个?” |
| R | Request | 客户端 → 广播 | 0.0.0.0 | 255.255.255.255 | “我要这个 IP,其他人别抢” |
| A | ACK | 服务器 → 广播/单播 | 服务器 IP | 255.255.255.255 / 客户端 IP | “确认,IP 归你了” |
📌 关键点:
-
Discover 和 Request 一定是广播(因为客户端还没有 IP)
-
Offer 和 ACK 可以是广播,也可以是单播(取决于客户端标志位)
-
整个过程中没有任何身份认证
三、DHCP 工作范围(非常重要)
✅ DHCP 只在“广播域(Broadcast Domain)”内生效
也就是说:
-
不能跨路由器(三层设备)直接工作
-
每个 VLAN = 一个广播域
-
不同 VLAN 的 DHCP 广播互相不可见
这也是为什么:
-
DHCP 攻击只能影响同一个 VLAN
-
企业网络里经常需要 DHCP Relay(中继)
四、示例拓扑
网络环境
-
一台二层/三层交换机
-
端口划分如下:
| VLAN | 端口范围 | 网段 |
|---|---|---|
| VLAN 10 | 1–10 | 192.168.10.0/24 |
| VLAN 20 | 11–20 | 192.168.20.0/24 |
| VLAN 30 | 21–30 | 192.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 内容 |
|---|---|
| 合法 DHCP | IP: .100 / GW: .1 / DNS: .2 |
| Rogue DHCP | IP: .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 配置通常在租期内稳定
⚠️ 再次提醒
网络安全技术是一把双刃剑。学习攻击原理是为了更好地防御,而不是实施攻击。
请务必遵守法律法规:
- 仅在授权范围内进行安全测试
- 不攻击非自有或未经授权的网络
- 发现漏洞及时报告,而非利用
- 将所学知识用于保护网络,而非破坏
技术无罪,人心有责。愿我们共同维护清朗的网络空间。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)