惊雷无声 发表于 2023-9-8 18:04:59

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

相关参数:

  ·Kali攻击机一台
  ·ENSP模拟器
 
拓扑图:

https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230907233330685-593584731.png
 
 
  实验说明:
  ·通过配置DHCP_Server,使得192.168.150.0/24子网内的终端能够自动获取IP地址及DNS
  ·通过配置SW交换机,开启DHCP Snooping功能,用于保证DHCP客户端从合法的DHCP服务器获取IP地址
  ·Kali攻击机接入192.168.150.0/24内网中,获取内网IP地址,使用两种DHCP攻击方式并抓包进行分析(Wireshark)
 
  实验步骤:
  ·Kali如何接入ENSP网络(Kali接入VMnet8网络):
    1.ENSP中拖出Cloud设备
https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230907224108894-2128867033.png
    2.1设置Cloud设备的相关参数(图解)
https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230907224345433-201553762.png
    2.2设置Cloud设备的相关参数(图解)
https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230907224459818-2043985271.png
 
 
  ·SW交换机配置DHCP Snooping,配置接入口启用DHCP Snooping功能
#启用DHCP功能
dhcp enable

#启用DHCP Snooping功能
dhcp snooping enable

#将接入终端接口全部启用DHCP Snooping功能
port-groupgroup-member GigabitEthernet 0/0/1 toGigabitEthernet 0/0/20
dhcp snoopingenable

#将DHCP_Server连接端口设置为信任接口
interfaceg0/0/24
dhcp snoopingtrusted   DHCP Snooping绑定表如何形成的:
    设备根据DHCP服务器回应的DHCP ACK报文信息生成DHCP Snooping绑定表(提取其中的Chaddr-MAC与IP Address、接口编号、VLAN进行绑定)
https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908000119023-1493455719.png
 
    
  ·DHCP_Server创建地址池,并分配地址给内网终端
    DHCP_Server配置:
 
sysname DHCP_Server

#IP地址配置
interface GigabitEthernet0/0/0
ip address 192.168.150.254 255.255.255.0


#DHCP服务器配置 配置DNS服务器为114.114.114.114/8.8.8.8
dhcp enable
ip pool IP_150
gateway-list 192.168.150.254
network 192.168.150.0 mask 255.255.255.0
dns-list 114.114.114.114 8.8.8.8


interface GigabitEthernet0/0/0
dhcp select global 
 
 
    DHCP_Client查看是否获取到IP地址
     https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230907225734001-1579183384.png
    Kali获取IP地址
      1.1关闭VMnet8 DHCP分配情况:
        https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230907225933588-1846065915.png
            https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230907230205664-500106821.png  
      2.Kali自动获取IP地址:
        https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230907231150287-741879731.png          https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230907231417770-1800725461.png
#第一次登录Kali 用的是用户账号进行登录 我们需要修改为管理员进行登录
sudo passwd root
#设置Root的密码
#再次确认Root的密码
su root #切换root进行登录<br><br>dhclient #自动获取IP地址<br><br>ip a #查看获取到的IP地址 
      3.DHCP_Server服务器查看IP地址分配情况   
       https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230907231814862-237140489.png
display ip pool name Ip_150 used 
Kail DHCP饿死攻击的原理:

  攻击原理:攻击者持续大量地向DHCP Server申请IP地址,直到耗尽DHCP Server地址池中的IP地址,导致DHCP Server不能给正常的用户进行分配
 
Kali DHCP饿死攻击(一):

  ·使用的DHCP攻击模块dhcpstarv(仅修改Chaddr地址,不修改源MAC地址)

    原理:
      ·当交换机配置了DHCP Snooping后,会自动提取DHCP ACK报文中的IP地址与目的接口的MAC所绑定
       ·但只修改Chaddr地址,既能占用DHCP服务器的IP地址,报文也不会被默认配置的DHCP Snooping丢弃(DHCP Server是根据请求报文中的Chaddr字段来为其一一分配IP地址)
    Kali安装dhcpstarv库:
      由于博主Kali版本为2021,默认好像是没有安装dhcpstarv库
        1.修改更新apt更新源
https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908003112620-404553834.png
#修改镜像源
vi /etc/apt/sources.list


#按i写入 将这两段写入到sources.list文件中 如何再按ESC 按: 输入wr 保存写入
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib<br><br>#更新源&更新所有文件<br>apt-get update & apt-get upgrade  
        2.指定安装dhcpstarv库
#安装dhcpstarv库
apt-get install dhcpstarvhttps://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908003531092-1683023262.png
 
 
 
  Kali使用dhcpstarv攻击DHCP服务器:
      使用教程:
