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 |
文件管理流量(Telenet或FTP) |
smtp ||pop||imap |
文本email流量(SMTP/POP/IMAP) |