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

打印 上一主题 下一主题

主题 884|帖子 884|积分 2652

相关参数:

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


 
 
  实验说明:
  ·通过配置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设备

    2.1设置Cloud设备的相关参数(图解)

    2.2设置Cloud设备的相关参数(图解)

 
 
  ·SW交换机配置DHCP Snooping,配置接入口启用DHCP Snooping功能
  1. #启用DHCP功能
  2. dhcp enable
  3. #启用DHCP Snooping功能
  4. dhcp snooping enable
  5. #将接入终端接口全部启用DHCP Snooping功能
  6. port-group  group-member GigabitEthernet 0/0/1 to  GigabitEthernet 0/0/20
  7. dhcp snooping  enable
  8. #将DHCP_Server连接端口设置为信任接口
  9. interface  g0/0/24
  10. dhcp snooping  trusted
复制代码
  DHCP Snooping绑定表如何形成的:
    设备根据DHCP服务器回应的DHCP ACK报文信息生成DHCP Snooping绑定表(提取其中的Chaddr-MAC与IP Address、接口编号、VLAN进行绑定)

 
    
  ·DHCP_Server创建地址池,并分配地址给内网终端
    DHCP_Server配置:
 
  1. sysname DHCP_Server
  2. #IP地址配置
  3. interface GigabitEthernet0/0/0
  4. ip address 192.168.150.254 255.255.255.0
  5. #DHCP服务器配置 配置DNS服务器为114.114.114.114/8.8.8.8
  6. dhcp enable
  7. ip pool IP_150
  8. gateway-list 192.168.150.254
  9. network 192.168.150.0 mask 255.255.255.0
  10. dns-list 114.114.114.114 8.8.8.8
  11. interface GigabitEthernet0/0/0
  12. dhcp select global
复制代码
 
 
 
    DHCP_Client查看是否获取到IP地址
     
    Kali获取IP地址
      1.1关闭VMnet8 DHCP分配情况:
        
              
      2.Kali自动获取IP地址:
                  
  1. #第一次登录Kali 用的是用户账号进行登录 我们需要修改为管理员进行登录
  2. sudo passwd root
  3.   #设置Root的密码
  4.   #再次确认Root的密码
  5. su root #切换root进行登录<br><br>dhclient #自动获取IP地址<br><br>ip a #查看获取到的IP地址
复制代码
 
      3.DHCP_Server服务器查看IP地址分配情况   
       
  1. 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更新源
  1. [/code][code]#修改镜像源
  2. vi /etc/apt/sources.list
  3. #按i写入 将这两段写入到sources.list文件中 如何再按ESC 按: 输入wr 保存写入
  4. deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
  5. deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib<br><br>#更新源&更新所有文件<br>apt-get update & apt-get upgrade
复制代码
  1.  
复制代码
 
        2.指定安装dhcpstarv库
  1. #安装dhcpstarv库
  2. apt-get install dhcpstarv
复制代码

 
 
 
  Kali使用dhcpstarv攻击DHCP服务器:
      使用教程:
  1. <strong>#启用dhcpstarv攻击 出接口为eth0接口(连接DHCP服务器的接口)<br>  dhcpstarv攻击时,源MAC地址是不会改变的,只有Chaddr地址会变化<br>    dhcpstarv -v(前台显示) -i(指定网卡) [网卡名称]  
  2. dhcpstarv -v -i eth0</strong>
复制代码

我们可以看到dhcpstarv一直在向192.168.150.0/24网段疯狂发送dhcp Request报文请求IP地址。
 
作为DHCP Server服务器也在疯狂的回复DHCP Offer报文,当Kali收到后窃喜的继续发请求占用DHCP服务器地址,DHCP Server服务器以为DHCP_Client获取地址,于是发送DHCP ACK确认

 
 这样修改Chaddr的情况,DHCP Snooping并不能进行防御,我们可以看到DCHP Snooping绑定表也被占满了:

 
DHCP_Server服务器的IP地址也被占满了(测试的时候,不要攻击太久 会造成卡顿)

 
 
   
  SW防御仅修改Chaddr地址的攻击手段:
    我们可以看到dhcpstarv攻击时,源MAC地址是不变的,只有Chaddr地址是在变化的

    所以我们在SW上开启Snooping Check检查,检查源MAC与Chaddr是否一致(一致则通过,不一致则丢弃) 

      SW:
  1. #将接入接口都配置check检查(检查chaddr和源MAC是否一致)
  2. port-group  group-member  GigabitEthernet 0/0/1 to GigabitEthernet 0/0/20
  3.   dhcp snooping check dhcp-chaddr enable
复制代码
 
    
    Kali再进行dhcpstarv攻击:
      1.我们先清空DHCP地址池
  1. <DHCP_Server>reset  ip pool name Ip_150 all
复制代码

 
      2.Kali再进行dhcpstarv攻击    
  1. dhcpstarv -v -i eth0
复制代码
 
       3.检查(交换机开启Debug调试、查看DHCP_Server是否分配IP地址)
 
  1. #因为我们是Console接入 只需要在Console弹出Debug消息即可
  2. <SW>terminal debugging
  3. #关闭其他Debug消息(避免消息太多)
  4. <SW>undo debugging  all
  5. #开启DHCP snooping error错误消息
  6. <SW>debugging dhcp snooping error
复制代码
 

      我们再来检查一下DHCP_Server地址池是否被占满?
        
         当攻击者仅修改Chaddr进行DHCP攻击时,我们可以使用Chaddr Check检查,检查S-MAC与Chaddr地址是否相同,相同则通过,不相同则丢弃
 
 
Kali DHCP饿死攻击(二):

  ·使用的DHCP攻击模块yersinia(Chaddr与S-MAC一同修改)
  使用教程:
  1. #打开yersinia图形化界面
  2. yersinia -G
复制代码
 

  Wireshark抓包分析(抓取DHCP Discover报文,查看S-MAC与Chaddr地址是否一同修改)

   DHCP_Server查看地址是否被占用
 

   我们可以看到当Chaddr和S-MAC同时修改时,Chaddr Check检查并不能起到作用,那我们该怎么办呢?
    ·我们可以发现,当Kali频繁切换MAC地址,发送DHCP Discover报文时,我们的MAC地址表也会存在很多的MAC地址

     ·我们可以在SW开启端口安全,设置最大MAC地址数为1,并配置超出关闭端口
 
      SW:
 
  1. #我们将接入端口都设置最大MAC数为1,配置MAC老化时间为60s
  2. port-group  group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/20
  3.   port-security enable
  4.   port-security protect-action shutdown #超过最大MAC数则关闭端口
  5. #配置端口安全shutdown恢复时间5分钟
  6. error-down auto-recovery cause port-security interval 300
  7. #设置MAC地址老化时间 S5700没有该命令
  8. mac-address aging-time 60
复制代码
 
Kali再次进行攻击:
我们会发现端口直接被关闭了
      

 DHCP_Server查看分配情况:

 防御成功!
 
上面就是基于ENSP,DHCP饿死攻击的防御,谢谢大家!

 
 
  
 
 

        

      
 
        
  
 
 
 
 
 
 
    
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊雷无声

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表