Linux 下網路協議分析器 Wireshark 使用基礎
Wireshark 相當的強大,當你第一次見到它的時候可能會被它嚇到,但是它的目的始終就只有一個,那就是追蹤網路流量,並且它所實現的所有選項都只為了加強它追蹤流量的能力。
安裝
Kali 中預置了 Wireshark 。不過,wireshark-gtk
包提供了一個更好的介面使你在使用 Wireshark 的時候會有更友好的體驗。因此,在使用 Wireshark 前的第一步是安裝 wireshark-gtk
這個包。
12 | # apt install wireshark-gtk |
如果你的 Kali 是從 live 介質上執行的也不需要擔心,依然有效。
基礎配置
在你使用 Wireshark 之前,將它設定成你使用起來最舒適的狀態可能是最好的。Wireshark 提供了許多不同的佈局方案和選項來配置程式的行為。儘管數量很多,但是使用起來是相當直接明確的。
從啟動 Wireshark-gtk 開始。需要確定啟動的是 GTK 版本的。在 Kali 中它們是被分別列出的。
佈局
預設情況下,Wireshark 的資訊展示分為三塊內容,每一塊都疊在另一塊上方。(LCTT 譯註:這裡的三部分指的是展示抓包資訊的時候的那三塊內容,本段配圖沒有展示,配圖 4、5、6 的設定不是預設設定,與這裡的描述不符)最上方的一塊是所抓包的列表。中間的一塊是包的詳細資訊。最下面那塊中包含的是包的原始位元組資訊。通常來說,上面的兩塊中的資訊比最下面的那塊有用的多,但是對於資深使用者來說這塊內容仍然是重要資訊。
每一塊都是可以縮放的,可並不是每一個人都必須使用這樣疊起來的佈局方式。你可以在 Wireshark 的“選項Preferences”選單中進行更改。點選“編輯Edit”選單,最下方就是的“選項Preferences”選單。這個選項會開啟一個有更多選項的新視窗。單擊側邊選單中“使用者介面User Interface”下的“佈局Layout”選項。
你將會看到一些不同的佈局方案。上方的圖示可以讓你選擇不同的面板位置佈局方案,下面的單選框可以讓你選擇不同面板中的資料內容。
下面那個標記為“列Columns”的標籤可以讓你選擇展示所抓取包的哪些資訊。選擇那些你需要的資料資訊,或者全部展示。
工具條
對於 Wireshark 的工具條能做的設定不是太多,但是如果你想設定的話,你依然在前文中提到的“佈局”選單中的視窗管理工具下方找到一些有用的設定選項。那些能讓你配置工具條和工具條中條目的選項就在視窗選項下方。
你還可以在“檢視View”選單下勾選來配置工具條的顯示內容。
功能
主要的用來控制 Wireshark 抓包的控制選項基本都集中在“捕捉Capture”選單下的“選項Options”選項中。
在開啟的視窗中最上方的“捕捉Capture”部分可以讓你選擇 Wireshark 要監控的某個具體的網路介面。這部分可能會由於你係統的配置不同而會有相當大的不同。要記得勾選正確的選擇框才能獲得正確的資料。虛擬機器和伴隨它們一起的網路介面也同樣會在這個列表裡顯示。同樣也會有多種不同的選項對應這多種不同的網路介面。
在網路介面列表的下方是兩個選項。其中一個選項是全選所有的介面。另一個選項用來選擇是否開啟混雜模式。這個選項可以使你的計算機監控到所選網路上的所有的計算機。(LCTT 譯註:混雜模式可以在 HUB 中或監聽模式的交換機介面上捕獲那些由於 MAC 地址非本機而會被自動丟棄的資料包)如果你想監控你所在的整個網路,這個選項是你所需要的。
注意: 在一個不屬於你或者不擁有許可權的網路上使用混雜模式來監控是非法的!
在視窗下方的右側是“顯示選項Display Options”和“名稱解析Name Resolution”選項塊。對於“顯示選項Display Options”來說,三個選項全選可能就是一個很好的選擇了。當然你也可以取消選擇,但是最好還是保留選擇“實時更新抓包列表”。
在“名稱解析Name Resolution”中你也可以設定你的偏好。這裡的選項會產生附加的請求因此選得越多就會有越多的請求產生使你的抓取的包列表顯得雜亂。把 MAC 解析選項選上是個好主意,那樣就可以知道所使用的網路硬體的品牌了。這可以幫助你來確定你是在與哪臺裝置上的哪個介面進行互動。
抓包
抓包是 Wireshark 的核心功能。監控和記錄特定網路上的流量就是它最初產生的目的。使用它最基本的方式來作這個抓包的工作是相當簡單方便的。當然,越多的配置和選項就越可以充分利用 Wireshark 的力量。這裡的介紹的關注點依然還是它最基本的記錄方式。
按下那個看起來像藍色鯊魚鰭的新建實時抓包按鈕就可以開始抓包了。(LCTT 譯註:在我的 Debian 上它是綠色的)
在抓包的過程中,Wireshark 會收集所有它能收集到的包的資料並且記錄下來。如果沒有更改過相關設定的話,在抓包的過程中你會看見不斷的有新的包進入到“包列表”面板中。你可以實時的檢視你認為有趣的包,或者就讓 Wireshark 執行著,同時你可以做一些其它的事情。
當你完成了,按下紅色的正方形“停止”按鈕就可以了。現在,你可以選擇是否要儲存這些所抓取的資料了。要儲存的話,你可以使用“檔案”選單下的“儲存”或者是“另存為”選項。
讀取資料
Wireshark 的目標是向你提供你所需要的所有資料。這樣做時,它會在它監控的網路上收集大量的與網路包相關的資料。它使用可摺疊的標籤來展示這些資料,使得這些資料看起來沒有那麼嚇人。每一個標籤都對應於網路包中一部分的請求資料。
這些標籤是按照從最底層到最高層一層層堆起來的。頂部標籤總是包含資料包中包含的位元組資料。最下方的標籤可能會是多種多樣的。在下圖的例子中是一個 HTTP 請求,它會包含 HTTP 的資訊。您遇到的大多數資料包將是 TCP 資料,它將展示在底層的標籤中。
每一個標籤頁都包含了抓取包中對應部分的相關資料。一個 HTTP 包可能會包含與請求型別相關的資訊,如所使用的網路瀏覽器,伺服器的 IP 地址,語言,編碼方式等的資料。一個 TCP 包會包含伺服器與客戶端使用的埠資訊和 TCP 三次握手過程中的標誌位資訊。
在上方的其它標籤中包含了一些大多數使用者都感興趣的少量資訊。其中一個標籤中包含了資料包是否是通過 IPv4 或者 IPv6 傳輸的,以及客戶端和伺服器端的 IP 地址。另一個標籤中包含了客戶端和接入因特網的路由器或閘道器的裝置的 MAC 地址資訊。
結語
即使只使用這些基礎選項與配置,你依然可以發現 Wireshark 會是一個多麼強大的工具。監控你的網路流量可以幫助你識別、終止網路攻擊或者提升連線速度。它也可以幫你找到問題應用。下一篇 Wireshark 指南我們將會一起探索 Wireshark 的包過濾選項。