Wireshark 的两种过滤器
- 捕捉过滤器 刚开始进入wireshark的时候设置的过滤器,在抓包之前进行设置,在抓取时,就不会抓取不符合文件的数据包。 是数据经过的第一层过滤器,它用于控制捕捉数据的数量,以避免产生过大的日志文件。
- 进入后wireshark的显示过滤器,在捕捉结果中进行详细查找,他们可以在得到捕捉结果后随意修改。 是一种更为强大(复杂)的过滤器。它允许您在日志文件中迅速准确地找到所需要的记录。
两个不同的过滤器,过滤写法也会不一样。捕获过滤器(如tcp端口80)不应该与显示过滤器(如tcp.port == 80)相混淆。捕获过滤器的限制更多,用于减少原始数据包捕获的大小。显示过滤器用于隐藏一些数据包。先了解wireshark的显示过滤器写法。
先说捕捉过滤器
捕捉过滤器语法
-
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.2
与src or dst host 10.2.2.2
是一样的。 -
Host(s): 可能的值:net, port, host, portrange. 如果没有指定此值,则默认使用
host
关键字。 例如,src 10.1.1.1
与src 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 port23
与not (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(||)优先级相等。