開啟抓包之旅:Wireshark過濾器使用規則介紹

之前學習Wireshark,看到關於過濾器的介紹,特別是新手不明白捕捉過濾器和顯示過濾器的區別與作用。這篇文章感覺寫的挺好,特來分享。使用Wireshark時最常見的問題,是當您使用默認設置時,會得到大量冗餘信息,以至於很難找到自己需要的部分。這就是為什麼過濾器會如此重要。它們可以幫助我們在龐雜的結果中迅速找到我們需要的信息。

過濾器的區別

捕捉過濾器(CaptureFilters):用於決定將什麼樣的信息記錄在捕捉結果中。需要在開始捕捉前設置。顯示過濾器(DisplayFilters):在捕捉結果中進行詳細查找。他們可以在得到捕捉結果後隨意修改。那麼我應該使用哪一種過濾器呢?

兩種過濾器的目的是不同的。捕捉過濾器是數據經過的第一層過濾器,它用於控制捕捉數據的數量,以避免產生過大的日誌文件。顯示過濾器是一種更為強大(複雜)的過濾器。它允許您在日誌文件中迅速準確地找到所需要的記錄。

兩種過濾器使用的語法是完全不同的。

捕捉過濾器

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 port 23″與"(not tcp port 3128) and tcp port 23″相同。"not tcp port 3128 and tcp port 23″與"not (tcp port 3128 and tcp port 23)"不同。

顯示來源IP地址為10.1.1.1的封包。

注意事項:

當使用關鍵字作為值時,需使用反斜槓""。"ether proto \ip" (與關鍵字"ip"相同).這樣寫將會以IP協議作為目標。

"ip proto \icmp" (與關鍵字"icmp"相同).這樣寫將會以ping工具常用的icmp作為目標。

可以在"ip"或"ether"後面使用"multicast"及"broadcast"關鍵字。當您想排除廣播請求時,"no broadcast"就會非常有用。

Protocol(協議):

您可以使用大量位於OSI模型第2至7層的協議。點擊"Expression…"按鈕後,您可以看到它們。比如:IP,TCP,DNS,SSH

String1, String2 (可選項):

協議的子類。點擊相關父類旁的"+"號,然後選擇其子類。

Comparison operators (比較運算符):

可以使用6種比較運算符:

顯示過濾器

顯示來源不為10.1.2.3並且目的IP不為10.4.5.6的封包。換句話說,顯示的封包將會為:來源IP:除了10.1.2.3以外任意;同時須滿足,目的IP:除了10.4.5.6以外任意

如果過濾器的語法是正確的,表達式的背景呈綠色。如果呈紅色,說明表達式有誤。