ucbug軟件站:安全、綠色、放心的專業(yè)下載站!首頁|最近更新|專題集合|標(biāo)簽云|站內(nèi)導(dǎo)航|加入收藏

Wireshark網(wǎng)絡(luò)抓包工具使用教程

時(shí)間:2021-11-14 00:40:00來源:未知人氣:0

Wireshark(前稱Ethereal)是一個(gè)網(wǎng)絡(luò)數(shù)據(jù)包分析軟件。網(wǎng)絡(luò)數(shù)據(jù)包分析軟件的功能是截取網(wǎng)絡(luò)數(shù)據(jù)包,并盡可能顯示出最為詳細(xì)的網(wǎng)絡(luò)數(shù)據(jù)包數(shù)據(jù)。Wireshark使用WinPCAP作為接口,直接與網(wǎng)卡進(jìn)行數(shù)據(jù)報(bào)文交換。

Wireshark(前稱Ethereal)是一個(gè)網(wǎng)絡(luò)數(shù)據(jù)包分析軟件。網(wǎng)絡(luò)數(shù)據(jù)包分析軟件的功能是截取網(wǎng)絡(luò)數(shù)據(jù)包,并盡可能顯示出最為詳細(xì)的網(wǎng)絡(luò)數(shù)據(jù)包數(shù)據(jù)。Wireshark使用WinPCAP作為接口,直接與網(wǎng)卡進(jìn)行數(shù)據(jù)報(bào)文交換。

網(wǎng)絡(luò)管理員使用Wireshark來檢測(cè)網(wǎng)絡(luò)問題,網(wǎng)絡(luò)安全工程師使用Wireshark來檢查資訊安全相關(guān)問題,開發(fā)者使用Wireshark來為新的通訊協(xié)定除錯(cuò),普通使用者使用Wireshark來學(xué)習(xí)網(wǎng)絡(luò)協(xié)定的相關(guān)知識(shí)。當(dāng)然,有的人也會(huì)“居心叵測(cè)”的用它來尋找一些敏感信息……。Wireshark相對(duì)于tcpdump而言,界面更友好,功能更強(qiáng)大。

安裝

mac上安裝wireshark

windows上安裝wireshark

linux下安裝wireshark

基本使用

以下的介紹都是以mac下的wireshark 1.12.2版本為基礎(chǔ)。

認(rèn)識(shí)界面

Wireshark網(wǎng)絡(luò)抓包工具使用教程

說明:

常用按鈕從左到右的功能依次是:

1、列出可用接口。

2、抓包時(shí)需要設(shè)置的一些選項(xiàng)。一般會(huì)保留最后一次的設(shè)置結(jié)果。

3、開始新的一次抓包。

4、暫停抓包。

5、繼續(xù)進(jìn)行本次抓包。

6、打開抓包文件??梢源蜷_之前抓包保存后的文件。不僅可以打開wireshark軟件保存的文件,也可以打開tcpdump使用-w參數(shù)保存的文件。

7、保存文件。把本次抓包或者分析的結(jié)果進(jìn)行保存。

8、關(guān)閉打開的文件。文件被關(guān)閉后,就會(huì)切換到初始界面。

9、重載抓包文件。

設(shè)置數(shù)據(jù)抓取選項(xiàng)

點(diǎn)擊常用按鈕中的設(shè)置按鈕,就會(huì)彈出設(shè)置選項(xiàng)對(duì)話框。在這個(gè)對(duì)話框中我們可以選中需要監(jiān)聽的接口,設(shè)置混雜模式,設(shè)置抓取數(shù)據(jù)包的過濾條件。如下圖:

Wireshark網(wǎng)絡(luò)抓包工具使用教程

首先,選中需要監(jiān)聽獲取數(shù)據(jù)包的接口。接口列表區(qū)列出了所有可以使用的接口。如果接口前面的復(fù)選框被選中,說明對(duì)這個(gè)接口監(jiān)聽捕獲數(shù)據(jù)包。

其次,設(shè)置混雜模式。設(shè)置混雜模式的作用是將網(wǎng)卡設(shè)置到混雜模式。如果不設(shè)置混雜模式,你的計(jì)算機(jī)只能獲取數(shù)據(jù)包發(fā)往的目標(biāo)是你計(jì)算機(jī)和從你計(jì)算機(jī)出去的數(shù)據(jù)包。如果設(shè)置了混雜模式,你就可以捕獲局域網(wǎng)中所有的數(shù)據(jù)包。如果窗口中的 "Use promiscuous mode on all interfaces"前面的復(fù)選框被選中,說明對(duì)所有的接口使用混雜模式。如果想單獨(dú)設(shè)置,可以雙擊接口列表中的接口,會(huì)彈出如下的對(duì)話框。然后選中或者去掉“Capture packets in promiscuous mode”前面復(fù)選框。然后點(diǎn)ok按鈕。
Wireshark網(wǎng)絡(luò)抓包工具使用教程

