DHCP,DNS和HTTP是3种常见的高层协议。

一,动态主机配置协议DHCP

1,DHCP简介

DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。

DHCP的前身是BOOTP协议(Bootstrap Protocol),BOOTP被创建出来为连接到网络中的设备自动分配地址,后来被DHCP取代了,DHCP比BOOTP更加复杂,功能更强大。后面可以看到,在用Wireshark过滤显示DHCP包,需要输入过滤条件BOOTP,而不是DHCP,但或许是因为我使用的Wireshark版本是比较旧的1.12.9,没有在新版本中尝试过,也许可以输入DHCP让其只显示DHCP包。

2,DHCP的实现


DHCP的实现分为4步,分别是:
第一步:Client端在局域网内发起一个DHCP Discover包,目的是想发现能够给它提供IP的DHCP Server。
第二步:可用的DHCP Server接收到Discover包之后,通过发送DHCP Offer包给予Client端应答,意在告诉Client端它可以提供IP地址。
第三步:Client端接收到Offer包之后,发送DHCP Request包请求分配IP。
第四步:DHCP Server发送ACK数据包,确认信息。


二,利用Wireshark抓取DHCP包

1,分析

要想抓取到DHCP包,先要保证有可用的DHCP服务器,然后将主机IP地址获取方式设置为自动获取。如果主机在抓包之前已经联网,需要先断开主机的网络连接,然后再连接网络。在cmd下使用命令ipconfig来完成网络断开与连接的过程:

 ipconfig /release 断开主机当前的网络连接 ipconfig /renew   请求连接网络

在cmd中可以使用ipconfig /?查看各参数的含义:

(1)ipconfig /release
断开当前的网络连接,主机IP变为0.0.0.0,主机与网络断开,不能访问网络。
(2)ipconfig /renew
更新适配器信息,请求连接网络,这条命令结束之后,主机会获得一个可用的IP,再次接入网络。

2,开始抓包

实验环境:Win10,Wireshark1.12.9,有线连接
(1)在Wireshark中点击start开始抓包,在过滤栏输入bootp,使其只显示DHCP数据包。
(2)在cmd中输入ipconfig /release 断开网络连接。

可以看到此时所有的网卡都已经断开。以太网处于断开状态。


Wireshark中截获到一个DHCP Release数据包。

(3)在cmd中输入ipconfig /renew 请求网络连接。

此时,可以看到在Wireshark中新增了4个DHCP数据包:
数据包1:DHCP Discover
数据包2:DHCP Offer
数据包3:DHCP Request
数据包4:DHCP ACK


等待这条命令执行完毕之后,在cmd中可以看到主机被分配了IP,主机成功连入网络中。

(4)为了后续分析使用,我们再执行一次ipconfig /renew:

可以看到Wireshark中新增了3个数据包:DHCP ACK;DHCP Request;DHCP ACk。
如果再次使用ipconfig /renew,每执行一次会新增2个数据包:DHCP Request;DHCP ACk。

三,DHCP包分析

下面着重来分析当执行,ipconfig /renew这条命令产生的4个DHCP数据包,这4个数据包代表了客户机和DHCP服务器的交互过程,也是IP动态分配的过程。

1,DHCP Discover数据包
(1)Client端使用IP地址0.0.0.0发送了一个广播包,可以看到此时的目的IP为255.255.255.255。Client想通过这个数据包发现可以给它提供服务的DHCP服务器。

(2)从下图可以看出,DHCP属于应用层协议,它在传输层使用UDP协议,目的端口是67。

2,DHCP Offer包
当DHCP服务器收到一条DHCP Discover数据包时,用一个DHCP Offerr包给予客户端响应。

