Wireshark的搜索功能

什么时候使用Wireshark的搜索功能

在使用Wireshark的时候,通常都是先用“捕获过滤器”、“显示过滤器”来进行数据包的筛选。对于经过筛选后的数据包,再根据自己的需要进行单独分析。
但是有时候,我们只知道一些关键词,并不清楚这些关键字怎么在“捕获过滤器”或者“显示过滤器”中怎么输入。在这种情况下,搜索功能就体现出它的价值来。

第一步为什么是过滤呢?
因为通常在现场的环境中,我们抓到的包都非常多,但是我们关注的往往只是其中的一小部分数据包,所以往往第一步都是进行过滤。过滤的方法有两种,通过“捕获过滤器”过滤和“显示过滤”进行过滤。

怎么使用Wireshark搜索功能

本来搜索功能是一个简单的功能,并不需要写笔记的。但是Wireshark默认的设置并不怎么合理,导致相比于其他软件,有点不那么人性化。
Wireshark中的搜索包功能叫做“Find Packet”,可以在【Edit】->【Find Packet】中打开。
为了更方便的描述搜索功能该怎么用,我把操作步骤写在了下面的这张图中:

Wireshark的搜索功能

下面用文字的形式进行描述:

  1. 如同大部分软件一样, 按下【Ctrl】+【F】便是搜索,Wireshark遵循了这一规律。当然,Mac系统中需要按下【command】+【F】。
  2. 弹出的搜索栏(图中②处)默认选择的是“显示过滤器(Display filter)”,但是我们一般都不会用这个默认选项。如果要用这个,我们完全可以在Wireshark主界面的“显示过滤器”框中进行搜索,不知道为什么Wireshark这么设计。在这一步上,我一般都会选择“字符串(String)”。如果你知道需要查找的“十六进制值(Hex value)”或者想采用“正则表达式(Regular Expression)”,那么可以根据自己的需求进行更改。
  3. 上图中③处选择你需要从哪儿进行搜索,默认是从“分组列表(Packet List)”中进行搜索,可以根据调整为“分组详情(Packet details)”和“分组字节流(Packet bytes)”。这三者没有固定的习惯,主要是根据自己搜索的目标所在地来确定。关于“分组列表(Packet List)”、“分组详情(Packet details)”和“分组字节流(Packet bytes)”分别是哪个,需要自己去看说明书了。
  4. 上图中④处,是我常用的一种搜索方式。点击完查找,Wireshark会自动把定位到第一个匹配处。
  5. 搜索数据包后,跳转到下一个匹配的数据包,快捷键是【Ctrl】+【N】,mac下用command键代替Ctrl键。
  6. 搜索数据包后,跳转到上一个匹配的数据包,快捷见是【Ctrl】+【B】,mac下用command键代替Ctrl键。

其他补充说明

关于Wireshark中的正则表达式
由于正则表达式是一个较大的概念,不同软件中遵守的标准并不完全一致。根据Wireshark官方文档《Wireshark User’s Guide-Version 3.1.0》中的描述,Wireshark遵循的是PCRE(Perl-compatible regular expressions).
PCRE的语法比POSIX正则表达式和其他许多正则表达式库更加强大和灵活。

关于加密数据
对于采用了加密协议(例如HTTPS)的数据,如果采用搜索字节流的时候,很可能搜索不到内容。
但是对于采用非加密协议(例如HTTP)的数据,我们可以采用搜索字节流的方式,来搜索包里面的细节。

Wireshark搜索.png

同时可以参考其他文档
--使用WireShark搜索想要的包(简约版)
Linux中国--关于BPF的介绍
永久读取/dev/bpf*这个路径


顺便说一句,“捕获过滤器”应该适量的少用,尤其是在你对你分析的协议不是很清楚的情况下。比如有的协议在进行数据交换之前先需要发送一个ARP数据包(以广播的形式),如果你通过“捕获过滤器”限制了目的地址,那么这个ARP包就肯定抓不到了。

你可能感兴趣的:(Wireshark的搜索功能)