Wireshark 的使用与数据分析(三)-- 显示过滤器

发布于: 12 小时前
Wireshark的使用与数据分析(三)--显示过滤器

有时使用Wireshark会发现默认设置下抓的数据有大量冗余的信息,不能立即找到自己需要的部分。除了之前介绍的捕获过滤器技巧之外,今天所介绍的显示过滤器也是一个非常重要的工具。

3.1显示过滤器

如下图所示,画圈之处就是显示过滤器。与前文介绍的捕获过滤器仅支持协议过滤不同,显示过滤器及支持协议过滤也支持内容过滤。

显示过滤器支持各种网络协议、Comparison operators(比较运算符)、Logical expressions(逻辑运算符)等,其中比较运算符可以使用以下6种:

逻辑运算符可以使用如下4种:

各类网络协议的话可以直接在过滤器中输入即可,例如arp、IP、dns、tftp等等。注意显示过滤器是区分大小写的,如果输入DNS过滤器会显示红色以提示错误。当然,还可以输入其他一些字段来过滤,如下图所示,我任意选择了一个UDP字段Length:40,在Weireshark最下面的状态栏中可以看到这个字段的真正名称是udp.length,可以输入这个字段进行过滤,当然也可以根据实际需要选择字段。

3.2语法错误

实际上在Wireshark的各类过滤器表达式中,如果你输入错误的表达式是可以通过背景色来判断的。当现实过滤器背景为红色时表明此时不能运行;如果是绿色则表语法正确可以运行,需要注意的是Wireshark不会检查逻辑表达式,例如我们输入“http && udp”,我们知道http是基于tcp协议,所以这样理论上是不合理的,但实际上通过了Wireshark的语法检查,只是通常不会有数据包。

还有一种情况,当显示过滤器背景为黄色时,表示该过滤器语法正确但可能不会过滤出用户想要的数据包。如下图示,当在显示过滤器中输入“!=”运算符时会自动触发该颜色。这是为了避免匹配出一个包中的两个字段,ip.addr我们后面会介绍,它会过滤到达或来自这个IPv4地址的数据。

此外还有一点作为补充,有时我们除了这些运算符外也会使用“contains”和“matches”这两个运算符,前者表示“包含”,例如http contains “POST”就表示过滤http协议下的所有POST请求;而后者则表示“匹配”,例如udp matches "Length",显示匹配Length字符串的udp数据。

3.3地址过滤显示

根据地址来过滤其实是我们使用最广泛的一种方式,我们可以借助Wireshark显示过滤器查看一个IP地址、地址范围或是地址范围。需要注意的是在操作符的两边不需要空格,如ip.addr==1.2.3.4和ip.addr == 1.2.3.4是一样的。

·ip.src表示捕获源地址的数据;

·ip.dst表示捕获目标地址的数据;

·ip.addr表示到达或来自某ip地址的数据;

对于IPv6,则将这些字段“ip”改为“ipv6”即可,例如ipv6.src

以ip.addr为例,使用的时候还得遵循如下的语法格式:ip.addr 比较运算符 IP地址

其中比较运算符可以使等于、不等于、大于、小于等等之前提到的那些,其他字段使用方式类似,例如:

·ip.addr == 192.168.1.1:显示ip源地址或是目标地址为192.168.1.1的数据;

·ip.host == www.baidu.com:显示到达或来自www.baidu.com的数据。

此外,如果想显示一个地址范围内的数据,可以使用ip.addr字段结合比较运算符>或<或&&组合,例如:

ip.addr > 192.168.1.1 && ip.addr <192.168.4.1:显示到达或来自192.168.2.1和192.168.3.1的数据。如果想捕获一个子网内的数据,可以结合CIDR(无类别域间路由)来显示。CIDR格式是通过在一个IP地址后面跟了一个分别表示网络位数和子网掩码的斜杠与数字,例如ip.addr==192.168.0.0/16:显示从192.168.0.0开始的源目标地址和目的地址的数据

3.4过滤显示单一的TCP/UDP会话

在实际应用中,当客户端和服务器端进行报文交互时,往往会有大量的TCP会话建立传输或是关闭,我们往往需要快速定位和过滤需要的会话,这里介绍几种方法。

第一个是使用对话过滤器(Conversation Filter),我们可以在Packet List面板中右键单击任意一个包,选择对话过滤器为TCP,可以看到Wireshark使用一段命令过滤出了数据,我们可以使用相同的方法过滤基于IP地址或是其他会话。

另一个我比较常用的是“追踪流(Follow TCP/UDP Stream)”的命令,可以看到点击追踪流之后,Wireshark会创建一个基于该包的过滤器,同时还会显示一个单独的窗口来展示详细信息。本例中是tcp.stream eq 10(画圈处),更改数字10,还可以得到其他编号的包,可以尝试一下。

今天就到这里,当然显示过滤器还会有其他一些例如关键字、括号、逻辑运算符的使用方法,我们下次再聊吧。

发布于: 12 小时前 阅读数: 13
用户头像

姬翔

关注

还未添加个人签名 2018.12.05 加入

还未添加个人简介

评论

发布
暂无评论
Wireshark的使用与数据分析(三)--显示过滤器