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