再次,設(shè)置捕獲過濾條件。在點(diǎn)設(shè)置按鈕彈出的主設(shè)置對(duì)話框中和雙擊接口列表彈出的對(duì)話框中都會(huì)有“Capture Filter”項(xiàng)。在文本框中我們可以設(shè)置捕獲過濾條件。如,我們只捕獲http相關(guān)的數(shù)據(jù)包,我們就可以設(shè)置捕獲條件為“port 80”。因?yàn)閔ttp使用的是80端口。

最后,所有的設(shè)置完畢后,點(diǎn)擊設(shè)置主窗口中的“Start”按鈕,開始捕獲數(shù)據(jù)。數(shù)據(jù)捕獲完后,可以點(diǎn)常用按鈕中的“保存”按鈕保存數(shù)據(jù)。

使用顯示過濾器

顯示過濾器應(yīng)用于捕獲文件,用來告訴wireshark只顯示那些符合過濾條件的數(shù)據(jù)包。顯示過濾器比捕獲過濾器更常用。他可以用來過濾不想看到的數(shù)據(jù)包,但是不會(huì)把數(shù)據(jù)刪除。如果想恢復(fù)原狀,只要把過濾條件刪除即可。

過濾器表達(dá)式對(duì)話框,是的wireshark的可以很簡(jiǎn)單的設(shè)置過濾表達(dá)式。點(diǎn)擊“Expression”按鈕就可以打開這個(gè)對(duì)話框。如下圖:

Wireshark網(wǎng)絡(luò)抓包工具使用教程

對(duì)話框分左中右三部分。左邊為可以使用的所有協(xié)議域。右邊為和協(xié)議域相關(guān)的條件值。中間為協(xié)議域與條件值之間的關(guān)系。過濾器表達(dá)式對(duì)于初學(xué)者很有用。如上圖,我們創(chuàng)建的表達(dá)式的作用是,只顯示http協(xié)議包中包含關(guān)鍵詞“bo56.com”的所有數(shù)據(jù)包。

Field name說明:
這個(gè)列表中展示了所有支持的協(xié)議。點(diǎn)擊前面的三角標(biāo)志后,可以列出本協(xié)議的可過濾字段。當(dāng)選中“Field name”列表中的任何一項(xiàng),只需要輸入你想要的協(xié)議域,就會(huì)自動(dòng)定位到相應(yīng)的協(xié)議域選項(xiàng)。

Relation說明:
is present    如果選擇的協(xié)議域存在,則顯示相關(guān)數(shù)據(jù)包。
contains     判斷一個(gè)協(xié)議,字段或者分片包含一個(gè)值
matches             判斷一個(gè)協(xié)議或者字符串匹配一個(gè)給定的Perl表達(dá)式。

Value(Protocol)說明:
此處輸入合適的值。如果選擇的協(xié)議域和這個(gè)值滿足Relation中指定的關(guān)系,則顯示相關(guān)數(shù)據(jù)包。

Predefined values說明:
有些協(xié)議域包含了預(yù)先定義的值,有點(diǎn)類似于c語言中的枚舉類型。如果你選擇的協(xié)議域包含這樣的值,你可以在這個(gè)列表中選擇。

