這裏可以下載到一些各類協議的抓包樣本:https://wiki.wireshark.org/SampleCaptures
還有各類過濾條件參考
https://wiki.wireshark.org/CaptureFilters
https://wiki.wireshark.org/DisplayFilters
轉載請在文首保留原文出處:EMC中文支持論壇https://community.emc.com/go/chinese
介紹
掌握顯示過濾器對於網絡分析者來說是一項必備的技能。這是一項大海撈針的技巧。學會構建,編輯,保存關鍵的顯示過濾器能夠節省數小時的時間。
與捕捉過濾器使用的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條,如下圖所示。
本例中,我們在Packet Display面板中選中第10幀,然後在Packet Details面板中展開HTTP報文頭。之後在報文的HTTP段點擊Request Method行,狀態條表明這一字段稱爲http.request.method。
我們在顯示過濾器區域輸入http.request.method以顯示所有包含這一字段的報文。如下圖所示,注意到Status條表明此抓包文件包含2011個報文只有101個報文符合過濾條件。
這是一個很好用的過濾器,以確定HTTP客戶端請求了哪些內容。網絡服務器不發送HTTP request method,它們發送HTTP響應代碼。
使用自動完成功能:
當你在過濾器區域輸入http.request.method的時候,Wireshark打開一個窗口讓你遍歷過濾器選項。當你輸入http.(包括點號),你會看到所有可能的以此爲開頭的顯示過濾條件列表。繼續輸入http.request. ,會看到以這一短語爲開頭的過濾條件,如下圖所示:
可以使用這一自動完成功能查看所有可用的過濾條件。例如,輸入tcp. ,Wireshark會列出所有可用的TCP過濾條件。如果輸入tcp.analysis. ,Wireshark會列出所有處理TCP問題與性能的TCP analysis過濾條件,如下圖:
顯示過濾器比較運算符:
通過擴展過濾條件可查找某一域值,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按鈕完成。
編輯和使用默認過濾器:
Wireshark提供15個缺省顯示過濾器供創建新的顯示過濾器時參考。點擊Filter按鈕或點擊Display Filter按鈕打開顯示過濾器窗口,如下圖所示:
下圖顯示了缺省過濾器列表,選中之後點擊OK。
小心使用缺省過濾器。以太網和IP主機過濾器可能與實際網絡不符。使用之前必須編輯或作爲創建參考。
小貼士:
顯示過濾器保存在一個名爲dfilters的文件中,可以使用任何文本編輯器來進行編輯。要找到你的dfilters文件,首先在Status條的右端查找當前profile名。如果這一區域表明你在默認profile,選擇Help\About Wireshark\Folders並雙擊Personal Configuration文件夾鏈接,dfilters文件就在這個目錄裏。