wireshark提供主要两种过滤器。
捕获过滤器:当进行数据包捕获时,只有那些满足给定的包含/排除表达式的数据包会被捕获。
显示过滤器:根据指定的表达式用于在一个已捕获的数据包的集合中,隐藏不想显示的数据包,或者只显示那些需要的数据包。
一、捕获过滤器
1、选择Capture->Interface ,然后单击Options,打开Capture Options对话框。
2、在Interface 选择需要过滤的网卡。
3、在Filter Button 旁输入一个表达式,并应用捕获过滤器。我们希望过滤器只显示出262端口的出站和入站的流量。
4、当设置好过滤器之后,单击Start开始捕获。
(1)捕获过滤器的BPF语法。
捕获过滤器应用于WinPcap,并使用Berkeley Packet Filter 语法。使用BPF语法创建的过滤器被称为表达式,每一个表达式包含一个或多个原语。每个原语包含一个或多个限定词,然后跟着一个ID或 数字。
限定词 | 说明 | 例子 |
Type | 指出名字或数字所代表的意义 | host net port |
Dir | 传输的方向 | src dst |
Proto | 限定所要匹配的协议 | ether ip tcp udp http ftp |
例: dst host 192.168.0.10 && tcp port 80
你可以使用3种逻辑运算符,对原语进行组合。
1、连接运算符 与(&&)
2、选择运算符或(||)
3、否定运算符 非(!)
假设你对一个正在和你网络中某个服务器进行交互的主机锁产生的流量感兴趣,你在这台服务器可以创建一个使用host限定词进行过滤。
host 172.17.12.123
你同样可以使用一台设备的主机名host限定词进行过滤。
host testserver2
或者考虑到一台主机的ip地址可能会发生变化,你可以通过ether协议限定词,对它的MAC进行过滤。
ether host 5C-C6-D0-7A-F3-A2
传输方向限定词通常会和前面的例子演示的例子一起使用。举例来说,想捕获来自某台主机的流量,加入src限定词。
src host 172.28.17.124
下面只对8080端口进行流量捕获的简单例子。
port 8080
二、显示过滤器
你可以在Packet List 面板上方的Filter文本框中,输入一个显示过滤器。显示过滤器更加的常用。
如果想查看udp协议的数据包,在过滤器中输入udp,就显示出UDP的协议包。如果想删除过滤器,点击Clear 按钮。
只显示ip地址192.28.17.64的数据包,可以使用下面的例子。
ip.addr==192.28.17.64
现在假设你只需要查看那些长度小于128字节的数据包,你可以使用如下例子:
frame.len<=128
如果我们想显示两个IP地址的数据包。我们可以使用or操作来创建一个表达式,只显示这两个IP地址的数据包。
ip.addr==192.168.17.24 or ip.addr==192.168.17.25
tcp.port==3389 排除RDP流量
tcp.flags.syn==1 具有SYN标志位的TCP数据包
tcp.flags.rst==1 具有RST标志位的TCP数据包
!arp 排除ARP流量
http 所有HTTP的流量
tcp.port==23||tcp.port==21 文本管理流量