利用Wireshark截取数据包,并对数据包进行解析

  • Post author:
  • Post category:其他




利用


Wireshark


截取ICMP数据包,并对数据包进行解析


wireshark安装文件下载地址:

http://yunpan.cn/QiHGK5sPtWRyN

(提取码:0bbc)


安装步骤:


解压文件之后,在\wireshark-win32-1.4.9中文版\文件夹中找到安装文件,双击即可安装。


安装完成之后,双击wireshark图标即可启动,界面如下:




抓包步骤:


1、点击开始按钮列出可以抓包的接口:






2、点击选项可以配置抓包参数:




3、配置完成点击开始,即可开始抓包:




4、点击停止完成抓包。


抓包界面分析:


抓包结果整个窗口被分成三部分:




1、最上面为数据包列表,用来显示截获的每个数据包的总结性信息;





2、中间为协议树,用来显示选定的数据包所属的协议信息;





3、最下边是以十六进制形式表示的数据包内容,用来显示数据包在物理层上传输时的最终形式。



数据包列表中,第一列是编号(如第

1







包),第二列是截取时间(




0.000000




),第三列




source




是源地址(




115.155.39.93




),第四列




destination




是目的地址(




115.155.39.112




),第五列




protocol




是这个包使用的协议(这里是




UDP




协议),第六列




info




是一些其它的信息,包括源端口号和目的端口号(源端口:




58459




,目的端口:




54062




)。







协议树可以得到被截获数据包的更多信息,如主机的MAC地址(Ethernet II)、IP地址(Internet

protocol)、UDP端口号(user datagram protocol)以及UDP协议的具体内容(data)。






分析ICMP协议数据包





实验原理:

ping是用来测试网络连通性的命令,一旦发出ping命令,主机会发出连续的测试数据包到网络中,在通常的情况下,主机会收到回应数据包,ping采用的是ICMP协议。







实验步骤:







点击开始抓包,为了抓取使用ICMP的包,我们要设置过滤条件,点击“选项”:












再点击“抓包过滤”按钮:







因此初始状态下没有只抓取ICMP协议包的过滤条件,因此我们点击新建按钮:












在过滤名字和过滤条件中分别输入“ICMP only”(自定义),“icmp”,点击确定:


这是可以看到抓包过滤按钮后面的文本框出现了ICMP字样,说明过滤条件设置成功:




点击开始,发现现在抓取不到任何包:




打开命令行窗口,执行命令:ping www.baidu.com:




这时可以看到数据包抓取页面抓取到了8包,与命令行显示的已发送和已接受的包的数量是一致的:




选择任意一个包查看详细信息:




可以看到ICMP报文的格式为:




在这个试验中,可以发现,icmp的报文就只有两种,请求和应答:


请求:




应答:




这两个报文的type不一样,8代表请求,0代表应答;code都为0,表示为回显应答;标示符和序列号都是一样的,表示这两个报文是配对的


TCP


协议,所以此次实验选取


FTP



DHCP


数据包分析


使用DHCP获取IP地址:


(1)打开命令窗口,启动Wireshark。


(2)输入“ipconfig  /release”。这条命令会释放主机目前的IP地址,此时,主机IP地址会变为0.0.0.0




(3)然后输入“ipconfig  /renew”命令。这条命令让主机获得一个网络配置,包括新的IP地址。




(4)等待,直到“ipconfig  /renew”终止。然后再次输入“ipconfig  /renew” 命令。




(5)当第二个命令“ipconfig  /renew” 终止时,输入命令“ipconfig /release” 释放原来的已经分配的IP地址




(6)停止分组俘获。如下图:





五.实验分析




由截图可知,本机发起DHCP Discover包,用来寻找DHCP服务器,源ip是0.0.0.0,因为刚开始还不知道,目的地址是255.255.255.255的广播地址,广播到整个网段。


Message type为1表明是请求包,由客户端发出。


Hardware address length为6表示本机的网络硬件地址长度为6bytes


Hops为0表示跳数,此处为0 表示没有经过网关。




此字段表示DHCP报文类型:




此字段表示DHCP客户端的报文类型。




这是UDP上的DHCP,本机发起的端口是68,目标端口是67.



2.


提供




DHCP服务器收到客户端发的DHCP Discover之后,会在自己的地址池中拿出一个没有分配的地址以及配套的参数(如:掩码、DNS、网关、域名、租期……),然后以一个DHCP Offer包发送出去。


此时源IP是DHCP服务器的IP,目的IP是255.255.255.255的广播。这时候本机还无法获得IP,所以DHCP服务器只能用广播来回应。




此截图表明通过UDP传输,客户端端口号68,服务器是67。


Message type为2表明是回复包。


Hops为1不标明经过了一个中继。




表明给客户端的IP地址,但是现在还没有确认。




这是中断的地址,就是网关


DHCP服务器地址





3.


选择





客户端收到这个DHCP Offer后,会再发出一个DHCP Request给服务器来申请这个Offer中包含的地址。



这个时候,客户端还没有正式拿到地址,所以还需要向DHCP服务器申请。


此时客户端的源IP还是0.0.0.0,目的IP还是255.255.255.255。




将这些都广播出去,告诉其他DHCP服务器和分配给本机的服务器。



4.


确认




被客户机选择的DHCP服务器在收到DHCPREQUEST广播后,会广播返回给客户机一个DHCPACK消息包,表明已经接受客户机的选择,并将这一IP地址的合法租用以及其他的配置信息都放入该广播包发给客户机。


服务,



本次抓包过程将采用显示过滤器的方法来过滤数据包。





转载于:https://www.cnblogs.com/hewenwu/p/3720084.html