HCP、DNS、HTTP是三种常见的上层协议。
3358 www.Sina.com/http://www.Sina.com/DHCP (动态主机配置协议),动态主机配置协议是一种APP应用层协议。 将客户机主机的ip地址设置为动态获取方法后,DHCP服务器将根据DHCP协议为客户机分配ip,以便客户机可以使用此ip连接到互联网。
HCP的前身是BOOTP协议(Bootstrap Protocol ),BOOTP被设计为自动为连接到网络的设备分配地址,然后被DHCP所取代。 DHCP比BOOTP更复杂、更强大。 正如稍后将看到的,要在Wireshark中过滤和查看DHCP包,必须输入过滤条件BOOTP,而不是DHCP。 但是,我使用的Wireshark版本是比较旧的1.12.9,可能是因为我没有在新版本中尝试过。 也许可以输入DHCP以仅显示DHCP包。
一,动态主机配置协议DHCP
DHCP的实现分为以下四个步骤:
步骤1 :客户端在LAN中启动DHCP发现程序包。 这是为了找到能够提供IP的DHCP服务器。
步骤2 :在可用的DHCP服务器接收到发现分组后,发送DHCP Offer分组以响应客户端,并告知客户端可以提供IP地址。
步骤3 :客户机收到优惠包后,发送DHCP请求包请求分配IP。
步骤4:DHCP服务器发送ACK数据包并检查信息。
要获取http://www.Sina.com/http://www.Sina.com/DHCP数据包,请首先确保有可用的DHCP服务器,然后将获取主机IP地址的方式设置为自动获取。 如果主机在抓住包之前已连接到网络,则在连接到网络之前必须断开主机的网络连接。 在cmd中使用命令ipconfig完成网络断开和连接。
断开ipconfig /release主机的当前网络连接。 ipconfig /renew请求连接到网络。 在cmd中查看ipconfig /各参数的含义:
(1) ipconfig /release
当前网络连接断开,主机IP变为0.0.0.0,主机与网络断开连接,无法访问网络。
)2) ipconfig /renew
更新适配器信息并请求连接到网络。 此命令结束后,主机将获取可用的IP并再次访问网络。
1,DHCP简介实验环境: Win10、Wireshark1.12.9、有线连接
)1)在Wireshark上单击start开始捕获数据包,在过滤器栏中输入bootp,只显示DHCP数据包。
)在cmd上键入ipconfig /release断开网络连接。
此时可以看到所有网卡都已断开。 以太网已断开。
在Wireshark上截获了DHCP Release数据包。
)3)在cmd上输入ipconfig /renew以请求网络连接。
此时,您可以看到Wireshark中添加了四个DHCP数据包。
数据包1: 2,DHCP的实现
数据包2: 二,利用Wireshark抓取DHCP包
数据包3: 1,分析
数据包4: 2,开始抓包
等待此命令运行后,cmd会显示已将IP分配给主机,并且主机已成功连接到网络。
)4)再次运行ipconfig /renew以用于后续分析。
可以看到,Wireshark中添加了三个数据包: DHCP ACK。 DHCP请求; DHCP ACk。
再次使用ipconfig /renew时,每次运行DHCP Request; DHCP ACk。
DHCP Discover以下重点分析运行时名为ipconfig /renew的命令生成的四个DHCP数据包。 这四个包代表客户机与DHCP服务器之间的交互过程,也是IP的动态分配过程。DHCP Offer
)1)客户端使用IP地址0.0.0.0发送广播分组,但可以看到此时的目的地IP是255.255.255.255。 客户机想找到可以在此包中提供服务的DHCP服务器。
)2)从下图可见,DHCP是APP应用层协议,在传输层使用UDP协议,目的地端口为67。
DHCP Request
当DHCP服务器接收到DHCP发现器包时,它用DHCP Offerr包向客户机提供响应。
br> (1)DHCP服务器仍然使用广播地址作为目的地址,因为此时请求分配IP的Client并没有自己ip,而可能有多个Client在使用0.0.0.0这个IP作为源IP向DHCP服务器发出IP分配请求,DHCP也不能使用0.0.0.0这个IP作为目的IP地址,于是依然采用广播的方式,告诉正在请求的Client们,这是一台可以使用的DHCP服务器。(2)DHCP服务器提供了一个可用的IP,在数据包的Your (client) IP Address字段可以看到DHCP服务器提供的可用IP。
(3)除此之外,如图中红色矩形框的内容所示,服务器还发送了子网掩码,路由器,DNS,域名,IP地址租用期等信息。
3,DHCP Request包
当Client收到了DHCP Offer包以后(如果有多个可用的DHCP服务器,那么可能会收到多个DHCP Offer包),确认有可以和它交互的DHCP服务器存在,于是Client发送Request数据包,请求分配IP。
此时的源IP和目的IP依然是0.0.0.0和255.255.255.255。
4,DHCP ACK包
服务器用DHCP ACK包对DHCP请求进行响应。
在数据包中包含以下信息,表示将这些资源信息分配给Client.
Your(client) IP address:分配给Client的可用IP。
后面有许多项option信息,前两项是DHCP服务器发送的消息类型(ACK)和服务器的身份标识,后面几项是:
Subnet Mask:Client端分配到的IP的子网掩码;
Router:路由器
Domain Name Server:DNS,域名服务器
Domain Name:域名
IP Address Lease Time:IP租用期。
1,DHCP starvation attack,DHCP饥饿攻击
其实各种各样的攻击技术总是会让人觉得兴奋。抛却道德不谈,必须承认的是,制造这些攻击的人都是高智商。
有许多中攻击DHCP的技术,这里介绍其中一种,有点类似于SYN 洪范攻击。
DHCP starvation attack,中文即DHCP饥饿攻击,可以顾名思义一下,饥饿攻击,就是大量地进食,把可以吃的食物全部吃完,然后让其他人没得吃,最后给其他人提供一些毒药,把人家毒死,姑且可以这样浅显地认为。
下面来说这种攻击是如何实现的。一些不法分子,伪造合法的MAC地址,不断地向DHCP服务器发出DHCP Request包,最后耗尽服务器的可用IP,于是原有的这台DHCP服务器便不能够给客户端分配IP了,此时不法分子再伪造一台DHCP服务器,给客户端分配IP,将客户端的默认网关和DNS都设置成自己的机器,于是便可以对客户端进行中间人攻击。
2,一些关于DHCP安全性的研究
网络到处都有安全漏洞啊,上网需谨慎。现在有很多关于DHCP安全的研究,一些论文提出了诸如四元组安全认证的办法,还有一些论文提出了安全DHCP协议。
例如这篇论文《A Secure DHCP Protocol to Mitigate LAN Attacks》,这算是一篇比较新的论文了,16年发表的,作者提出了2种技术,一种是认证和秘钥管理技术,另一种是消息认证技术(利用数字信号认证Server和Client端的交互信息),可以减轻LAN Attack。
尴尬的是,我英文不是很好,并没有把这篇论文看完。。。