[na][dhcp]dhcp细枝末节&dhcp防攻
回顾了下,真是以前是一种感觉以后是一种感觉.
特点:
1.dhcp服务器上的配置的网关不一定要有这个ip
2.dhcp服务只是个类似数据库而已(如果不在一个lan).
3. 如果dhcp不在一个lan,pc广播所到交换机口的地方, 需要ip helper-address dhcp服务器地址, 广播转单播.
4. 协议弱点: 耗尽攻击+假冒攻击
dhcp数据包:
https://github.com/lannyMa/scripts/blob/master/pkgs/dhcp/
正常的dhcp机制学会了,更有意思的有dhcp攻击(1, dhcp耗尽攻击(交换机Port-Security防止) 2,dhcp假冒攻击,dhcp snooping解决)
正常的dhcp配置
dhcp实验环境

在server端
Router(config)#no ip dhcp conflict logging 关闭冲突记录信息
Router(config)#ip dhcp pool p1 启用DHCP功能,起个名字
Router(dhcp-config)#network 12.1.1.0 255.255.255.0 地址池
Router(dhcp-config)#default-router 12.1.1.1 配置网关
Router(dhcp-config)#dns-server 202.96.128.68 配置DNS
Router(dhcp-config)#lease 10 修改租期为10天
Router(config)#ip dhcp excluded-address 12.1.1.1 12.1.1.10 保留这十个地址,不下放,通常这些地址是给其它固定设备用的。
Debug ip dhcp server packet
Show ip dhcp binding 查看ip地址和mac地址的绑定
Router(config)#ip dhcp ping packets 3 DHCP服务器在分配一个地址之前,要先对这个地址PING一下(默认PING两个包),用来确定这个地址是否已被其他主机所用。
在client端:
Router(config-if)#ip address dhcp
show dhcp lease 显示学习到的地址
show dhcp server 显示学习到的其它信息
同一个广播域数据包


dhcp的ack报文必要性

dhcp中继-广播转单播

R2(config)#intface f0/0
R2(config-if)#ip helper-address 23.1.1.3 这个地址是DHCP服务器的地址
R3(config)#ip dhcp pool p1
R3(dhcp-config)#network 12.1.1.0 255.255.255.0
注意:在DHCP服务器上还必须有去PC所在网段的路由
注意:ip helper-address 命令默认情况下会转发8种UDP广播包,会占用带宽,建议关掉其他7种广播包的转发。
R1(config)#no ip forward-protocol udp ***
中继数据包:

OPTION 82
所谓Option 82是DHCP报文中的一个选项,支持option 82的接入交换机在做DHCP Relay的时候会在DHCP请求报文中的Option 82字段写入信息,包括交换机的MAC地址(这是对交换机的定位),以及DHCP请求是从交换机的那个端口进入网络的。利用这一功能,DHCP不仅仅可以提供IP和MAC的关联,还可以成功的将IP地址和计算机的物理接入位置有机的结合在一起。这对Trouble shooting、攻击定位都给予了极大的帮助。
dhcp防攻
这个东西可以模拟, 利用了二层协议的一些漏洞
http://www.yersinia.net/index.htm
Yersinia is a network tool designed to take advantage of some weakeness in different network protocols. It pretends to be a solid framework for analyzing and testing the deployed networks and systems.
Currently, there are some network protocols implemented, but others are coming (tell us which one is your preferred). Attacks for the following network protocols are implemented (but of course you are free for implementing new ones):
Spanning Tree Protocol (STP)
Cisco Discovery Protocol (CDP)
Dynamic Trunking Protocol (DTP)
Dynamic Host Configuration Protocol (DHCP)
Hot Standby Router Protocol (HSRP)
IEEE 802.1Q
IEEE 802.1X
Inter-Switch Link Protocol (ISL)
VLAN Trunking Protocol (VTP)
dhcp耗尽攻击
参考
防范策略: 交换机端口安全. 通过Port-Security技术来限制交换机每个端口可以学习到的最大MAC地址数量, show mac-address-table

