【學習筆記】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+混合端口
以上假定規則用於外部接口
Enable Protocols… Shift+Ctrl+R 是否允許協議分析,見第 9.4.1 節 “”Enable Protocols”對話框”

 
 
 
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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

對本次抓包的協議總述

\

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM