1. 程式人生 > >【學習筆記】Wireshark的用法

【學習筆記】Wireshark的用法

  計算機網路課上,需要我們靈活運用網路協議分析儀wireshark,最近一直在看,感覺有點難,並不是軟體本身操作難,而是看懂一大群包的含義難,這個難主要也因為它是全英文的~~。。

好了,大致總結一下,基本都是大神的,引用的,與大家分享。

wireshark 開始抓包

開始介面

wireshark是捕獲機器上的某一塊網絡卡的網路包,當你的機器上有多塊網絡卡的時候,你需要選擇一個網絡卡。

點選Caputre->Interfaces.. 出現下面對話方塊,選擇正確的網絡卡。然後點選"Start"按鈕, 開始抓包

Wireshark 視窗介紹

WireShark 主要分為這幾個介面

1. Display Filter(顯示過濾器),  用於過濾

2. Packet List Pane(封包列表), 顯示捕獲到的封包, 有源地址和目標地址,埠號。 顏色不同,代表

3. Packet Details Pane(封包詳細資訊), 顯示封包中的欄位

4. Dissector Pane(16進位制資料)

5. Miscellanous(位址列,雜項)

使用過濾是非常重要的, 初學者使用wireshark時,將會得到大量的冗餘資訊,在幾千甚至幾萬條記錄中,以至於很難找到自己需要的部分。搞得暈頭轉向。

過濾器會幫助我們在大量的資料中迅速找到我們需要的資訊。

過濾器有兩種,

一種是顯示過濾器,就是主介面上那個,用來在捕獲的記錄中找到所需要的記錄

一種是捕獲過濾器,用來過濾捕獲的封包,以免捕獲太多的記錄。 在Capture -> Capture Filters 中設定

儲存過濾

在Filter欄上,填好Filter的表示式後,點選Save按鈕, 取個名字。比如"Filter 102",

Filter欄上就多了個"Filter 102" 的按鈕。

過濾表示式的規則

表示式規則

 1. 協議過濾

比如TCP,只顯示TCP協議。

2. IP 過濾

比如 ip.src ==192.168.1.102 顯示源地址為192.168.1.102,

ip.dst==192.168.1.102, 目標地址為192.168.1.102

3. 埠過濾

tcp.port ==80,  埠為80的

tcp.srcport == 80,  只顯示TCP協議的願埠為80的。

4. Http模式過濾

http.request.method=="GET",   只顯示HTTP GET方法的。

5. 邏輯運算子為 AND/ OR

常用的過濾表示式

過濾表示式 用途
http 只檢視HTTP協議的記錄
ip.src ==192.168.1.102 or ip.dst==192.168.1.102  源地址或者目標地址是192.168.1.102

封包列表(Packet List Pane)

封包列表的面板中顯示,編號,時間戳,源地址,目標地址,協議,長度,以及封包資訊。 你可以看到不同的協議用了不同的顏色顯示。

你也可以修改這些顯示顏色的規則,  View ->Coloring Rules.

封包詳細資訊 (Packet Details Pane)

這個面板是我們最重要的,用來檢視協議中的每一個欄位。

各行資訊分別為

Frame:   物理層的資料幀概況

Ethernet II: 資料鏈路層乙太網幀頭部資訊

Internet Protocol Version 4: 網際網路層IP包頭部資訊

Transmission Control Protocol:  傳輸層T的資料段頭部資訊,此處是TCP

Hypertext Transfer Protocol:  應用層的資訊,此處是HTTP協議

TCP包的具體內容

 從下圖可以看到wireshark捕獲到的TCP包中的每個欄位。

看到這, 基本上對wireshak有了初步瞭解, 現在我們看一個TCP三次握手的例項

 三次握手過程為

這圖我都看過很多遍了, 這次我們用wireshark實際分析下三次握手的過程。

開啟wireshark, 開啟瀏覽器輸入 http://www.cr173.com

在wireshark中輸入http過濾, 然後選中GET /tankxiao HTTP/1.1的那條記錄,右鍵然後點選"Follow TCP Stream",

這樣做的目的是為了得到與瀏覽器開啟網站相關的資料包,將得到如下圖

圖中可以看到wireshark截獲到了三次握手的三個資料包。第四個包才是HTTP的, 這說明HTTP的確是使用TCP建立連線的。

第一次握手資料包

客戶端傳送一個TCP,標誌位為SYN,序列號為0, 代表客戶端請求建立連線。 如下圖

