在之前文章《我是如何使用wireshark软件的》中介绍了wireshark的使用,提到了显示过滤器和捕获过滤器,重点介绍了显示过滤器,本文将主要介绍一下捕获过滤器。

这里再次说明一下两者区别,需要看显示过滤器的同学,请看文章《我是如何使用wireshark软件的》。

  1. 捕获过滤器:当进行数据包捕获时,只有那些满足给定的包含/排除表达式的数据包会被捕获。

  2. 显示过滤器:该过滤器根据指定的表达式用于在一个已捕获的数据包集合中,隐藏不想显示的数据包,或者只显示那些需要的数据包。

01、简介

首先了解下,为什么需要捕获过滤器。举个例子,在一台服务器(TCPsever,端口5005)上,一个客户端(其他家公司设备)运行几天,就会突然掉线。这时候,说不清是服务器把客户端踢下线,还是客户端主动离线。

当然,这个时候在服务器添加日志记录即可,就可以找“真凶”。如果是对方设备主动离线,对方又不配合时,对方“不相信你的日志”。这个时候,使用wireshark抓包,找出对方设备(TCPClient)先发出的FIN断开连接的证据,然后“甩”他脸上即可。

其实上述场景,我在《我是如何使用wireshark软件的》文中也提到过解决方案,使用显示过滤加定时保存的策略,不过这样在几天的抓包中,会导致抓包文件很大。而捕获过滤则可以解决这个问题。

捕获过滤使用方法

1.选择捕获->捕获过滤器,然后编辑一个新的捕获过滤器选项:名称为“port5005”(名字根据自己的需求即可),过滤器为“port5005”。

图片

2.在开始界面选择网卡,然后点击②处,选择上一步新建的输入捕获条件即可。

图片

3.开始捕获

选择完输入捕获条件,如下图,直接双击网卡,就开始捕获了。

图片

02、BPF语法

捕获过滤器应用于WinPcap,并使用BerkeleyPacketFilter(BPF)语法。这个语法被广泛用于多种数据包嗅探软件,主要因为大部分数据包嗅探软件都依赖于使用BPF的libpcap/WinPcap库。掌握BPF语法对你在数据包层级更深入地探索网络来说,非常关键。

使用BPF语法创建的过滤器被称为表达式,并且表达式包含一个或多个原语。每个原语包含一个或多个限定词,然后跟着一个ID名字或者数字,如:

图片

BPF语法也是支持下列逻辑运算符的,从而创造更高级的表达式。

  1. 连接运算符 与 (&&)

  2. 选择运算符 或 (||)

  3. 否定运算符 非 (!)

举例说明:

src 192.168.0.10 && port 5005

上述表达式只对源地址是192.168.0.10和源端口或目标端口是5005的流量进行捕获。

03、过滤示例

常用的过滤示例

图片

注意灵活使用上文提到的逻辑运算符。

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/Fireflycjd/p/14639294.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!