Function函數(shù)說明:
過濾器的語言還有下面幾個(gè)函數(shù):
upper(string-field)-把字符串轉(zhuǎn)換成大寫
lower(string-field)-把字符串轉(zhuǎn)換成小寫
upper((和lower((在處理大小寫敏感的字符串比較時(shí)很有用。例如:
upper(ncp.nds_stream_name) contains "BO56.COM"
lower(mount.dump.hostname) =="BO56.COM"

如果你熟悉了這個(gè)規(guī)則之后你就會(huì)發(fā)現(xiàn)手動(dòng)輸入表達(dá)式更有效率。當(dāng)時(shí)手動(dòng)在flter文本框中輸入表達(dá)時(shí),如果輸入的語法有問題,文本框的背景色會(huì)變成紅色。這時(shí)候,你可以繼續(xù)輸入或者修改,知道文本框中的表達(dá)式正確后,文本框的背景色又會(huì)變成綠色。

使用著色規(guī)則

你經(jīng)常會(huì)在數(shù)據(jù)包列表區(qū)域中看到不同的顏色。這就是wireshark做的很人性化的一方面。它可以讓你指定條件,把符合條件的數(shù)據(jù)包按指定的顏色顯示。這樣你查找數(shù)據(jù)包會(huì)更方便些。下面我們說一下如何設(shè)置顏色規(guī)則。

點(diǎn)擊“view”菜單,然后選擇“Coloring Rules”選項(xiàng)就會(huì)彈出設(shè)置顏色規(guī)則設(shè)置對(duì)話框。你點(diǎn)擊顏色規(guī)則設(shè)置的快捷按鈕也可以打開顏色設(shè)置對(duì)話框。如下圖:

Wireshark網(wǎng)絡(luò)抓包工具使用教程

打開的對(duì)話框中默認(rèn)已經(jīng)有一些規(guī)則。我們抓取的數(shù)據(jù)包中經(jīng)常會(huì)看到一些不同的顏色,就是應(yīng)用的這些默認(rèn)的規(guī)則。點(diǎn)擊“New”按鈕可以添加規(guī)則。如下圖:

Wireshark網(wǎng)絡(luò)抓包工具使用教程

name字段中填寫規(guī)則的名稱,方便記憶。

string字段中填寫過濾規(guī)則。這里的語法和顯示規(guī)則表達(dá)式一致。點(diǎn)擊 上圖中的“Expression”按鈕,你就會(huì)看到熟悉的規(guī)則表達(dá)式對(duì)話。

Foreground Color按鈕用于選擇前景色。

Background Color按鈕用于選擇背景色。

Disabled按鈕用于指示是否禁用這條規(guī)則。

點(diǎn)擊ok按鈕后,規(guī)則自動(dòng)會(huì)添加到規(guī)則列表中的最前端。

注意:wireshark在應(yīng)用規(guī)則的時(shí)候,是按自上而下的順序去應(yīng)用規(guī)則。因此剛添加的規(guī)則會(huì)優(yōu)先應(yīng)用。如果你想調(diào)整順序,可以選中要調(diào)整順序的規(guī)則,然后點(diǎn)擊右邊的“UP” 或則 “Down” 按鈕。

顏色規(guī)則設(shè)置好后,只需要點(diǎn)apply按鈕就可以應(yīng)用規(guī)則了。規(guī)則效果應(yīng)用如下圖:

Wireshark網(wǎng)絡(luò)抓包工具使用教程

使用圖表

圖形分析是數(shù)據(jù)分析中必不可少的一部分。也是wireshark的一大亮點(diǎn)。wireshark有不同的圖形展現(xiàn)功能,以幫助你了解捕獲的數(shù)據(jù)包。下面我們對(duì)經(jīng)常使用的IO圖,雙向時(shí)間圖做下介紹。

IO圖

wireshark的IO圖讓你可以對(duì)網(wǎng)絡(luò)上的吞吐量繪圖。讓你了解網(wǎng)絡(luò)數(shù)據(jù)傳輸過程中的峰值和波動(dòng)情況。通過“Statistics”菜單中的“IO Graphs”選項(xiàng)可以打開這個(gè)IO圖對(duì)話框。如下圖:

Wireshark網(wǎng)絡(luò)抓包工具使用教程

可以看到IO圖表對(duì)話框中會(huì)分為三個(gè)區(qū)。

過濾器區(qū):設(shè)置過濾條件,用于圖形化展示過濾條件相關(guān)數(shù)據(jù)包的變化情況。而且可以為每個(gè)不同的條件指定不同的顏色。過濾條件的語法和之前介紹的顯示過濾器的語法一致。過濾條件為空,此圖形顯示所有流量。

坐標(biāo)區(qū):在這里可以設(shè)置圖表的x軸和y軸。x軸為時(shí)間,y軸為包的數(shù)量。如圖,我們?cè)O(shè)置Y軸的單位是Bytes/Tick。

趨勢(shì)圖區(qū):根據(jù)過濾器設(shè)置的條件和坐標(biāo)區(qū)設(shè)置,數(shù)據(jù)分析后回在這個(gè)區(qū)域以圖形化方式展示。點(diǎn)擊圖形中的點(diǎn),會(huì)自動(dòng)定位到相應(yīng)的數(shù)據(jù)包。點(diǎn)擊趨勢(shì)圖中的低谷點(diǎn),你會(huì)發(fā)現(xiàn)大量的數(shù)據(jù)包重傳。

IO圖表還可以通過函數(shù)對(duì)數(shù)據(jù)進(jìn)行聚合處理。

點(diǎn)擊Y軸中Unit選項(xiàng)中的Advanced后,就會(huì)再過濾器區(qū)就會(huì)增加Calc選項(xiàng)。如下圖:

Wireshark網(wǎng)絡(luò)抓包工具使用教程

相關(guān)函數(shù)說明:

MIN( ), AVG( ), MAX( ) 分別是統(tǒng)計(jì)協(xié)議域中數(shù)值的最小,平均和最大值。注意,這三個(gè)聚合函數(shù)只對(duì)協(xié)議域的值為數(shù)字的才有效。

Count( ) 此函數(shù)計(jì)算時(shí)間間隔內(nèi)事件發(fā)生的次數(shù),在查看TCP分析標(biāo)識(shí)符時(shí)很有用,例如重傳。

Sum( ) 該函數(shù)統(tǒng)計(jì)事件的累加值。和MIN()函數(shù)一樣,這個(gè)也只有協(xié)議域的值為數(shù)字的情況下才有效。

雙向時(shí)間圖

wireshark還有一個(gè)功能就是可以對(duì)網(wǎng)絡(luò)傳輸中的雙向時(shí)間進(jìn)行繪圖。雙向時(shí)間(round-trip time, RTT),就是一個(gè)數(shù)據(jù)包被確認(rèn)正常接收所花費(fèi)的時(shí)間。以tcp協(xié)議為例,就是你push一個(gè)數(shù)據(jù)到一臺(tái)主機(jī),主機(jī)回應(yīng)一個(gè)ack給你的主機(jī),你的主機(jī)并成功接收ack回應(yīng)。這兩個(gè)過程花費(fèi)的時(shí)間總和就是雙向時(shí)間。雙向時(shí)間通常用來尋找網(wǎng)絡(luò)傳輸過程中的慢點(diǎn)和瓶頸,用以判斷網(wǎng)絡(luò)傳輸是否有延遲。

通過“Statistics”菜單中的“Tcp  StreamGraph”中的“Round Trip Time Graph”選項(xiàng)可以打開這個(gè)雙向時(shí)間圖對(duì)話框。如下圖:

Wireshark網(wǎng)絡(luò)抓包工具使用教程

這個(gè)圖表中的每個(gè)點(diǎn)代表一個(gè)數(shù)據(jù)包的雙向時(shí)間。你可以單機(jī)圖表中的任何一點(diǎn),然后在數(shù)據(jù)包列表區(qū)就會(huì)自動(dòng)定位到相應(yīng)的數(shù)據(jù)包。從數(shù)據(jù)表來看,我們下載壓縮包還是比較穩(wěn)定的。數(shù)據(jù)包的rtt時(shí)間大多數(shù)在0.05s以下,其他大多數(shù)在0.1s左右,少數(shù)超過了1.5s。

跟蹤tcp流

Wireshark分析功能中最不錯(cuò)的一個(gè)功能是它能夠?qū)CP流重組。重組后的數(shù)據(jù)格式更容易閱讀。跟蹤TCP流這個(gè)功能可以將接收到的數(shù)據(jù)排好順序使之容易查看,而不需要一小塊一小塊地看。這在查看HTTP、FTP等純文本應(yīng)用層協(xié)議時(shí)非常有用。

我們以一個(gè)簡(jiǎn)單的HTTP請(qǐng)求舉例來說明一下。打開wireshark_bo56_pcap.pcapng,并在顯示過濾器中輸入“http contains wireshark”,點(diǎn)擊“apply”按鈕后,在數(shù)據(jù)包列表框中就會(huì)只剩下一條記錄。如下圖。

Wireshark網(wǎng)絡(luò)抓包工具使用教程

右鍵單擊這條記錄并選擇Follow TCP Stream。這時(shí)TCP流就會(huì)在一個(gè)單獨(dú)的窗口中顯示出來。

我們看到這個(gè)窗口中的文字會(huì)有兩種顏色。其中紅色用于表示從源地址到目標(biāo)地址的流量。在我們的例子里面就是從我們本機(jī)到web服務(wù)器的流量。你可以看到最開始的紅色部分是一個(gè)GET請(qǐng)求。藍(lán)色部分是和紅色部分相反的方向,也就是從目標(biāo)地址到源地址的流量。在我們的例子中,藍(lán)色部分的第一行是“HTTP/1.1 200 OK”,是來自服務(wù)器的一個(gè)http成功響應(yīng)。

在這個(gè)窗口中除了能夠看到這些原始數(shù)據(jù),你還可以在文本間進(jìn)行搜索,將其保存成一個(gè)文件、打印,或者以ASCII碼、EBCDIC、十六進(jìn)制或者C數(shù)組的格式去查看。這些選項(xiàng)都可以在跟蹤TCP流窗口的下面找到。