Wireshark網絡分析入門篇

Wireshark是什麼?

Wireshark是最流行的網絡嗅探器之一,能在多種平臺上抓取和分析網絡包,比如Windows、Linux和Mac等。它的圖形界面非常友好,但如果你覺得鼠標操作不夠有範,也可以使用它的命令行形式——TShark。

學習Wireshark有何意義?

很顯然,Wireshark並不能幫我們變成網絡新貴,但它對技術上有所追求的攻城獅來說,有著金錢難以衡量的價值。用它來輔助學習,可以更深入地理解網絡協議;用它來排查故障,可以更快地發現問題。假如你是團隊中唯一掌握Wireshark的網絡攻城獅,這個看家本領非常有助於你保持大牛地位。在同事們手足無措時,你可以用最快的速度擺平,然後平靜地說一句:“問題解決了,我先去泡杯咖啡。”接下來就可以離開座位,讓他們一臉崇拜地研究你滿是Tshak命令的屏幕了。

Wireshark圖形窗口介紹

Wireshark網絡分析入門篇

WireShark 主要分為這幾個界面:

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

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

3. Packet Details Pane(封包詳細信息), 顯示封包中的字段

4. Dissector Pane(16進制數據)

5. Miscellanous(地址欄,雜項)

Wireshark網絡分析入門篇

顯示過濾器

顯示過濾器是在原來或者現在抓包的基礎上,過濾掉其他的包,找到自己需要的數據報包。如圖所示:

Wireshark網絡分析入門篇
Wireshark網絡分析入門篇
Wireshark網絡分析入門篇
Wireshark網絡分析入門篇

過濾表達式的規則

表達式規則

  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

封包列表

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

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

Wireshark網絡分析入門篇
Wireshark網絡分析入門篇

封包詳細信息

這個面板是我們最重要的,用來查看協議中的每一個字段。

各行信息分別為:

Frame: 物理層的數據幀概況

Ethernet II: 數據鏈路層以太網幀頭部信息

Internet Protocol Version 4: 互聯網層IP包頭部信息

Transmission Control Protocol: 傳輸層T的數據段頭部信息,此處是TCP

Hypertext Transfer Protocol: 應用層的信息,此處是HTTP協議

Wireshark網絡分析入門篇

我們用wireshark實際分析下三次握手的過程。打開wireshark, 打開瀏覽器輸入 http://www.cr173.com 在wireshark中輸入http過濾, 然後選中GET /tankxiao HTTP/1.1的那條記錄,右鍵然後點擊"Follow TCP Stream", 這樣做的目的是為了得到與瀏覽器打開網站相關的數據包,將得到如下圖

Wireshark網絡分析入門篇

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

第一次握手數據包

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

Wireshark網絡分析入門篇

第二次握手的數據包

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

Wireshark網絡分析入門篇

第三次握手的數據包

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

Wireshark網絡分析入門篇

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

Wireshark命令窗口介紹

Wireshark網絡分析軟件用命令窗口處理數據包的情況很少,在處理大包時,為節約資源同時也是有效地利用PC機硬件,不得不用wireshark的命令行來處理數據包,以達到預期目的。

命令行方式與wireshark圖形界面等效的命令是:tshark.exe

不管是用安裝版的還是綠色版的wireshark軟件,只要找到安裝目錄,即可進行操作。

Wireshark網絡分析入門篇
Wireshark網絡分析入門篇

在命令窗口(DOS)輸入dir *.exe,就會列出所有可執行文件。Tshark.exe就是wireshark的命令行文件,與窗口方式具有同等的功效(有點賣“野藥”的感覺)。Tshark.exe有很多參數,可以通過命令後加-h查看幫助。

Wireshark網絡分析入門篇

有很多的參數

Wireshark網絡分析入門篇

命令行工具功能很強大,參數多且可組合使用。如果我們在CDN機房或核心設備上做鏡像抓包時,因數據量太大,圖形界面抓包,幾十秒或幾秒鐘的時間,電腦有可能就會藍屏,造成電腦死機,達不到我們抓包的效果,所以,這時候我們就會用到命令行進行抓包。命令行捕獲最大的優點就是資源佔用少,可控性強。缺點是參數繁多,不易記憶和操作。

Tshark默認情況下選擇的是電腦中的第一張網卡,我們可以利用參數-D(注意大小寫,參數中大小寫的定義會不同)來查看。

Wireshark網絡分析入門篇

舉例:如下圖

Wireshark網絡分析入門篇

其他的一些命令的參數和用法,請參考-h幫助或相關資料研究學習。

工具文件下載地址:https://www.wireshark.org/download/


分享到:


相關文章: