Wireshark是一款非常棒的Unix和Windows上的開源網(wǎng)絡(luò)協(xié)議分析器。Wireshark中文版可以實時檢測網(wǎng)絡(luò)通訊數(shù)據(jù),也可以檢測其抓取的網(wǎng)絡(luò)通訊數(shù)據(jù)快照文件。Wireshark中文版可以通過圖形界面瀏覽這些數(shù)據(jù),可以查看網(wǎng)絡(luò)通訊數(shù)據(jù)包中每一層的詳細(xì)內(nèi)容。Wireshark擁有許多強(qiáng)大的特性:包含有強(qiáng)顯示過濾器語言(rich display filter language)和查看TCP會話重構(gòu)流的能力;它更支持上百種協(xié)議和媒體類型; 擁有一個類似tcpdump(一個Linux下的網(wǎng)絡(luò)協(xié)議分析工具)的名為tethereal的的命令行版本。
特色功能:
Wireshark(前稱Ethereal)是一個網(wǎng)絡(luò)封包分析軟件。網(wǎng)絡(luò)封包分析軟件的功能是擷取網(wǎng)絡(luò)封包, 并盡可能顯示出最為詳細(xì)的網(wǎng)絡(luò)封包資料。網(wǎng)絡(luò)封包分析軟件的功能可想像成 "電工技師使用電表來量測電流、電壓、電阻" 的工作 - 只是將場景移植到網(wǎng)絡(luò)上,并將電線替換成網(wǎng)絡(luò)線。
在過去,網(wǎng)絡(luò)封包分析軟件是非常昂貴,或是專門屬于營利用的軟件。Ethereal的出現(xiàn)改變了這一切。在GNU GPL通用許可證的保障范圍底下,使用者可以以免費的代價取得軟件與其程式碼,并擁有針對其原始碼修改及客制化的權(quán)利。Ethereal是目前全世界最廣泛的網(wǎng)絡(luò)封包分析軟件之一
Wireshakr抓包界面
說明:數(shù)據(jù)包列表區(qū)中不同的協(xié)議使用了不同的顏色區(qū)分。協(xié)議顏色標(biāo)識定位在菜單欄View --> Coloring Rules。如下所示
WireShark 主要分為這幾個界面
1. Display Filter(顯示過濾器), 用于設(shè)置過濾條件進(jìn)行數(shù)據(jù)包列表過濾。菜單路徑:Analyze --> Display Filters。
2. Packet List Pane(數(shù)據(jù)包列表), 顯示捕獲到的數(shù)據(jù)包,每個數(shù)據(jù)包包含編號,時間戳,源地址,目標(biāo)地址,協(xié)議,長度,以及數(shù)據(jù)包信息。 不同協(xié)議的數(shù)據(jù)包使用了不同的顏色區(qū)分顯示。
3. Packet Details Pane(數(shù)據(jù)包詳細(xì)信息), 在數(shù)據(jù)包列表中選擇指定數(shù)據(jù)包,在數(shù)據(jù)包詳細(xì)信息中會顯示數(shù)據(jù)包的所有詳細(xì)信息內(nèi)容。數(shù)據(jù)包詳細(xì)信息面板是最重要的,用來查看協(xié)議中的每一個字段。各行信息分別為
(1)Frame: 物理層的數(shù)據(jù)幀概況
(2)Ethernet II: 數(shù)據(jù)鏈路層以太網(wǎng)幀頭部信息
(3)Internet Protocol Version 4: 互聯(lián)網(wǎng)層IP包頭部信息
(4)Transmission Control Protocol: 傳輸層T的數(shù)據(jù)段頭部信息,此處是TCP
(5)Hypertext Transfer Protocol: 應(yīng)用層的信息,此處是HTTP協(xié)議
TCP包的具體內(nèi)容
從下圖可以看到wireshark捕獲到的TCP包中的每個字段。
4. Dissector Pane(數(shù)據(jù)包字節(jié)區(qū))。
Wireshark過濾器設(shè)置
初學(xué)者使用wireshark時,將會得到大量的冗余數(shù)據(jù)包列表,以至于很難找到自己自己抓取的數(shù)據(jù)包部分。wireshar工具中自帶了兩種類型的過濾器,學(xué)會使用這兩種過濾器會幫助我們在大量的數(shù)據(jù)中迅速找到我們需要的信息。
(1)抓包過濾器
捕獲過濾器的菜單欄路徑為Capture --> Capture Filters。用于在抓取數(shù)據(jù)包前設(shè)置。
如何使用?可以在抓取數(shù)據(jù)包前設(shè)置如下。
ip host 60.207.246.216 and icmp表示只捕獲主機(jī)IP為60.207.246.216的ICMP數(shù)據(jù)包。獲取結(jié)果如下:
(2)顯示過濾器
顯示過濾器是用于在抓取數(shù)據(jù)包后設(shè)置過濾條件進(jìn)行過濾數(shù)據(jù)包。通常是在抓取數(shù)據(jù)包時設(shè)置條件相對寬泛,抓取的數(shù)據(jù)包內(nèi)容較多時使用顯示過濾器設(shè)置條件顧慮以方便分析。同樣上述場景,在捕獲時未設(shè)置捕獲規(guī)則直接通過網(wǎng)卡進(jìn)行抓取所有數(shù)據(jù)包,如下
執(zhí)行ping www.huawei.com獲取的數(shù)據(jù)包列表如下
觀察上述獲取的數(shù)據(jù)包列表,含有大量的無效數(shù)據(jù)。這時可以通過設(shè)置顯示器過濾條件進(jìn)行提取分析信息。ip.addr == 211.162.2.183 and icmp。并進(jìn)行過濾。
上述介紹了抓包過濾器和顯示過濾器的基本使用方法。在組網(wǎng)不復(fù)雜或者流量不大情況下,使用顯示器過濾器進(jìn)行抓包后處理就可以滿足我們使用。下面介紹一下兩者間的語法以及它們的區(qū)別。