(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租用期。


四,DHCP starvation attack

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。
尴尬的是,我英文不是很好,并没有把这篇论文看完。。。

Wireshark分析DHCP相关推荐

  1. wireshark筛选dhcp包_使用wireshark抓包工具,对DHCP、HTTP、DNS的数据包进行分析

    使用wireshark抓包工具,对DHCP.HTTP.DNS的数据包进行分析 本文标签: 服务器安全 服务器被攻击 网站防护 使用wireshark抓包工具,对DHCP.HTTP.DNS的数据包进行分 ...

  2. Wireshark抓包分析DHCP

    1.DHCP简介 动态主机设置协议(英语:Dynamic Host Configuration Protocol,DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:用于内部网或网络 ...

  3. Wireshark分析非标准端口号流量

    Wireshark分析非标准端口号流量 2.2.2  分析非标准端口号流量Wireshark分析非标准端口号流量 应用程序运行使用非标准端口号总是网络分析专家最关注的.关注该应用程序是否有意涉及使用非 ...

  4. 使用Wireshark分析工控协议

    在工控系统中通信协议存在众多标准,也存在众多私有协议,如果你有过使用组态软件的经历,你便会发现,在第一步连接设备时除连接设备的方式有以太网/串行等方式外,各家基本上都存在自己的私有通信协议. 上图为, ...

  5. 关于联通短信发送程序(SGIP协议)没有收到返回状态报告的报告(使用WireShark分析)

    关于联通短信发送程序(SGIP协议)没有收到返回状态报告的报告(使用WireShark分析) 这是数年前给一个公司做的:使用WireShark抓包分析程序问题:是使用WireShark分析程序涉及到网 ...

  6. websocket / 使用 wireshark 分析 websocket 连接过程

    一.连接过程时序图 二.wireshark 分析 上图是一个完整的进行 websocket 连接时产生的数据包. 根据时序图可知,前 3 行是 tcp/ip 握手过程,因为可以通过标志来看到,前 3 ...

  7. 38 | 案例篇:怎么使用 tcpdump 和 Wireshark 分析网络流量?

    通常,需要暴露到公网的服务,都会绑定一个域名,既方便了人们记忆,也避免了后台服务 IP 地址的变更影响到用户. 不过要注意,DNS 解析受到各种网络状况的影响,性能可能不稳定.比如公网延迟增大,缓存过 ...

  8. 计算机网络实验二抓包协议分析,计算机网络实验-使用Wireshark分析TCP和UDP协议...

    <计算机网络实验-使用Wireshark分析TCP和UDP协议>由会员分享,可在线阅读,更多相关<计算机网络实验-使用Wireshark分析TCP和UDP协议(6页珍藏版)>请 ...

  9. 计算机网络实验5以太网链路帧实验,计算机网络实验-使用Wireshark分析以太网帧与ARP协议.docx...

    编号:_______________ 本资料为word版本,可以直接编辑和打印,感谢您的下载 计算机网络实验-使用Wireshark分析以太网帧与ARP协议 计算机网络实验-使用Wireshark分析 ...

最新文章

  1. 神经网络基础知识总结
  2. 5300亿参数的「威震天-图灵」,微软、英伟达合力造出超大语言模型
  3. C# 7.2和8.0路线图
  4. 如何删除下一页分节符_word 2010高级应用:分节符的使用
  5. 协同过滤介绍和简单推荐系统的实现
  6. 观察者模式 - dom事件 / 自定义事件 / Promise 我的理解
  7. Word 2010—样式集
  8. [JNI] 开发基础 (2) 指针
  9. Android Studio 下载教程
  10. 智能驾驶ADAS算法设计及Prescan仿真(2): 自适应巡航ACC控制策略设计与simulink仿真
  11. css flex实现经典的三栏布局
  12. 豆子特斯拉,豆箕宁德时代
  13. android 清理缓存功能 的实现,android实现清理缓存功能
  14. Linux操作系统概述
  15. 基于canvas剪辑区域功能实现橡皮擦效果
  16. 月薪40K起,什么是Python全栈工程师?全栈工程师薪资为何这么高?
  17. vue异步问题解决方法
  18. python中json和字典的转换
  19. 无参考图像的清晰度评价方法
  20. Webservice与Socket接口调用的区别和比较

热门文章

  1. 【虚拟化qemu】(二)--- qemu 虚拟化软件使用
  2. 面试官:Redis如何实现持久化的、主从哨兵又是什么?
  3. 5G全场景时代 战略关键转型期 华为不只要重构想象
  4. 虹科蕴藏在废物分类中的机器人技术革命
  5. 路由器在接一个路由器设置方法
  6. Panda3D设置游戏背景颜色和节点颜色、透明度
  7. java调用授权接口oauth2_微信授权就是这个原理,Spring Cloud OAuth2 授权码模式
  8. 电脑只有浏览器可以上网其他软件都无法联网怎么办?
  9. PRML 1.1 多项式曲线拟合
  10. 《WEB安全漏洞100讲》(第4讲)CSRF漏洞