伪造dhcp服务器攻击
防范策略: 交换机开启dhcp snooping
关于无线ap自动发现控制器选项dhcp option43配置
dhcp消息类型
dhcp的一个典故
为了便于理解,我们把DHCP客户机比做餐馆里的客人,DHCP服务器比做服务员(一个餐馆里也可以有多个服务
员),IP地址比做客户需要的食物。那么可以这样描述整个过程:客人走进餐馆,问:“有没有服务员啊?”
(DHCPdiscover),多个服务员同时回答:“有,我这有鸡翅”“有,我这有汉堡”(DHCPoffer)。客人说:“好
吧,我要一份汉堡”(DHCPrequest,这个客人比较死板,总是选择第一次听到的食物),端着汉堡的服务员回应了
一声:“来啦”(DHCPack),并把食物端到客人面前,供其享用(将网卡和IP地址绑定)。客人下次来的时候,就
直接找上次那个服务员点自己喜欢的汉堡了(DHCPrequest),如果还有汉堡,服务员会再次确认并上菜(DHCPack)
而如果已经卖完了,服务员则会告诉客人:“不好意思,已经卖完了”(DHCPnack)。当然,服务员隔一段时间会
来收拾一次桌子,除非客人特别说明这菜还要继续吃的,服务员会将剩菜端走。
DHCPINFORM会什么时候发出呢?
我发现我的内网中有很多这类的数据包. 它们可能都有配了固定的ip,同时内网dhcp服务器(三层交换)上有dhcp,我查了下,这些ip里,没有dhcp分配记录.
但是我没自己模拟出来, 网上查了下何时会发这种包, 都说的不是很清晰.
如果客户端通过其他方式获取了网络地址或具有手动配置的IP地址,则客户端工作站可能会使用DHCPINFORM请求消息来获取其他本地配置参数,例如域名和域名服务器(DNS)。接收DHCPINFORM消息的DHCP服务器使用适合于客户端的任何本地配置参数构造DHCPACK消息,而不分配新的IP地址。这个DHCPACK将被单播发送给客户端。
DHCPINFORM: If a client has obtained a network address through some other means or has a manually configured IP address, a client workstation may use a DHCPINFORM request message to obtain other local configuration parameters, such as the domain name and Domain Name Servers (DNSs). DHCP servers receiving a DHCPINFORM message construct a DHCPACK message with any local configuration parameters appropriate for the client without allocating a new IP address. This DHCPACK will be sent unicast to the
client.
[na][dhcp]dhcp细枝末节&dhcp防攻的更多相关文章
- DHCP欺骗(DHCP Sproofing)
DHCP欺骗(DHCP Sproofing) DHCP Sproofing同样是一种中间人攻击方式.DHCP是提供IP地址分配的服务.当局域网中的计算机设置为自动获取IP,就会在启动后发送广播包请 ...
- 编写脚本实现DHCP服务与DHCP中继自动化执行
编写脚本实现DHCP服务与DHCP中继自动化执行 本脚本是在liunx搭建DHCP服务器以及DHCP中继服务器实验环境下实现的https://www.cnblogs.com/yuzly/p/10539 ...
- liunx搭建DHCP服务器以及DHCP中继服务器
liunx搭建DHCP服务器以及DHCP中继服务器 一.实验拓扑 二.实验条件 虚拟机取消VMnet1和VMnet8的dhcp动态获取ip地址,以免影响实验 DHCPserver 网关以及DHCP中继 ...
- Python的网络编程[4] -> DHCP 协议[0] -> DHCP 的基本理论
DHCP协议 / DHCP Protocol 目录 DHCP 基本理论 DHCP 通信流程 DHCP 完整报文 DHCP 的 Optional 字段 DHCP 的报文类型 1 DHCP 基本理论 DH ...
- Python的网络编程[4] -> DHCP 协议[1] -> DHCP 的 Python 实现
DHCP实现 / DHCP Implement 目录 DHCP 服务器建立过程 DHCP 报文加码实现过程 下面介绍建立一个简单的DHCP服务器,主要用于对基本的DHCP请求进行响应,目前只提供一个I ...
- DHCP snooping(DHCP监听)
DHCP监听可以防范利用DHCP发起的多种攻击行为,如DHCP中间人攻击,伪造多台设备耗尽地址池 DHCP监听允许可信端口上的所有DHCP消息,但是却过滤非可信端口上的DHCP消息,DHCP监听还会在 ...
- CentOS-1810系统DHCP服务器ISC DHCP软件配置说明
DHCP 全称Dynamic Host configuration protocol, 动态主机配置协议.是一个局域网的网络协议,使用UDP协议工作,它可以为客户机自动分配IP地址.子网掩码以及缺省网 ...
- Debian9.5系统DHCP服务器ISC DHCP软件配置说明
DHCP 全称Dynamic Host configuration protocol, 动态主机配置协议.是一个局域网的网络协议,使用UDP协议工作,它可以为客户机自动分配IP地址.子网掩码以及缺省网 ...
- (五)Cisco dhcp snooping实例3-多交换机环境(DHCP服务器和DHCP客户端位于同VLAN)
试验拓扑 环境:dhcp server和dhcp客户端属于同vlan,但是客户端属于不同的交换机,在L2和L3交换机开启dhcp snooping后得出如下结论 L3交换机的配置 ip dhcp po ...
随机推荐
- 013 Spark中的资源调优
1.平常的资源使用情况 2.官网 3.资源参数调优 cores memory JVM 4.具体参数 可以在--conf参数中给定资源配置相关信息(配置的一般是JVM的一些垃圾回收机制) --drive ...
- 不一样的go语言-不同的OO
前言 go语言因为产生时代的原因,大神们在设计go时,不得不考虑业界的流行趋势(编程理念),使得go既可以面向过程编程,也可以面向对象编程.这里不探讨两者的优劣,存在即是合理,面向过程编程经久不衰 ...
- js基础梳理-究竟什么是变量对象,什么是活动对象?
首先,回顾下上篇博文中js基础梳理-究竟什么是执行上下文栈(执行栈),执行上下文(可执行代码)?的执行上下文的生命周期: 3.执行上下文的生命周期 3.1 创建阶段 生成变量对象(Variable o ...
- 安装Appium-desktop,并连接模拟器!Appium-Python-Client
1.下载appium-desktop https://github.com/appium/appium-desktop/releases 2.双击 exe 文件,然后,等待安装完就好了 3.启动app ...
- win10 大文件 安卓android studio修改 汉化
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha ========== win10 大文件 gradle-3.3-all 这个里面有 大量 ...
- C# 开发圆角控件的具体实现
http://www.jb51.net/article/47433.htm 代码来源
- X5功能目录排序
在UI/system/config/functionSequecce.xml下面. <?xml version="1.0" encoding="utf-8" ...
- Linux kernel engineer--trace
http://oliveryang.net/ https://github.com/yangoliver
- RxJava2 源码解析(二)
概述 承接上一篇RxJava2 源码解析(一),本系列我们的目的: 知道源头(Observable)是如何将数据发送出去的. 知道终点(Observer)是如何接收到数据的. 何时将源头和 ...
- [转载]震惊!QWidget竟然可以嵌入到QML中,QMl窗口句柄竟然是这样获取
背景 记得在初学qml时,就被大佬告知Qml的实现有两种方式“view+item”和“engine+widow”,那么能不能将QWidget嵌入到QML中来呢,我收到的答案是不可以,原因是QML的 ...



