Wireshark系列之4捕获过滤器

在Wireshark中往往会抓到很多数据,这时我们就需要用到过滤器过滤器来筛选出我们所关心的数据包。

Wireshark提供了两种过滤器:

<李>

捕获过滤器:在抓包之前就设定好过滤条件,然后只抓取符合条件的数据包。

<李>

显示过滤器:在已捕获的数据包集合中设置过滤条件,隐藏不想显示的数据包,只显示符合条件的数据包。

需要注意的是,这两种过滤器所使用的语法是完全不同的,在本篇博文中将介绍捕获过滤器。

<人力资源/>

使用捕获过滤器的主要原因就是性能。如果你知道并不需要分析某个类型的流量,那么可以简单地使用捕获过滤器过滤掉它,从而节省那些会被用来捕获这些数据包的处理器资源。当处理大量数据的时候,使用捕获过滤器是相当好用的。

新版Wireshark的初始界面非常简洁,主要就提供了两项功能:先设置捕获过滤器,然后再选择负责抓包的网卡。由此可见捕获过滤器的重要性。

比如我们希望只抓取与80端口之间的通信,那么可以设置过滤规则端口80。

 Wireshark系列之4捕获过滤器

,

捕获过滤器应用于Winpcap,并使用伯克利包过滤(瘘)语法,其语法规则如下:

<强>协议 <强>方向 <强>类型 <强>数据

<李>

协议,可能的值:醚、ip、arp、tcp、udp、http、ftp……,如果没有特别指明是什么协议,则默认使用所有支持的协议。

<李>

方向,可能的值:src, dst,如果没有特别指明来源或目的地,则默认使用“src或dst”作为关键字。例如,“主机10.2.2.2”与“src或dst主机10.2.2.2”是一样的。

<李>

类型,可能的值:净,港口,主机,如果没有指定此值,则默认使用“主机”关键字。例如,“src 10.1.1.1”与“src主机10.1.1.1”相同。

我们还可以使用以下三种逻辑运算符,对表达式进行组合,从而创建更高级的表达式。

<强>逻辑与,, <>强,逻辑或| | <>强,逻辑非!

比如下面这个表达式,只捕获源地址是192.168.0.10并且源端口或目的端口是80的数据包。

<强> src 192.168.0.10,,端口80

,

<强>应用示例

如果我们希望抓取某台特定主机或设备的数据包,那么可以根据设备的IP地址或MAC地址来设置过滤规则。

比如只抓取IP地址为192.168.0.10的数据包。

<强>主机192.168.0.10

如果考虑到主机的IP地址可能会变化,那么可以指定MAC地址进行过滤。

<强>乙醚主机00-50-56-C0-00-01

也可以根据数据的流向来过滤:

<强> src主机192.168.0.10// <强>从192.168.0.10 <强>发出的数据包

<强> dst主机192.168.0.10// <强>发往192.168.0.10 <强>的数据包

<强>乙醚src主机00-50-56-C0-00-01// <强>从00-50-56-C0-00-01 <强>发出的数据包

<强>乙醚dst主机00-50-56-C0-00-01// <强>发往00-50-56-C0-00-01 <强>的数据包

需要注意的是,主机在表达式中是默认选项,因而上面的这几个表达式无论是否加上主机都是表达相同含义。

,

再比如通过端口进行过滤:

<强> 8080端口// <强>只捕获8080年 <强>端口的流量

<>强壮!端口8080// <强>捕获8080年 <强>端口外的所有流量

<强> dst端口8080// <强>只捕获前往8080 <强>端口的流量

通过协议或通信方式进行过滤:

<强> icmp// <强>只捕获icmp <>强流量

<>强壮!广播// <强>不要抓取广播包

Wireshark系列之4捕获过滤器