一站式學習Wireshark(九):應用Wireshark顯示過濾器分析特定數據流(上)

這裏可以下載到一些各類協議的抓包樣本:https://wiki.wireshark.org/SampleCaptures

還有各類過濾條件參考

https://wiki.wireshark.org/CaptureFilters

https://wiki.wireshark.org/DisplayFilters


轉載請在文首保留原文出處:EMC中文支持論壇https://community.emc.com/go/chinese image001.gif

 

介紹

 

掌握顯示過濾器對於網絡分析者來說是一項必備的技能。這是一項大海撈針的技巧。學會構建,編輯,保存關鍵的顯示過濾器能夠節省數小時的時間。

與捕捉過濾器使用的BPF語法不同,顯示過濾器使用的是Wireshark特定的格式。除了某些特例之外,Wireshark顯示過濾器和捕捉過濾器有很大的區別。

更多信息

 

最簡單的過濾器語法:

 

最簡單的顯示過濾器可基於協議,應用,域名,或字符,對大小寫敏感。絕大多數簡單的顯示過濾器由小寫字母組成。

 

協議過濾器:

·         arp:顯示所有包括ARP請求和回覆在內的所有ARP數據流。

·         ip:顯示內含IPv4頭在內的(如ICMP目的地址不可達報文,在ICMP報文頭之後返回到來方向的IPv4頭)IP數據流。

·         ipv6:顯示所有IPv6數據流,包括內含IPv6報文頭的IPv4報文,如6to4,Teredo,以及ISATAP數據流。

·         tcp:顯示所有基於TCP的數據流。


應用過濾器:

·         bootp:顯示所有DHCP數據流(基於BOOTP)。

·         dns:顯示包括TCP區域傳輸以及基於標準UDP的DNS請求和回覆在內的所有DNS數據流。

·         tftp:顯示所有TFTP(Trivial File Transfer Protocol)數據流。

·         http:顯示所有HTTP命令,回覆以及數據傳輸報文,但不顯示TCP握手報文,TCP ACK報文以及TCP結束報文。

·         icmp:顯示所有ICMP報文。

 

域過濾器:

·         boot.option.hostname:顯示所有包含主機名的DHCP數據流(DHCP基於BOOTP)。

·         http:host:顯示所有包含HTTP主機名字段的所有HTTP報文。此報文是客戶端向網絡服務器發送請求時發出的。

·         ftp.request.command:顯示所有包含命令的FTP數據流,比如USER,PASS,或RETR命令。

 

字符過濾器:

·         tcp.analysis.flags:顯示所有包含TCP分析標識的所有報文,包括報文丟失,重傳,或零窗口標識。

·         tcp.analysis,zero_window:顯示含有表明發送方的接收緩存用完標識的報文。

 

瞭解字段名:

 

很多顯示過濾器都是基於字段名(例如http.host)。要了解字段名,在Packet list面板選中字段查看Status條,如下圖所示。

image002.png

本例中,我們在Packet Display面板中選中第10幀,然後在Packet Details面板中展開HTTP報文頭。之後在報文的HTTP段點擊Request Method行,狀態條表明這一字段稱爲http.request.method。

 

我們在顯示過濾器區域輸入http.request.method以顯示所有包含這一字段的報文。如下圖所示,注意到Status條表明此抓包文件包含2011個報文只有101個報文符合過濾條件。

image003.png

這是一個很好用的過濾器,以確定HTTP客戶端請求了哪些內容。網絡服務器不發送HTTP request method,它們發送HTTP響應代碼。

 

使用自動完成功能:

 

當你在過濾器區域輸入http.request.method的時候,Wireshark打開一個窗口讓你遍歷過濾器選項。當你輸入http.(包括點號),你會看到所有可能的以此爲開頭的顯示過濾條件列表。繼續輸入http.request. ,會看到以這一短語爲開頭的過濾條件,如下圖所示:

image004.png

 

可以使用這一自動完成功能查看所有可用的過濾條件。例如,輸入tcp. ,Wireshark會列出所有可用的TCP過濾條件。如果輸入tcp.analysis. ,Wireshark會列出所有處理TCP問題與性能的TCP analysis過濾條件,如下圖:

image005.png

 

顯示過濾器比較運算符:

 

通過擴展過濾條件可查找某一域值,Wireshark針對此功能支持數字比較運算符。

1. ==或eq

例如:ip.src == 10.2.2.2

顯示所有源地址爲10.2.2.2的IPv4數據流

2. !=或ne

例如:tcp.srcport != 80

顯示源端口除了80以外的所有TCP數據流

3. >或gt

例如:frame.time_relative > 1

顯示距前一個報文到達時間相差1秒的報文

4. <或lt

例如:tcp.window_size < 1460

顯示當TCP接收窗口小於1460字節時的報文

5. >=或ge

例如:dns.count.answers >= 10

顯示包含10個以上answer的DNS響應報文

6. <=或le

例如:ip.ttl <= 10

顯示IP報文中Time to Live字段小於等於10的報文

7. contains

例如:http contains “GET”

顯示所有HTTP客戶端發送給HTTP服務器的GET請求

 

對於基於TCP應用的過濾條件採用比較運算符。例如,如果想看端口80上面的HTTP數據流,使用HTTP.port==80。

 

小貼士:

運算符兩邊不用留空格。ip.src == 10.2.2.2與ip.src==10.2.2.2的效果是相同的。

 

使用Expressions:

 

當你實在不知道該過濾些什麼的時候,使用顯示過濾器工具欄的Expression按鈕。在Filter Expression窗口,輸入感興趣的應用或協議名,跳轉到Field Name列表中相應條目。Relation選項用來添加一個比較運算符,窗口右端是預先定義的值。點擊Apply按鈕完成。

image006.png

 

 

編輯和使用默認過濾器:

 

Wireshark提供15個缺省顯示過濾器供創建新的顯示過濾器時參考。點擊Filter按鈕或點擊Display Filter按鈕打開顯示過濾器窗口,如下圖所示:

image007.png

下圖顯示了缺省過濾器列表,選中之後點擊OK

image008.png

 

小心使用缺省過濾器。以太網和IP主機過濾器可能與實際網絡不符。使用之前必須編輯或作爲創建參考。

 

小貼士:

顯示過濾器保存在一個名爲dfilters的文件中,可以使用任何文本編輯器來進行編輯。要找到你的dfilters文件,首先在Status條的右端查找當前profile名。如果這一區域表明你在默認profile,選擇Help\About Wireshark\Folders並雙擊Personal Configuration文件夾鏈接,dfilters文件就在這個目錄裏。

發佈了16 篇原創文章 · 獲贊 20 · 訪問量 94萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章