Wireshark簡明教程

正如您在Wireshark教程第一部分看到的一樣,安裝、運行Wireshark並開始分析網絡是非常簡單的。

使用Wireshark時最常見的問題,是當您使用默認設置時,會得到大量冗餘信息,以至於很難找到自己需要的部分。
過猶不及。

這就是爲什麼過濾器會如此重要。它們可以幫助我們在龐雜的結果中迅速找到我們需要的信息。

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

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

兩種過濾器使用的語法是完全不同的。我們將在接下來的幾頁中對它們進行介紹:



                       1. 捕捉過濾器             2. 顯示過濾器



1. 捕捉過濾器

捕捉過濾器的語法與其它使用Lipcap(Linux)或者Winpcap(Windows)庫開發的軟件一樣,比如著名的TCPdump。捕捉過濾器必須在開始捕捉前設置完畢,這一點跟顯示過濾器是不同的。

設置捕捉過濾器的步驟是:
- 選擇 capture -> options。
- 填寫"capture filter"欄或者點擊"capture filter"按鈕爲您的過濾器起一個名字並保存,以便在今後的捕捉中繼續使用這個過濾器。
- 點擊開始(Start)進行捕捉。

wireshark

wireshark

語法:
Protocol
Direction
Host(s)
Value
Logical Operations
Other expression
例子:
tcp
dst
10.1.1.1
80
and
tcp dst 10.2.2.2 3128
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)"不同。



例子:

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 dst portrange 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 .
String 1
.
String 2
Comparison
operator
Value
Logical
Operations
Other
expression
例子:
ftp
passive
ip
==
10.2.3.4
xor
icmp.type
Protocol(協議):

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

wireshark

wireshark

您同樣可以在如下所示位置找到所支持的協議:

wireshark

wireshark

Wireshark的網站提供了對各種 協議以及它們子類的說明

String1, String2 (可選項):

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

wireshark

Comparison operators (比較運算符):

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

英文寫法:  C語言寫法:  含義:
eq 
== 
等於
ne
!=
不等於
gt
>
大於
lt
<
小於
ge
>=
大於等於
le
<=
小於等於
Logical expressions(邏輯運算符):

英文寫法:  C語言寫法:  含義:
and
&&
邏輯與
or
||
邏輯或
xor
^^
邏輯異或
not
!
邏輯非
被程序員們熟知的邏輯異或是一種排除性的或。當其被用在過濾器的兩個條件之間時,只有當且僅當其中的一個條件滿足時,這樣的結果纔會被顯示在屏幕上。
讓我們舉個例子:
"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標誌的封包。
如果過濾器的語法是正確的,表達式的背景呈綠色。如果呈紅色,說明表達式有誤。

wireshark 表達式正確
wireshark 表達式錯誤
您可以在Wireshark官方網站Wiki Wireshark website上找到關於顯示過濾器的補充信息。
 
Wireshark提供了大量不同的統計工具供您使用和參考。您可以通過點擊屏幕頂部的"statistics"標籤找到它們。

我們將會在下面舉例說明:






綜合

協議層

會話

節點

輸入輸出圖


會話列表

節點列表

服務響應時間






 
wireshark

 
RTP

SIP
VoIP Calls


 
目的地
流量圖
HTTP
IP地址



封包長度
端口類型
 



綜合

在綜合窗口裏可以看到全局的統計信息:
- 保存捕捉結果的文件
- 捕捉時間
- 捕捉過濾器的信息。
- 顯示過濾器的信息。

wireshark

返回頁面頂部


協議層

顯示按照OSI layer分類後的統計數據。

wireshark

返回頁面頂部


會話

如果您使用的是TCP/IP協議或者基於此技術的應用,那麼這一頁將會有四個標籤:Ethernet,IP,TCP以及UDP。“會話”是指兩臺主機之間進行的交互。
每種協議後面會有一個數字,這個數字表示的是使用這種協議的會話總數。比如說: "Ethernet:6"。

Ethernet 會話:

wireshark

IP會話:

wireshark

TCP會話:

wireshark

UDP會話:

wireshark

