Wireshark 的两种过滤器

  1. 捕捉过滤器 刚开始进入wireshark的时候设置的过滤器,在抓包之前进行设置,在抓取时,就不会抓取不符合文件的数据包。 是数据经过的第一层过滤器,它用于控制捕捉数据的数量,以避免产生过大的日志文件。 wireshark_catch_eth0
  2. 进入后wireshark的显示过滤器,在捕捉结果中进行详细查找,他们可以在得到捕捉结果后随意修改。 是一种更为强大(复杂)的过滤器。它允许您在日志文件中迅速准确地找到所需要的记录。 wireshark_display_package

两个不同的过滤器,过滤写法也会不一样。捕获过滤器(如tcp端口80)不应该与显示过滤器(如tcp.port == 80)相混淆。捕获过滤器的限制更多,用于减少原始数据包捕获的大小。显示过滤器用于隐藏一些数据包。先了解wireshark的显示过滤器写法。

先说捕捉过滤器

捕捉过滤器语法

wireshark_catch_syntax

  • Protocol(协议): 可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp. 如果没有特别指明是什么协议,则++默认使用所有支持的协议++。

  • Direction(方向): 可能的值: src, dst, src and dst, src or dst 如果没有特别指明来源或目的地,则默认使用src or dst作为关键字。 例如,host 10.2.2.2src or dst host 10.2.2.2是一样的。

  • Host(s): 可能的值:net, port, host, portrange. 如果没有指定此值,则默认使用host关键字。 例如,src 10.1.1.1src host 10.1.1.1相同。

  • Logical Operations(逻辑运算): 可能的值:not, and, or. 否("not")具有最高的优先级。或("or")和与("and")具有相同的优先级,运算时从左至右进行。 例如, not tcp port 3128 and tcp port23(not tcp port 3128) and tcp port 23相同。 not tcp port 3128 and tcp port23not (tcp port 3128 and tcp port 23)不同。

使用例子:

基于类型过滤

Wireshark可以基于类型进行捕获过滤。其中可能使用的类型有主机host,网段net,端口port,端口范围portrange和特殊类型。

1. 主机host

语法格式: host host 解析:第一个host表示过滤器类型为host:第二个host表示主机地址,可以是ipv4或Ipv6地址。 例:捕获主机192.168.1.1 的数据包。

host 192.168.1.1

2. 网段net

net用来指定捕获那个网段的数据包,其中网络类型的过滤器有三种形式。

  • net net
net 192.168.1.0 //对应掩码 255.255.255.255
net 192.168.1 //对应掩码 255.255.255.0
net 192.168 //对应掩码 255.255.0.0
net 192 //对应掩码255.0.0.0
  • net mask
net 192.168.1.0 mask 255.255.255.0
  • net CIDR
net 192.168.1.0/24

3. 端口port

语法格式: port port

port 53

4. 端口范围

语法:portrange port1-port2

portrange 1-100

5. 特殊类型

gateway host

基于传输方向的过滤

1. 源src

可以在host,net,port,portrange类型前面加上src

src host host //仅捕获地址为指定主机的数据包
src net net //仅捕获源地址为指定网段的数据包
src port port  //仅捕获源端口为指定端口的数据包
src portrange port1-port2 //仅捕获端口范围为指定端口范围的数据包

2. 目标dst

dst host host //仅捕获目标地址为指定主机的数据包
dst net net //仅捕获目标地址为指定网段的数据包
dst port port //仅捕获目标端口为指定端口的数据包
dst portrange port1-port2 //仅捕获目标端口范围为指定端口范围的数据包

3. 源或者目标

src or dst host
src or dst net
src or dst port
src or dst portrange port1-port2

4. 源和目标

src and dst host
src and dst net
src and dst port
src and dst portrange port1-port2

5. 特殊方向

除了上述还有两种特殊方向捕获过滤器,分别是: 广播:broadcast 多播:multicast

ether broadcast //捕获以太网广播流量
ip broadcast //捕获ip广播流量
ether multicast //捕获以太网多播流量

基于数据过滤

1. 长度过滤

可以使用 less ,greater关键字

less 100 也可写成 len <=100
greater 100 也可写成 len>=100

2. 基于内容过滤

语法格式: proto[expr:size] relop express 参数解析:

  • proto:支持的协议,有ether,fddi,tr,wlan,ppp,slip,link,ip,arp,rarp,tcp,udp,icmp,ip6或radio
  • expr :指定协议的偏移地址
  • size:指定数据长度其中,单位bit
  • relop:指定使用的运算符,关系运算符有,>,<,>=,<=.=,!=,二进制运算符有,+,-,*,/,%,&,|,^,<<,>>

使用多个捕获过滤器

通过结合逻辑运算符可以同时使用多个捕获过滤器。 有: not (!) ,and(&&),or(||) ,

例如:捕获主机192.168.1.100,而且tcp端口为80的数据包

host 192.168.1.100 and tcp port 80

注意: not(!) 具有最高优先级,and(&&)和 or(||)优先级相等。

参考:https://zhuanlan.zhihu.com/p/272685665