天天看點

威而鲨(WireShark)之抓包魚翅手

威而鲨(WireShark)之抓包魚翅手
威而鲨(WireShark)之抓包魚翅手

1  了解WireShark

1.1  什麼是Wireshark

Wireshark 是網絡封包分析工具。網絡封包分析工具的主要作用是嘗試捕獲網絡封包, 并嘗試顯示封包盡可能詳細的内容。過去的此類工具要麼太貴,要麼是非公開的。 直到Wireshark(Ethereal)出現以後,這種情況才得以改變。Wireshark可以算得上是今天能使用的最好的開源網絡分析軟體。

1.2  WireShark簡史

1997年,Gerald Combs 需要一個工具追蹤網絡問題,并且想學習網絡知識。是以他開始開發Ethereal (Wireshark項目以前的名稱) 以解決自己的需求。1998年,Ethreal0.2.0版誕生了。此後不久,越來越多的人發現了它的潛力,并為其提供了底層分析。2006年Ethreal改名為Wireshark.。2008年,在經過了十年的發展後,Wireshark釋出了1.0版本。

1.3  WireShark可以做什麼

簡而言之,WireShark主要作用就是可以抓取各種端口的封包,包括有線網口、無線網口、USB口、LoopBack口等等,進而就可以很友善地進行協定學習、網絡分析、系統排錯等後續任務。

1.4  不同平台下的WireShark

目前WireShark支援幾乎所有主流封包檔案,包括pcap,cap ,pkt,enc等等。但是不同平台下的WireShark卻有功能上的不同。總體來說,Linux版本WireShark的功能和特性比Windows版本的要豐富和強大。例如,Linux版本的WireShark可以直接抓取USB接口封包,而Windows版本就不行。

威而鲨(WireShark)之抓包魚翅手

Figure 1,Linux下的WireShark

威而鲨(WireShark)之抓包魚翅手

Figure 2,Windows下WireShark

威而鲨(WireShark)之抓包魚翅手

Figure 3,各平台下的WireShark所支援的協定

各平台下的WireShark支援的協定如上圖所示。從圖中可以看到Linux下的版本功能最強大,由于平台本身特性,可以使WireShark幾乎支援所有協定。但由于我們平時工作中主要抓取以太網封包,且絕大部分的作業系統都是Windows,是以本文還是以Windows平台下的WireShark為例來進行說明。

2  使用WireShark抓取封包

2.1  WireShark組網拓撲

為了抓到HostA與HostB之間的封包,下面介紹幾種WireShark組網。

2.1.1  線上抓取

如果WireShark本身就是組網中的一部分,那麼,很簡單,直接抓取封包就行了。

威而鲨(WireShark)之抓包魚翅手

Figure 4,Switched Media-Same Computer

2.1.2  串聯抓取

串聯組網是在封包鍊路中間串聯一個裝置,利用這個中間裝置來抓取封包。這個中間裝置可以是一個HUB,利用HUB會對域内封包進行廣播的特性,接在HUB上的WireShark也能收到封包。

威而鲨(WireShark)之抓包魚翅手

Figure 5,Switched Media –“Hubbing Out”

若是WireShark有雙網卡,正确設定網絡轉發,直接串接在鍊路上。

威而鲨(WireShark)之抓包魚翅手

也可以利用Tap分路器對來去的封包進行分路,把封包引到WireShark上。

威而鲨(WireShark)之抓包魚翅手

串聯組網的好處是封包都必須經過中間裝置,所有包都能抓到。缺點是除非原本就已經規劃好,不然要把封包鍊路斷開,插入一個中間裝置,會中斷流量,是以一般用于學習研究,不适用于實際業務網。

2.1.3  并聯抓取

并聯組網是将現有流量通過現網裝置本身的特性将流量引出來。若是網絡本身通過HUB組網的,那麼将WireShark連上HUB就可以。

威而鲨(WireShark)之抓包魚翅手

若是交換機組網,那直接連上也能抓取廣播封包。

威而鲨(WireShark)之抓包魚翅手

當然,最常用的還是利用交換機的鏡像功能來抓包。

威而鲨(WireShark)之抓包魚翅手

并聯組網的優點是不用破壞現有組網,适合有業務的線上網絡。缺點是HUB組網已經不常見,而交換機組網的裝置開啟鏡像後,對性能有非常大的影響。

2.2  WireShark的安裝

WireShark是免費開源軟體,在網上可以很輕松擷取到。 Windows版的WireShark分為32位而64位兩個版本,根據系統的情況來決定安裝哪一個版本,雖然64位系統裝32位軟體也能使用,但裝相應比對的版本,相容性及性能都會好一些。在Windows下,WireShark的底層抓包工具是Winpcap,一般來說WireShark安裝包内本身就包含了對應可用版本的Winpcap,在安裝的時候注意鈎選安裝就可以。安裝過程很簡單,不再贅述。

2.3  使用WireShark抓取網絡封包

1.      選擇需要抓取的接口,點選Start就開始抓包。

威而鲨(WireShark)之抓包魚翅手
威而鲨(WireShark)之抓包魚翅手

2.4  使用WireShark抓取MPLS封包

對于mpls封包,wireshark可以直接抓取帶MPLS标簽的封包。

威而鲨(WireShark)之抓包魚翅手

2.5  使用WireShark抓取帶Vlan Tag的封包

早期網卡的驅動不會對VLAN TAG進行處理,而是直接送給上層處理,在這種環境下,WireShark可以正常抓到帶VLAN TAG的封包。而Intel,broadcom,marvell的網卡則會對封包進行處理,去掉TAG後再送到上層處理,是以WireShark在這種情況下通常抓不到VLAN TAG。這時我們需要針對這些網卡做一些設定,WireShark才能夠抓取帶VLAN TAG的封包。

1.      更新網卡的最新驅動

2.      按照以下說明修改系統資料庫

威而鲨(WireShark)之抓包魚翅手

3.      以Intel網卡為例,對網卡進行配置

選擇Intel網卡的本地連接配接,右鍵屬性

威而鲨(WireShark)之抓包魚翅手

點選“配置”按鈕。

威而鲨(WireShark)之抓包魚翅手

在VLAN頁籤中,加入任意一個VLAN,激活接口的VLAN TAG上送功能。此時可以把“本地連接配接”接口看成是一個Trunk接口。

威而鲨(WireShark)之抓包魚翅手

配置完VLAN後,如果發現系統禁用了“本地連接配接”接口,則隻要啟用它,會看到網絡連接配接中會出現一個新的子接口“本地連接配接2”。

威而鲨(WireShark)之抓包魚翅手

在WireShark上檢視抓取“本地連接配接”接口的封包。

威而鲨(WireShark)之抓包魚翅手

可以看到已經可以抓到有VLAN TAG的封包了。

威而鲨(WireShark)之抓包魚翅手

由于此時的子接口都是有VLAN屬性的,是以無法當成正常的網卡來用。如果想要在抓VLAN包的同時,還能夠與網絡正常通信,隻要再建立一個未标記的VLAN就行。

威而鲨(WireShark)之抓包魚翅手

這時,會生成一個對應的子接口“本地連接配接3”,在這個接口上正确配置網絡參數,就可以正常通信了。

威而鲨(WireShark)之抓包魚翅手
加群交流在背景回複“加群”,添加小編微信,小編拉你進去      
END      

繼續閱讀