第二次握手的資料包

伺服器發回確認包, 標誌位為 SYN,ACK. 將確認序號(Acknowledgement Number)設定為客戶的I S N加1以.即0+1=1, 如下圖

第三次握手的資料包

客戶端再次傳送確認包(ACK) SYN標誌位為0,ACK標誌位為1.並且把伺服器發來ACK的序號欄位+1,放在確定欄位中傳送給對方.並且在資料段放寫ISN的+1, 如下圖:

 就這樣通過了TCP三次握手,建立了連線

File選單介紹

選單項快捷鍵描述
Open… Ctr+O 顯示開啟檔案對話方塊,讓您載入捕捉檔案用以瀏覽。
Open Recent 彈出一個子選單顯示最近開啟過的檔案供選擇。
Merg 顯示合併捕捉檔案的對話方塊。讓您選擇一個檔案和當前開啟的檔案合併。
Close Ctrl+W 關閉當前捕捉檔案,如果您未儲存,系統將提示您是否儲存(如果您預設了禁止提示儲存,將不會提示)
Save Crl+S 儲存當前捕捉檔案,如果您沒有設定預設的儲存檔名,Wireshark出現提示您儲存檔案的對話方塊。
Save As Shift+Ctrl+S 讓您將當前檔案儲存為另外一個檔案面,將會出現一個另存為的對話方塊
File Set>List Files 允許您顯示檔案集合的列表。將會彈出一個對話方塊顯示已開啟檔案的列表。
File Set>Next File 如果當前載入檔案是檔案集合的一部分,將會跳轉到下一個檔案。如果不是,將會跳轉到最後一個檔案。這個檔案選項將會是灰色。
File set>Previous Files 如果當前檔案是檔案集合 的一部分,將會調到它所在位置的前一個檔案。如果不是則跳到檔案集合的第一個檔案,同時變成灰色。
Export> as “Plain Text” File… 這個選單允許您將捕捉檔案中所有的或者部分的包匯出為plain ASCII text格式。它將會彈出一個Wireshark匯出對話方塊。
Export >as “PostScript” Files 將捕捉檔案的全部或部分匯出為PostScrit檔案。
Export > as “CVS” (Comma Separated Values Packet Summary)File… 匯出檔案全部或部分摘要為.cvs格式(可用在電子表格中)。。
Export > as “PSML” File… 匯出檔案的全部或部分為PSML格式(包摘要標記語言)XML檔案。將會彈出匯出檔案對話方塊。
Export as “PDML” File… 匯出檔案的全部或部分為PDML(包摘要標記語言)格式的XML檔案。
Export > Selected Packet Bytes… 匯出當前在Packet byte面版選擇的位元組為二進位制檔案。
Print Ctr+P 列印捕捉包的全部或部分,將會彈出列印對話方塊。
Quit Ctrl+Q 退出Wireshark,如果未儲存檔案,Wireshark會提示是否儲存。




Edit——包括如下專案:查詢包,時間參考,標記一個多個包,設定預設引數。(剪下,拷貝,貼上不能立即執行。)

\

Edit選單項

選單項快捷鍵描述
Copy>As Filter Shift+Ctrl+C 使用詳情面版選擇的資料作為顯示過濾。顯示過濾將會拷貝到剪貼簿。
Find Packet… Ctr+F 開啟一個對話方塊用來通過限制來查詢包
Find Next Ctrl+N 在使用Find packet以後,使用該選單會查詢匹配規則的下一個包
Find Previous Ctr+B 查詢匹配規則的前一個包。
Mark Packet(toggle) Ctrl+M 標記當前選擇的包。
Find Next Mark Shift+Ctrl+N 查詢下一個被標記的包
Find Previous Mark Ctrl+Shift+B 查詢前一個被標記的包
Mark ALL Packets 標記所有包
Unmark All Packet 取消所有標記
Set Time Reference(toggle) Ctrl+T 以當前包時間作為參考
Find Next Reference 找到下一個時間參考包
Find Previous Refrence… 找到前一個時間參考包
Preferences… Shift+Ctrl+P 開啟首選項對話方塊,個性化設定Wireshark的各項引數,設定後的引數將會在每次開啟時發揮作用。




View ——控制捕捉資料的顯示方式,包括顏色,字型縮放,將包顯示在分離的視窗,展開或收縮詳情面版的地樹狀節點

\

“View”選單項

