Wireshark过滤器详解
1.Wireshark主要提供两种主要的过滤器
-
捕获过滤器:当进行数据包捕获时,只有那些满足给定的包含/排除表达式的数据包会被捕获
-
显示过滤器:该过滤器根据指定的表达式用于一个已捕获的数据包集合,它将隐藏不想显示的数据包或者只显示那些需要的数据包
2.捕获过滤器
2.1捕获过滤器的BPF语法:
使用BPF语法创建的过滤器被称为expression(表达式),并且每个表达式包含一个或多个primitives(原语)。每个原语包含一个或多个qualifiers(限定词),然后跟着一个ID名字或数字
限定词 |
|
例子 |
Type |
指出名字或数字所代表的含义 |
host、net、port |
Dir |
指出传输方向是前往还是来自名字或数字 |
src、dst |
Proto |
限定所要匹配的协议 |
Ether、ip、tcp、udp、ftp |
一个捕获过滤器样例
src host 192.168.0.10 && port 80
在给定表达式的组成部分中,一个src限定词和host 192.168.0.10组成了一个原语。这个原语本身就是表达式,可以用它只捕获那些源IP地址是192.168.0.10的流量
你也可以使用以下三种逻辑运算符,对原语进行组合,从而创建出更高级的表达式:
-
连接运算符 与(&&)
-
选择运算符 或(||)
-
否定运算符 非(!)
所以上述表达式只对源地址是192.168.0.10和源端口或目标端口是80的流量进行捕获
3.显示过滤器
显示应用器应用于筛选符合过滤器的数据包,对不符合条件的数据进行隐藏,只需清空显示过滤表达式即可回到原先的捕获文件
3.1应用显示过滤器的两种方法
3.1.1过滤器表达式对话框
3.2.2过滤器表达式语法结构
比较操作符
操作符 |
说明 |
== |
等于 |
!= |
不等于 |
> |
大于 |
< |
小于 |
>= |
大于或等于 |
<= |
小于或等于 |
逻辑操作符
操作符 |
说明 |
and |
两个条件同时被满足 |
or |
其中有一个条件满足 |
xor |
有且仅有一个条件满足 |
not |
没有条件满足 |
3.3.3显示过滤器表达式实例(常用)
过滤器 |
说明 |
!tcp.port==3389 |
排除RDP流量 |
tcp.flags.syn==1 |
具有SYN标志位的TCP数据包 |
tcp.flags.rst==1 |
具有RST标志位的TCP数据包 |
!arp |
排除ARP流量 |
tcp.port23 ||tcp.port21 |
文件管理流量(Telnet或FTP) |
smtp ||pop||imap |
文本email流量(SMTP/POP/IMAP) |