使用Wireshark工具分析网络协议

Posted lynnlovemin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Wireshark工具分析网络协议相关的知识,希望对你有一定的参考价值。

0x00 Wireshark简介

Wireshark是一个网络封包分析软件。网络封包分析软件的功能是抓取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。Wireshark的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Wireshark是全世界最广泛的网络封包分析软件之一。

0x01 Wireshark的安装

Wireshark的安装非常简单。

首先,下载Wireshark的安装包,下载地址: https://pan.baidu.com/s/18ttyXxYOfA-pZ5_VL-AFZA 提取码: aj5a,如图

图1
这里了以Windows系统为例,下载完成后,双击安装包,依次点击下一步即可。

图2

图3

图4

最后,点击Finish按钮,重启电脑,重启完成后即可完成Wireshark的安装。

图5

0x02 抓取第一个网络协议

Wireshark安装完成后,我们双击Wireshark图标,打开Wireshark。

图6
如果电脑上有多张网卡的话,将看到该界面上显示了多张网卡,我们双击当前网络连接的网卡,进入到Wireshark主界面。

图7
可以看到,刚进入该界面,Wireshark默认就自动开启监听,以抓取经过该网卡的流量包了,稍微了解一点网络协议的读者都知道该界面有一个名叫Protocol的列,它标识了当前流量包对应的网络协议,如上图所示,我们抓取了TCP、ARP等包。

如何查看当前网络是哪张网卡呢?
可打开CMD命令行终端,输入ipconfig命令:

图8
如果电脑安装了虚拟机的话,会看到很多VMware的虚拟网卡,一把情况下除此之外类似无线局域网适配器等,IP地址又是192.168开头的就是当前网络连接对应的网卡。

0x03 Wireshark高级玩法

上一小节,我们简单抓取了一些网络协议,而Wireshark能成为全球最流行协议分析工具软件,其功能远远不止这些,它提供了一些高级玩法,方便网络和运维工程师们分析流量,发现网络中存在的异常。本小节,我们也来玩一玩其高级玩法。

首先,协议主界面包含了三个部分,分别是数据列表区、数据详细区和数据字节区,如图所示:

图9 数据列表区

图10 数据详细区

图11 数据字节区
下面,分别说明这三个区的作用。
  • 数据列表区
    该区域以一个表格的形式实时展示当前抓取的网络协议,接下来,我以一张表格的形式来简要介绍这些字段。
字段说明描述
No.序号递增序列,从1开始,每抓取一个协议包,序号加1
Time时间当前抓取协议的时间
Source当前协议的源IP,即从何处发起的
Destination目的当前协议的目的IP,即发往何处
Protocol协议当前协议包最上层协议
Length长度当前协议包的大小
Info信息当前协议包的描述
表1
  • 数据详细区
    该区域详细展示了从最上层协议开始,到底层物理层所有经过的协议,每个协议的头和数据部分均有详细说明。
  • 数据字节区
    由于计算机是通过二进制来进入数据传输的,该区域展示了每个协议的二进制或十六进制,它和数据详细区一一对应,点击数据详细区的不同协议,数据字节区的二进制会相应改变。

在后续的学习中,你除了对数据列表区和数据详细区有深刻的理解,还应对数据字节区非常敏感,如提供一段二进制或十六进制数,读者能马上分析出其对应的协议号、源目IP等信息。

介绍完了Wireshark的三大区域,我们正式进入其高级玩法的队列中。

0x00 协议过滤

因为电脑网卡随时会发送数据包,协议可能会非常的多,不便于我们分析协议,因此需要对协议进行过滤。在Wireshark工具栏的下方,有一个名叫“应用显示过滤器”的输入框,我们可以输入协议号,来显示我们想要的协议。例如,我们只看包含TCP的协议。

图12

0x01 协议追踪

有些时候,我们在分析一个协议时,通过三大区域可能不能只管发现其内部细节,这时就需要协议追踪功能,便于我们查看其内部细节,如我们在分析HTTP协议时,其请求头、请求参数、响应数据在三大区域不是很方便查看,这时可以用协议追踪功能。

具体操作如下:

通过上节介绍的协议过滤功能,找到HTTP协议,在数据列表区的HTTP协议那一行右击,依次点击追踪流->TCP流,可看到以下界面:

图13
上图清晰的展示了HTTP的请求头、请求参数和响应参数。

0x02 协议过滤高级语法

其实,在使用协议追踪功能的时候,细心的你可能就会发现,在“应用显示过滤器”输入框出现一个看不懂的内容,那就是协议过滤的语法,我们使用协议追踪就是Wireshark自动帮我们填充好了过滤语法。

图14

本节,我们将继续接触其他更加好玩的语法。

“应用显示过滤器”的语法格式为:协议号.属性[.属性…] 表达式(如:==代表等于,> 代表大于等),如:
我们要过滤出包含IP协议中IP地址为192.168.101.1的协议列表,可以输入:“ip.addr == 192.168.101.1”。

图14

当然,每个协议所包含的属性非常多,我们不可能都记住。但是,人性化的Wireshark给我们提供了自动补全功能,当输入一个协议号+“.”时,会自动弹出提示,方便我们查阅,只要知道基本的语法规则即可,如图所示:

图15
因此,当我们抓取的协议非常多时,可以利用高级语法来精准过滤,只需要输入协议号+“.”,再根据弹出的提示来进行过滤即可。 > 目前,读者还没有学习具体的网络协议原理,可能还看不懂每个协议对应的属性内容,当学习完网络协议后,就可以肆意地玩高级语法了。

0x03 协议保存

Wireshark还提供了协议表内容的保存功能,后缀为.pcapng,我们在保存后,下次可以双击后缀为.pcapng的文件继续分析协议。

其保存方法也非常简单,只需要依次点击文件->另存为即可。

想学习更多网络安全的知识,可以关注公众号“SCLM安全团队”。

以上是关于使用Wireshark工具分析网络协议的主要内容,如果未能解决你的问题,请参考以下文章

网络协议分析仪tcpdump和wireshark使用

wireshark内置支持protobuf吗

抓包工具之wireshark安装和使用

《Wireshark数据包分析实战》(三)地址解析协议(ARP)

计算机网络原理实验_使用网络协议分析仪Wireshark

网络分析工具:wireshark/termshark/scapy