選單項快捷鍵描述
Main Toolbar 顯示隱藏Main toolbar(主工具欄)
Filter Toolbar 顯示或隱藏Filter Toolbar(過濾工具欄)
Statusbar 顯示或隱藏狀態列
Packet List 顯示或隱藏Packet List pane(包列表面板)
Packet Details 顯示或隱藏Packet details pane(包詳情面板)
Packet Bytes 顯示或隱藏packet Bytes pane(包位元組面板)
Time Display Fromat>Date and Time of Day: 1970-01-01 01:02:03.123456 選擇這裡告訴Wireshark將時間戳設定為絕對日期-時間格式(年月日,時分秒)
Time Display Format>Time of Day: 01:02:03.123456 將時間設定為絕對時間-日期格式(時分秒格式)
Time Display Format > Seconds Since Beginning of Capture: 123.123456 將時間戳設定為秒格式,從捕捉開始計時,見
Time Display Format > Seconds Since Previous Captured Packet: 1.123456 將時間戳設定為秒格式,從上次捕捉開始計時
Time Display Format > Seconds Since Previous Displayed Packet: 1.123456 將時間戳設定為秒格式,從上次顯示的包開始計時
Time Display Format > ——
Time Display Format > Automatic (File Format Precision) 根據指定的精度選擇資料包中時間戳的顯示方式
Time Display Format > Seconds: 0 設定精度為1秒
Time Display Format > …seconds: 0…. 設定精度為1秒,0.1秒,0.01秒,百萬分之一秒等等。
Name Resolution > Resolve Name 僅對當前選定包進行解析
Name Resolution > Enable for MAC Layer 是否解析Mac地址
Name Resolution > Enable for Network Layer 是否解析網路層地址(ip地址)
Name Resolution > Enable for Transport Layer 是否解析傳輸層地址
Colorize Packet List 是否以彩色顯示包
Auto Scrooll in Live Capture 控制在實時捕捉時是否自動滾屏,如果選擇了該項,在有新資料進入時, 面板會項上滾動。您始終能看到最後的資料。反之,您無法看到滿屏以後的資料,除非您手動滾屏
Zoom In Ctrl++ 增大字型
Zoom Out Ctrl+- 縮小字型
Normal Size Ctrl+= 恢復正常大小
Resiz All Columnus 恢復所有列寬
注意
除非資料包非常大,一般會立刻更改
Expend Subtrees 展開子分支
Expand All 看開所有分支,該選項會展開您選擇的包的所有分支。
Collapse All 收縮所有包的所有分支
Coloring Rulues… 開啟一個對話方塊,讓您可以通過過濾表達來用不同的顏色顯示包。這項功能對定位特定型別的包非常有用
Show Packet in New Window 在新視窗顯示當前包,(新視窗僅包含View,Byte View兩個面板)
Reload Ctrl+R 重新再如當前捕捉檔案




GO——包含到指定包的功能。


\
“GO”選單項

選單項快捷鍵描述
Back Alt+Left 跳到最近瀏覽的包,類似於瀏覽器中的頁面歷史紀錄
ForWard Alt+Right 跳到下一個最近瀏覽的包,跟瀏覽器類似
Go to Packet Ctrl+G 開啟一個對話方塊,輸入指定的包序號,然後跳轉到對應的包。
Go to Corresponding Packet 跳轉到當前包的應答包,如果不存在,該選項為灰色
Previous Packet Ctrl+UP 移動到包列表中的前一個包,即使包列表面板不是當前焦點,也是可用的
Next Packet Ctrl+Down 移動到包列表中的後一個包,同上
First Packet 移動到列表中的第一個包
Last Packet 移動到列表中的最後一個包

Capture——捕捉資料包

\


“Capture”選單項

選單項快捷鍵說明
Interface… 在彈出對話方塊選擇您要進行捕捉的網路介面
Options… Ctrl+K 開啟設定捕捉選項的對話方塊並可以在此開始捕捉
Start 立即開始捕捉,設定都是參照最後一次設定。
Stop Ctrl+E 停止正在進行的捕捉
Restart 正在進行捕捉時,停止捕捉,並按同樣的設定重新開始捕捉.僅在您認為有必要時
Capture Filters… 開啟對話方塊,編輯捕捉過濾設定,可以命名過濾器,儲存為其他捕捉時使用




Analyze ——包含處理顯示過濾,允許或禁止分析協議,配置使用者指定解碼和追蹤TCP流等功能。

