3. DISPLAYFILTER(顯示過濾器)
顯示過濾器用于查找捕捉記錄中的內容。請不要將捕捉過濾器和顯示過濾器的概念相混淆。請參考Wireshark過濾器中的詳細內容。4. PACKET LISTPANE(封包列表)封包列表中顯示所有已經捕獲的封包。在這里您可以看到發(fā)送或接收方的MAC/IP地址,TCP/UDP端口號,協議或者封包的內容。如果捕獲的是一個OSI layer2的封包,您在Source(來源)和Destination(目的地)列中看到的將是MAC地址,當然,此時Port(端口)列將會為空。如果捕獲的是一個OSI layer3或者更高層的封包,您在Source(來源)和Destination(目的地)列中看到的將是IP地址。Port(端口)列僅會在這個封包屬于第4或者更高層時才會顯示。您可以在這里添加/刪除列或者改變各列的顏色:Edit menu -> Preferences5. PACKET DETAILSPANE(封包詳細信息)這里顯示的是在封包列表中被選中項目的詳細信息。信息按照不同的OSI layer進行了分組,您可以展開每個項目查看。下面截圖中展開的是HTTP信息。6. DISSECTOR PANE(16進制數據)“解析器”在Wireshark中也被叫做“16進制數據查看面板”。這里顯示的內容與“封包詳細信息”中相同,只是改為以16進制的格式表述。在上面的例子里,我們在“封包詳細信息”中選擇查看TCP端口(80),其對應的16進制數據將自動顯示在下面的面板中(0050)。7. MISCELLANOUS(雜項)在程序的最下端,您可以獲得如下信息:- - 正在進行捕捉的網絡設備。- 捕捉是否已經開始或已經停止。- 捕捉結果的保存位置。- 已捕捉的數據量。- 已捕捉封包的數量。(P)- 顯示的封包數量。(D) (經過顯示過濾器過濾后仍然顯示的封包)- 被標記的封包數量。(M)
正如您在Wireshark教程第一部分看到的一樣,安裝、運行Wireshark并開始分析網絡是非常簡單的。使用Wireshark時最常見的問題,是當您使用默認設置時,會得到大量冗余信息,以至于很難找到自己需要的部分。過猶不及。這就是為什么過濾器會如此重要。它們可以幫助我們在龐雜的結果中迅速找到我們需要的信息。
--捕捉過濾器:用于決定將什么樣的信息記錄在捕捉結果中。需要在開始捕捉前設置。顯示過濾器:在捕捉結果中進行詳細查找。他們可以在得到捕捉結果后隨意修改。那么我應該使用哪一種過濾器呢?兩種過濾器的目的是不同的。捕捉過濾器是數據經過的第一層過濾器,它用于控制捕捉數據的數量,以避免產生過大的日志文件。顯示過濾器是一種更為強大(復雜)的過濾器。它允許您在日志文件中迅速準確地找到所需要的記錄。兩種過濾器使用的語法是完全不同的。我們將在接下來的幾頁中對它們進行介紹:1. 捕捉過濾器捕捉過濾器的語法與其它使用Lipcap(Linux)或者Winpcap(Windows)庫開發(fā)的軟件一樣,比如著名的TCPdump。捕捉過濾器必須在開始捕捉前設置完畢,這一點跟顯示過濾器是不同的。設置捕捉過濾器的步驟是:- 選擇 capture -> options。- 填寫"capture filter"欄或者點擊"capturefilter"按鈕為您的過濾器起一個名字并保存,以便在今后的捕捉中繼續(xù)使用這個過濾器。- 點擊開始(Start)進行捕捉。語法: Protocol Direction Host(s) Value Logical Operations Other expression
例子: tcp dst 10.1.1.1 80 and tcp dst 10.2.2.2 3128 Wireshark圖解教程(簡介、抓包、過濾器) Protocol(協議):可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.如果沒有特別指明是什么協議,則默認使用所有支持的協議。
Wireshark圖解教程(簡介、抓包、過濾器) 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"是一樣的。Wireshark圖解教程(簡介、抓包、過濾器) Host(s):可能的值: net, port, host, portrange.如果沒有指定此值,則默認使用"host"關鍵字。例如,"src 10.1.1.1"與"src host 10.1.1.1"相同。
Wireshark圖解教程(簡介、抓包、過濾器) Logical Operations(邏輯運算):可能的值:not, and, or.否("not")具有最高的優(yōu)先級。或("or")和與("and")具有相同的優(yōu)先級,運算時從左至右進行。例如,"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)"不同。例子:
tcp dst port 3128顯示目的TCP端口為3128的封包。ip src host 10.1.1.1顯示來源IP地址為10.1.1.1的封包。
host 10.1.2.3顯示目的或來源IP地址為10.1.2.3的封包。src portrange 2000-2500顯示來源為UDP或TCP,并且端口號在2000至2500范圍內的封包。not imcp顯示除了icmp以外的所有封包。(icmp通常被ping工具使用)src host 10.7.2.12 and not dst net 10.200.0.0/16顯示來源IP地址為10.7.2.12,但目的地不是10.200.0.0/16的封包。(src host 10.4.1.12 or src net 10.6.0.0/16) and tcp dstportrange 200-10000 and dst net 10.0.0.0/8顯示來源IP為10.4.1.12或者來源網絡為10.6.0.0/16,目的地TCP端口號在200至10000之間,并且目的位于網絡10.0.0.0/8內的所有封包。
注意事項:
當使用關鍵字作為值時,需使用反斜杠“\”。"ether proto \ip" (與關鍵字"ip"相同).這樣寫將會以IP協議作為目標。
"ip proto \icmp" (與關鍵字"icmp"相同).這樣寫將會以ping工具常用的icmp作為目標。
可以在"ip"或"ether"后面使用"multicast"及"broadcast"關鍵字。當您想排除廣播請求時,"no broadcast"就會非常有用。
查看 TCPdump的主頁以獲得更詳細的捕捉過濾器語法說明。在Wiki Wireshark website上可以找到更多捕捉過濾器的例子。
2. 顯示過濾器:
通常經過捕捉過濾器過濾后的數據還是很復雜。此時您可以使用顯示過濾器進行更加細致的查找。它的功能比捕捉過濾器更為強大,而且在您想修改過濾器條件時,并不需要重新捕捉一次。
語法: | Protocol | . | . | ||||||
Protocol(協議):您可以使用大量位于OSI模型第2至7層的協議。點擊"Expression..."按鈕后,您可以看到它們。比如:IP,TCP,DNS,SSH您同樣可以在如下所示位置找到所支持的協議:Wireshark的網站提供了對各種 協議以及它們子類的說明。 String1,String2(可選項):協議的子類。點擊相關父類旁的"+"號,然后選擇其子類。 Comparisonoperators (比較運算符):可以使用6種比較運算符:
英文寫法: | C語言寫法: | 含義: |
等于 | ||
不等于 | ||
大于 | ||
小于 | ||
大于等于 | ||
小于等于 |
Logical expressions(邏輯運算符):
英文寫法: | C語言寫法: | 含義: |
邏輯與 | ||
邏輯或 | ||
邏輯異或 | ||
邏輯非 |
被程序員們熟知的邏輯異或是一種排除性的或。當其被用在過濾器的兩個條件之間時,只有當且僅當其中的一個條件滿足時,這樣的結果才會被顯示在屏幕上。讓我們舉個例子:"tcp.dstport 80 xor tcp.dstport 1025"只有當目的TCP端口為80或者來源于端口1025(但又不能同時滿足這兩點)時,這樣的封包才會被顯示。例子:
snmp || dns || icmp 顯示SNMP或DNS或ICMP封包。 ip.addr == 10.1.1.1 顯示來源或目的IP地址為10.1.1.1的封包。
ip.src != 10.1.2.3 or ip.dst != 10.4.5.6 顯示來源不為10.1.2.3或者目的不為10.4.5.6的封包。換句話說,顯示的封包將會為:來源IP:除了10.1.2.3以外任意;目的IP:任意以及來源IP:任意;目的IP:除了10.4.5.6以外任意
ip.src != 10.1.2.3 and ip.dst != 10.4.5.6 顯示來源不為10.1.2.3并且目的IP不為10.4.5.6的封包。換句話說,顯示的封包將會為:來源IP:除了10.1.2.3以外任意;同時須滿足,目的IP:除了10.4.5.6以外任意
tcp.port == 25 顯示來源或目的TCP端口號為25的封包。 tcp.dstport == 25 顯示目的TCP端口號為25的封包。 tcp.flags 顯示包含TCP標志的封包。 tcp.flags.syn == 0x02 顯示包含TCP SYN標志的封包。 如果過濾器的語法是正確的,表達式的背景呈綠色。如果呈紅色,說明表達式有誤。表達式正確表達式錯誤 原文地址:http://openmaniak.com/cn/wireshark.php#
最新資訊