<strong>#启用dhcpstarv攻击 出接口为eth0接口(连接DHCP服务器的接口)<br>dhcpstarv攻击时,源MAC地址是不会改变的,只有Chaddr地址会变化<br>    dhcpstarv -v(前台显示) -i(指定网卡) [网卡名称]
dhcpstarv -v -i eth0</strong>https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908004929327-110666365.png
我们可以看到dhcpstarv一直在向192.168.150.0/24网段疯狂发送dhcp Request报文请求IP地址。
 
作为DHCP Server服务器也在疯狂的回复DHCP Offer报文,当Kali收到后窃喜的继续发请求占用DHCP服务器地址,DHCP Server服务器以为DHCP_Client获取地址,于是发送DHCP ACK确认
https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908005300229-606599956.png
 
 这样修改Chaddr的情况,DHCP Snooping并不能进行防御,我们可以看到DCHP Snooping绑定表也被占满了:
https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908005416131-480023641.png
 
DHCP_Server服务器的IP地址也被占满了(测试的时候,不要攻击太久 会造成卡顿)
https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908094858804-636227881.png
 
 
   
  SW防御仅修改Chaddr地址的攻击手段:
    我们可以看到dhcpstarv攻击时,源MAC地址是不变的,只有Chaddr地址是在变化的
https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908095603082-323409466.png
    所以我们在SW上开启Snooping Check检查,检查源MAC与Chaddr是否一致(一致则通过,不一致则丢弃) 

      SW:
#将接入接口都配置check检查(检查chaddr和源MAC是否一致)
port-groupgroup-memberGigabitEthernet 0/0/1 to GigabitEthernet 0/0/20
dhcp snooping check dhcp-chaddr enable  
    
    Kali再进行dhcpstarv攻击:
      1.我们先清空DHCP地址池
<DHCP_Server>resetip pool name Ip_150 all https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908100523119-1899406588.png
 
      2.Kali再进行dhcpstarv攻击    
dhcpstarv -v -i eth0 
       3.检查(交换机开启Debug调试、查看DHCP_Server是否分配IP地址)
 
#因为我们是Console接入 只需要在Console弹出Debug消息即可
<SW>terminal debugging

#关闭其他Debug消息(避免消息太多)
<SW>undo debuggingall

#开启DHCP snooping error错误消息
<SW>debugging dhcp snooping error 
https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908102006369-211200749.png
      我们再来检查一下DHCP_Server地址池是否被占满?
        https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908102203611-1185690845.png
         当攻击者仅修改Chaddr进行DHCP攻击时,我们可以使用Chaddr Check检查,检查S-MAC与Chaddr地址是否相同,相同则通过,不相同则丢弃
 
 
Kali DHCP饿死攻击(二):

  ·使用的DHCP攻击模块yersinia(Chaddr与S-MAC一同修改)
  使用教程:
#打开yersinia图形化界面
yersinia -G 
https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908111540666-1539612514.png
  Wireshark抓包分析(抓取DHCP Discover报文,查看S-MAC与Chaddr地址是否一同修改)
https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908111734528-1034303417.png
   DHCP_Server查看地址是否被占用
 
https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908112121231-1435768221.png
   我们可以看到当Chaddr和S-MAC同时修改时,Chaddr Check检查并不能起到作用,那我们该怎么办呢?
    ·我们可以发现,当Kali频繁切换MAC地址,发送DHCP Discover报文时,我们的MAC地址表也会存在很多的MAC地址
https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908124724851-384012064.png
     ·我们可以在SW开启端口安全,设置最大MAC地址数为1,并配置超出关闭端口
 
      SW:
 
#我们将接入端口都设置最大MAC数为1,配置MAC老化时间为60s
port-groupgroup-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/20
port-security enable
port-security protect-action shutdown #超过最大MAC数则关闭端口

#配置端口安全shutdown恢复时间5分钟
error-down auto-recovery cause port-security interval 300


#设置MAC地址老化时间 S5700没有该命令
mac-address aging-time 60 
Kali再次进行攻击:
我们会发现端口直接被关闭了
      
https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908130626699-57055870.png
 DHCP_Server查看分配情况:
https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908131504221-1379230702.png
 防御成功!
 
上面就是基于ENSP,DHCP饿死攻击的防御,谢谢大家!
https://img2023.cnblogs.com/blog/3274427/202309/3274427-20230908131635725-1483369643.png
 
 
  
 
 

        

      
 
        
  
 
 
 
 
 
 
    
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: DHCP饿死攻击及防御(基于ENSP模拟器、Kali攻击机实现)