返回頁面頂部


節點

這一項提供了每個節點接收和發送數據的統計信息。
每一種協議後面的數字指的是使用這種協議的節點數量。例如:"Ethernet:6"。

Ethernet節點:

wireshark

IP節點:

wireshark

TCP節點:

wireshark

UDP節點:

wireshark

返回頁面頂部


輸入輸出圖

在這一項中,您可以生成一些簡單的輸入輸出圖。
您還可以通過添加顯示過濾器而生成新的圖表,並將他們繪製在一起進行比較。
在下面的例子中,我們同時生成了"tcp"和"http"數據的圖表。

wireshark

返回頁面頂部


會話列表

這裏提供的信息與"會話"一節中相同。

返回頁面頂部


節點列表

這裏提供的信息與"節點"一節中相同。

返回頁面頂部


服務響應時間

在這一部分,您可以查看13種協議的詳細信息。
在下面的例子中,我們選擇了運行於NetBIOS協議(參見協議層)之上的SMB(Server Message Block)作爲觀察對象。它通常被用於Microsoft Windows中的文件共享。

wireshark

SMB過濾器中顯示的是Wireshark顯示過濾器。
在下面的例子中,我們沒有使用任何過濾器。

wireshark

wireshark

返回頁面頂部


RTP

RTP (Real-time Transport Protocol, RFC 3550)是一種用於在IP網絡上傳送聲音和視頻的協議。它運行在User Datagram Protocol (UDP)的上層。
它經常與SIP或H.323組合使用。

顯示所有的流

wireshark

wireshark

流分析

wireshark

wireshark



返回頁面頂部


SIP

SIP (Session Initiation Protocol, RFC 3261)是一種信令協議,用於建立VoIP或視頻會話。
它通常與RTP一起工作,後者用於傳輸多媒體數據。

wireshark



返回頁面頂部


VoIP呼叫

總的來說,VoIP (Voice over IP)使用兩類協議:
- 信令協議。如SIP或H.323
- 傳輸協議。如RTP

wireshark

wireshark

返回頁面頂部


目的地址

這一部分統計了所有捕獲封包的目的地址。

wireshark

wireshark

返回頁面頂部


數據流

這一部分提供了對TCP連接的持續(序列)分析。
在下面的例子中,我們創建了一個顯示過濾器,使查詢結果中僅包含有關openmaniak.com網站的內容。

wireshark

最前面三行分別顯示了"SYN","SYN ACK"及"ACK"形式的TCP連接。

wireshark


返回頁面頂部


HTTP

HTTP (Hypertext Transfer Protocol)是一種用於客戶端-服務器通信的協議。它通常被用來傳送HTML文件。
大多數情況下,HTTP客戶端就是網頁瀏覽器。當瀏覽器向已知的(用戶填入的)URL發送HTTP請求後,對應Web服務器也會用HTTP作爲迴應,併發回客戶端所請求的網頁。

這一節下面有三個子項:
- 流量分佈
- 封包計數器
- 應答

流量分佈:

wireshark

在下面的例子裏,我們創建了一個顯示過濾器,使查詢結果中僅包含有關openmaniak.com網站的內容。

wireshark

wireshark

封包計數器:

顯示HTTP請求和響應。

wireshark

在下面的例子裏,我們創建了一個顯示過濾器,使查詢結果中僅包含有關openmaniak.com網站的內容。

wireshark

wireshark

應答:

顯示從Web服務器取得的文件。

wireshark

在下面的例子中,我們創建了一個顯示過濾器,使查詢結果中僅包含有關openmaniak.com網站的內容。

wireshark

wireshark

返回頁面頂部


IP地址

統計封包的來源或目的IP地址。

wireshark

wireshark

返回頁面頂部


封包長度

wireshark

wireshark

返回頁面頂部


端口類型

顯示TCP或UDP端口的統計數據。

wireshark

wireshark 
 

 

0

收藏

mryujianbo

34篇文章,2W+人氣,0粉絲

Ctrl+Enter 發佈

發佈

取消

掃一掃,領取大禮包

0

分享
mryujianbo
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章