[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报文必要性

参考:对比dns和dhcp,写的还挺不错的

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耗尽攻击

另外阅读: 交换机原理/macof

参考
防范策略: 交换机端口安全. 通过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.
posted @ 2017-12-21 14:13  _毛台  阅读(795)  评论(0编辑  收藏  举报