\

“analyze”選單項

選單項快捷鍵說明
Display Filters… 開啟過濾器對話方塊編輯過濾設定,可以命名過濾設定,儲存為其他地方使用,見第 6.6 節 “定義,儲存過濾器”
Apply as Filter>… 更改當前過濾顯示並立即應用。根據選擇的項,當前顯示欄位會被替換成選擇在Detail面板的協議欄位
Prepare a Filter>… 更改當前顯示過濾設定,當不會立即應用。同樣根據當前選擇項,過濾字元會被替換成Detail面板選擇的協議欄位
Firewall ACL Rules 為多種不同的防火牆建立命令列ACL規則(訪問控制列表),支援Cisco IOS, Linux Netfilter (iptables), OpenBSD pf and Windows Firewall (via netsh). Rules for MAC addresses, IPv4 addresses, TCP and UDP ports, 以及IPv4+混合埠
以上假定規則用於外部介面




Statistics ——包括的選單項使用者顯示多個統計視窗,包括關於捕捉包的摘要,協議層次統計等等。

\

選單項快捷鍵描述
Summary 顯示捕捉資料摘要
Protocol Hierarchy 顯示協議統計分層資訊
Conversations/ 顯示會話列表(兩個終端之間的通訊)
EndPoints 顯示端點列表(通訊發起,結束地址)
IO Graphs 顯示使用者指定圖表,(如包數量-時間表)
Conversation List 通過一個組合視窗,顯示會話列表
Endpoint List 通過一個組合視窗顯示終端列表
Service Response Time 顯示一個請求及其相應之間的間隔時間




Help——包含一些輔助使用者的參考內容。如訪問一些基本的幫助檔案,支援的協議列表,使用者手冊。線上訪問一些網站,“關於”

選單項快捷鍵描述
Open… Ctr+O 顯示開啟檔案對話方塊,讓您載入捕捉檔案用以瀏覽。
Open Recent 彈出一個子選單顯示最近開啟過的檔案供選擇。

如何進行“簡單”的抓包篩選。

其實關於wireshark來說,比較重要的還是數對抓包之後的“查詢統計分析”,如何在海量的資料包中,抓取出自己關注的資料包是處理問題的第一步,最後再講解一下如何進行“簡單”的抓包篩選。

為了直觀,本篇博文以一次例項進行,我在本地對網絡卡進行了抓包,登入了一次QQ,與網友聊天,並且,訪問了一次我的部落格www.zike.me,那我就從海量資料包中,抓取關於這兩個操作的相關資料包。

首先,我進行了本地抓包,進行了上述兩個操作,stop抓包,僅僅十多秒鐘,我抓到了3543個數據包,其中存在有我需要的資料包。(從這裡看出了“篩選分析”有多麼重要,如果資料流量較大,我試驗過,較小的網路中,1分鐘左右的抓包,可以獲取300萬資料包)

原始資料包

\

抓包分析

輸入:oicq進行篩選

\

oicq協議分析

\

oicq統計結果

檢視單包的資料,在data處可以看見QQ號碼

\

詳細資料包

選取第一個資料包,點選右鍵,我們可以看見有很多選項,我們選取“follow UDP stream”,即追蹤該UDP流,跟蹤整個會話

\

跟蹤會話

可以看見,我的得到了該次聊天會話

\

wireshark抓包分析

同時,我們還可以選擇另外一種篩選方式,在詳細資料包中,我們選擇QQ號碼那一欄作為篩選的資料,點選資料包QQ號碼處,右鍵,作為篩選……

\

wireshark篩選分析

接下來,我們看看由瀏覽器發起的對www.zike.me的訪問,我們主要看進行對dns資料包的篩選

第一步還是選擇協議,dns

\

dns資料包

同時,也可以直接選擇所訪問的域名:dns.qry.name == “www.zike.me”,直接進行篩選

\

wireshark抓包篩選分析

下圖可以看見,我本機發起了對www.zike.me的查詢,我本地的快取域名伺服器是中國電信的61.128.128.68

\

dns迴應包

然後看見DNS伺服器進行迴應,回覆說www.zike.me的IP地址是173.231.1.221

\

dns伺服器迴應資料包

同時,我們可以對本次抓包進行統計概況,如下圖

\

wireshark統計彙總

可以看見總述裡面,包數,實時流量大小等等。

\

wireshark summary

對本次抓包的協議總述

\

也就這麼多了,希望對大家有用。