wireshark 捕獲過濾器


在Wireshark中往往會抓到很多數據,這時我們就需要用到過濾器Filter來篩選出我們所關心的數據包。

Wireshark提供了兩種過濾器:

捕獲過濾器:在抓包之前就設定好過濾條件,然后只抓取符合條件的數據包。

顯示過濾器:在已捕獲的數據包集合中設置過濾條件,隱藏不想顯示的數據包,只顯示符合條件的數據包。

需要注意的是,這兩種過濾器所使用的語法是完全不同的,在本篇博文中將介紹捕獲過濾器。

使用捕獲過濾器的主要原因就是性能。如果你知道並不需要分析某個類型的流量,那么可以簡單地使用捕獲過濾器過濾掉它,從而節省那些會被用來捕獲這些數據包的處理器資源。當處理大量數據的時候,使用捕獲過濾器是相當好用的。

新版Wireshark的初始界面非常簡潔,主要就提供了兩項功能:先設置捕獲過濾器,然后再選擇負責抓包的網卡。由此可見捕獲過濾器的重要性。

比如我們希望只抓取與80端口之間的通信,那么可以設置過濾規則“port 80”。

 

 

 

 
捕獲過濾器應用於Winpcap,並使用Berkeley Packet Filter(BPF)語法,其語法規則如下:

協議 方向 類型 數據

協議,可能的值:ether、ip、arp、tcp、udp、http、ftp……,如果沒有特別指明是什么協議,則默認使用所有支持的協議。

方向,可能的值:src、dst,如果沒有特別指明來源或目的地,則默認使用“src or dst”作為關鍵字。例如,“host 10.2.2.2”與“src or dst host 10.2.2.2”是一樣的。

類型,可能的值:net、port、host,如果沒有指定此值,則默認使用”host”關鍵字。例如,“src 10.1.1.1”與“src host 10.1.1.1”相同。

 

我們還可以使用以下三種邏輯運算符,對表達式進行組合,從而創建更高級的表達式。

邏輯與&&,邏輯或||,邏輯非!

比如下面這個表達式,只捕獲源地址是192.168.0.10並且源端口或目的端口是80的數據包。

src 192.168.0.10 && port 80

 

 
應用示例

如果我們希望抓取某台特定主機或設備的數據包,那么可以根據設備的IP地址或MAC地址來設置過濾規則。

比如只抓取IP地址為192.168.0.10的數據包。

host 192.168.0.10

如果考慮到主機的IP地址可能會變化,那么可以指定MAC地址進行過濾。

ether host 00-50-56-C0-00-01

也可以根據數據的流向來過濾:

src host 192.168.0.10 //從192.168.0.10發出的數據包

dst host 192.168.0.10 //發往192.168.0.10的數據包

ether src host 00-50-56-C0-00-01 //從00-50-56-C0-00-01發出的數據包

ether dst host 00-50-56-C0-00-01 //發往00-50-56-C0-00-01的數據包

需要注意的是,host在表達式中是默認選項,因而上面的這幾個表達式無論是否加上host都是表達相同含義。

 

再比如通過端口進行過濾:

port 8080 //只捕獲8080端口的流量

!port 8080 //捕獲8080端口外的所有流量

dst port 8080 //只捕獲前往8080端口的流量

 

通過協議或通信方式進行過濾:

icmp //只捕獲ICMP流量

!broadcast //不要抓取廣播包

 


原文地址:
https://blog.51cto.com/yttitan/1734425


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM