关于DHCP攻击有如下几类攻击方式:
 
一、耗尽DHCP地址池
   通过随机生成源MAC地址,然后伪造DHCPDISCOVER数据包。耗尽DHCP服务器地址池。   免费的攻击工具:  Yersinia 和 Gobbler
     Gobbler是专门用于攻击DHCP的工具。具有回应DHCP服务器周期发送的ARP请求数据包和ICMP echo(回显)数据包   的能力。从而对抗DHCP服务器回收IP地址的功能。
 
二、利用DHCP无赖服务器劫持流量
   假冒DHCP服务器抢先响应客户端的DHCPDISCOVER消息。这样就可以给目标客户端分配IP地址、网关、DNS服务器等信息。引导受害者访问伪造的网站从而窃取受害者敏感信息。
 
对策:
针对第一种攻击,普通攻击模式 在攻击者接入的交换机LAN口会学习到大量MAC地址。利用之前MAC地址攻击一章提到的交换机的限制端口学习MAC数量配置即可解决。
               高级攻击模式 攻击者使用单一MAC地址通过对Client Hardware Address(客户硬件地址)的关键字随机填充。使得单一MAC打到每个DHCPDISCOVER数据包都对DHCP服务器单独而有效。
               对于此种教高级的攻击模式,端口安全的配置已经无法有效解决。此时我们使用DHCP Snooping机制来解决此问题。至于DHCP Snooping 自己去找资料学习吧...
 
另外第二种攻击方式也可以利用DHCP Snooping解决
 

DHCP Snooping是DHCP(Dynamic Host Configuration Protocol)的一种安全特性,通过截获DHCP Client和DHCP Server之间的DHCP报文并进行分析处理,可以过滤不信任的DHCP报文并建立和维护一个DHCP Snooping绑定表。该绑定表包括MAC地址、IP地址、租约时间、绑定类型、VLAN ID、接口等信息。

DHCP Snooping通过记录DHCP Client的IP地址与MAC地址的对应关系,保证合法用户能访问网络,作用相当于在DHCP Client和DHCP Server之间建立一道防火墙。

DHCP Snooping可以解决设备应用DHCP时遇到DHCP DoS(Denial of Service)攻击、DHCP Server仿冒攻击、DHCP仿冒续租报文攻击等问题。
 

攻击类型

DHCP Snooping工作模式

DHCP Server仿冒者攻击

配置接口状态为信任(Trusted)/不信任(Untrusted)

改变CHADDR值的DoS攻击

检查DHCP报文的CHADDR字段

仿冒DHCP续租报文攻击

检查DHCP Request报文是否匹配DHCP Snooping绑定表

DHCP报文洪泛攻击

限制DHCP报文的上送速率

交换机安全学习笔记 第五章 DHCP缺陷攻击的更多相关文章

  1. 交换机安全学习笔记 第六章 IPV4 ARP攻击

    ARP欺骗攻击 常用工具:  dsniff(Linux/windows).ettercap(Linux/windows).cain(仅windows). ARP欺骗攻击的目的是嗅探发往某主机的所有IP ...

  2. Programming Entity Framework-dbContext 学习笔记第五章

    ### Programming Entity Framework-dbContext 学习笔记 第五章 将图表添加到Context中的方式及容易出现的错误 方法 结果 警告 Add Root 图标中的 ...

  3. [HeadFrist-HTMLCSS学习笔记]第五章认识媒体:给网页添加图像

    [HeadFrist-HTMLCSS学习笔记]第五章认识媒体:给网页添加图像 干货 JPEG.PNG.GIF有何不同 JPEG适合连续色调图像,如照片:不支持透明度:不支持动画:有损格式 PNG适合单 ...

  4. 【马克-to-win】学习笔记—— 第五章 异常Exception

    第五章 异常Exception [学习笔记] [参考:JDK中文(类 Exception)] java.lang.Object java.lang.Throwable java.lang.Except ...

  5. 《Spring实战》学习笔记-第五章:构建Spring web应用

    之前一直在看<Spring实战>第三版,看到第五章时发现很多东西已经过时被废弃了,于是现在开始读<Spring实战>第四版了,章节安排与之前不同了,里面应用的应该是最新的技术. ...

  6. opencv图像处理基础 (《OpenCV编程入门--毛星云》学习笔记一---五章)

    #include <QCoreApplication> #include <opencv2/core/core.hpp> #include <opencv2/highgu ...

  7. 学习笔记 第五章 使用CSS美化网页文本

    第五章   使用CSS美化网页文本 学习重点 定义字体类型.大小.颜色等字体样式: 设计文本样式,如对齐.行高.间距等: 能够灵活设计美观.实用的网页正文版式. 5.1 字体样式 5.1.1 定义字体 ...

  8. [汇编学习笔记][第五章[BX]和loop指令]

    第五章[BX]和loop指令 前言 定义描述性符号“()”来表示一个寄存器或一个内存单元的内容,比如: (ax)表示ax中的内容,(al)表示al的内容. 约定符号ideta表示常量. 5.1 [BX ...

  9. [Python学习笔记][第五章Python函数设计与使用]

    2016/1/29学习内容 第四章 Python函数设计与使用 之前的几页忘记保存了 很伤心 变量作用域 -一个变量已在函数外定义,如果在函数内需要修改这个变量的值,并将这个赋值结果反映到函数之外,可 ...

随机推荐

  1. WSL中使用npm install报错

    报错内容类似下面的格式.具体解决方法请看这里:https://github.com/Microsoft/WSL/issues/14 着重关注 https://github.com/Microsoft/ ...

  2. JAVA笔记9-多态(动态绑定、池绑定)

    1.动态绑定:执行期间(而非编译期间)判断所引用对象的实际类型,根据实际的类型调用相应方法. 2.多态存在的三个必要条件(同时):继承.重写.父类引用指向子类对象. 这三个条件满足后,当调用父类中被重 ...

  3. 【JZOJ5430】【NOIP2017提高A组集训10.27】图

    题目 有一个n个点的无向图,给出m条边,每条边的信息形如\(<x,y,c,r>\) 给出q组询问形如\(<u,v,l,r>\) 接下来解释询问以及边的意义 询问表示,一开始你在 ...

  4. [深度学习] 各种下载深度学习数据集方法(In python)

    一.使用urllib下载cifar-10数据集,并读取再存为图片(TensorFlow v1.14.0) # -*- coding:utf-8 -*- __author__ = 'Leo.Z' imp ...

  5. json代码——json序列化,json-parse,JSONstringify格式化输出,虚拟DOM

    JS对象转为类似json的字符串,对象->字符串叫序列化,字符串->对象      是反序列化 ㈠json序列化 <script> var shy = new Object() ...

  6. D. Treasure Hunting ( 思维题 , 贪心)

    传送门 题意: 在一个 n * m 的地图里,有 k 个宝藏,你的起点在 (1, 1), 每次你能 向下向右向左移动(只要在地图里):      现在,有 q 个安全的列, 你只有在这些列上面,你才能 ...

  7. [POI2011]DYN-Dynamite

    题目链接:Click here Solution: 直接做似乎不太可行,我们考虑二分 我们设\(f[x]\)表示以\(x\)为根的子树中选择了的节点到\(x\)的距离的最小值,初值为\(inf\) \ ...

  8. PHP 判断当前日期是否是法定节假日或者休息日 (原)

    //判断日期是不是节假日或者双休日接口 @param time [时间(时间戳或者Y-m-d都可)] public function get_type_by_date(){ $t = $_GET['t ...

  9. Hibernate理解?

    (1)Hibernate是对象关系映射框架,对JDBC进行非常轻量级的对象封装,是全自动的ORM框架,可以自动生成SQL语句.自动执行. (2)语言特点 <1>将对数据库的操作转换为对Ja ...

  10. Is JavaScript a pass-by-reference or pass-by-value language?

    Is JavaScript a pass-by-reference or pass-by-value language? A very detailed explanation about copyi ...