Wireshark學習

0x1 Wireshark安裝和下載

老樣子給出Wireshark下載地址Wireshark官網,下載完成後除了選擇安裝路徑外都可以直接下一步默認安裝配置。如果嫌下載慢我這還有剛下好的最新版本x64 v3.2.1,給大家帶來便利網盤入口,密碼:sayb
我這裏安裝的版本是Wireshark v3.0.6
在這裏插入圖片描述

0x2 Wireshark的安置

想要使用Wireshark首先要知道Wireshark部署位置,要根據當前需要抓包環境的完整網絡拓撲圖,至少要知道出故障網絡的網絡拓撲纔能有效的進行網絡抓包和診斷。根據網絡拓撲圖纔可以找到合理安置Wireshark的位置。
安置Wireshark的方法:
1)確定要抓取並監控的設備發出的流量
2)將安裝了Wireshark的主機或筆記本連接到目標主機所在的交換機上(同一局域網)
3)開啓交換機的端口監控功能(該功能叫端口鏡像或交換式端口分析器[Switched Port Analyzer,SPAN]),把受監控設備發出的流量重定向給Wireshark主機。
按照以上步驟就可以進行抓包了,這是最簡單的操作。
Wireshark可以用來監控LAN端口、WAN端口、服務器/路由器端口或接入網絡的任何其他設備發出的流量。需要按照下圖所示方向配置端口鏡像,即可監控到S2服務器所有進出流量,Wireshark也可以安裝到S2服務器本身對本機抓包。
在這裏插入圖片描述
注意,流量監控的特性是需要交換機支持的,而不是Wireshark軟件本身。
Wireshark軟件包中自帶WinPcat函數庫,這個庫主要作用是通過軟件形式模擬網卡,並獲取網卡收發消息的。(Windows下使用的類庫,可以用這個進行開發類似Wireshark的網絡分析小工具)
因爲我是之前就安裝過Wireshark,這裏按照書中版本的安裝截圖進行說明
在這裏插入圖片描述
TShark組件:一種命令行協議分析器。
Wireshark 1/2:對老版本兼容軟件,保證新版本出現問題可以隨時切回老版本使用。安裝這個比較穩妥。
拓展功能和和工具也都默認選上,裏面有很多關於協議解析和過濾數據包好用的功能和工具。

0x3 操作方法wireshark配置方案圖

1、服務器流量監控
如上圖所示,如果想要監控服務器的收發流量只需要將安裝Wireshark的筆記本與服務器連接在相同交換機下,然後讓該交換機重定向流量到Wireshark就可以開始抓包。也就是上圖標號1所指向的位置。當然也可以直接在服務器上安裝Wireshark本機抓包。
2、路由器流量監控
可以根據以下各種情形,來監控進出路由器的流量
情形1:監控路由器連接交換機的LAN口的進出流量
1)將Wireshark設備接在編號2的位置上(路由器和交換機中間)
2)開啓交換機上的端口鏡像功能,把與路由器LAN口相連的端口流量重定向至連接Wireshark主機的端口。
情形2:監控安裝在路由器上的交換模塊端口讀進出流量
1)當路由器安裝了一塊交換模塊時,如圖編號6(5指的是WAN端口,6指的是LAN端口)
2)只能監控鏈接到交換模塊的設備流量(因爲路由器先把流量處理後交給了交換模塊,交換模塊再轉交交換機,Wireshark接入的位置相當於交換模塊和交換機之間自然只能接到交換模塊的流量)
情形3:監控未安裝交換模塊的路由器的WAN口的流量
1)可在路由器WAN口和服務提供商(SP)網路間架設一臺交換機,在該交換機上執行端口監控。如下圖
在這裏插入圖片描述
2)同樣開啓交換機端口監控功能,將連接WAN口的端口流量重定向到安裝Wireshark的筆記本上。
情形4:嵌入了抓包功能的路由器
啓用路由器內置抓包功能時,請確保路由器有足量的內存,不能因爲開啓該功能而影響路由器的速度。
某些廠商將抓包功能嵌入了路由器或路由器操作系統。
監控路由器流量時請注意:發往路由器的數據包並不一定都會得到轉發。有些數據包在發送的過程中有可能丟包,路由器本身也可能因爲內存不足對一部分數據從接收端口原路送回。還有廣播包不會得到路由器轉發。
3.防火牆流量監控
有兩種手段進行監控:
1)監控防火牆內口流量
2)監控防火牆外口流量
如下圖
在這裏插入圖片描述監控防火牆內口,可以查看內網所有用戶發起的Internet的流量,其源IP地址均爲分配給內網用戶的內部IP地址。監控外口,能看到所有經過防火牆放行的訪問Internet的流量,這些流量IP地址均爲外部IP地址(拜NAT所賜,分配給內網用戶的內部IP地址被轉換成了外部IP地址)。
4、分路器和Hub
執行流量監控任務時,可能會用到以下兩種設備。
**分路器:**可在受監控的鏈路上用分路器(Test Access Point,TAP)來取代互聯網到路由器間的交換機的位置。與交換機作用相同,而且TAP便宜方便,還可以把出錯的數據包給Wireshark,交換機遇到錯誤就會直接將錯誤包丟棄。
**Hub:**也是爲替代監控互聯網到路由器之間的路由器而設計的,它時半雙工設備。用這個設備,路由器和SP設備之間穿行的每個數據包都能被Wireshark注意獲取。但半雙工的缺點也很明顯,流量速度太慢,會顯著加劇流量的延遲。所以一般抓包都不用Hub

0x3 幕後原理

LAN交換機運作方式
1)LAN會不斷地學習接入本機的所有設備的MAC地址。
2)收到發往某MAC地址的數據幀時,LAN交換機只會將其從學的此MAC地址的端口外發
3)收到廣播幀時,交換機會從出接收端口外的所有端口外發
4)收到多播幀時,若未啓用Cisco組織管理協議或Internet組織管理協議監聽特性,LAN交換機會從除接收端口以外所有的端口外發;如啓用了上面兩種特性之一,LAN交換機會通過接連了相應多播接收主機的端口外發多播幀。(簡單來說,如果沒開特性就全發跟廣播一樣,開啓特性就根據哪些主機開了上面的專門接收多播的端口選擇性的發送)
5)收到目的MAC地址未知的數據幀時(這種比較罕見),交換機會從除接收端口意外的所有端口外發。
接下來以下圖爲例進行說明第二層(L2)網絡的運作方式。
在這裏插入圖片描述
接入網絡的每臺設備都會定期發送廣播包。ARP請求消息和NetBIOS通告消息都屬於廣播包。廣播包已經發出,就會遍佈整個L2網絡(如圖虛線所示)。上圖發廣播幀的計算機是1號終端,所有交換機接到這個廣播幀後都會記錄這個MAC幀和發出MAC幀的計算機端口M1。
當PC2要將一幀發送給PC1時,由於所有交換機都學過了PC1的MAC幀地址。PC2的MAC幀會被轉發給SW5,由於SW5已經知道了PC1的地址,則會繼續轉發給其他知道PC1的MAC地址的交換機,一直到最終的PC1的地址。
因此,將交換機上的某端口配置爲鏡像端口,先把受監聽端口流量重定向到該端口上,再接入安裝了Wiershark的筆記本電腦,即可觀察到到所有受監控的端口流量。如果直接連接Wireshark筆記本電腦而不做任何配置,只能抓取到流過這個筆記本網卡的單播流量,以及廣播和多播流量。
注意:Wireshark再對於不同交換機端口之間交換的同一VLAN流量,Wireshark會從流量接收端口的流入方向以及流量發送端口的流出方向分別收取一遍,所以會抓到重複的數據包。

0x4 在虛擬機上抓包

1、再駐留於單一硬件平臺的VM上抓包
在這裏插入圖片描述
由圖可知,個操作系統(客戶操作系統)分別運行了多個應用程序APP。這些操作系統都運行於虛擬化軟件之上,而虛擬化軟件則運行於硬件平臺之上。
現實生活中想要實施抓包有兩種選擇:
1)在有待監控的主機上安裝Wireshark
2)在LAN交換機上開啓端口鏡像功能,將連接受監控主機的網卡(NIC)的交換端口流量重定向至Wireshark主機。
在駐留於單一硬件的虛擬化平臺(雲端)進行抓包方法有兩種:
1)在有待監視的指定服務器上安裝Wireshark,直接在服務器上抓包。
2)在安裝了Wireshark的筆記本電腦連接交換機,開啓重定向服務,重定向進出口的流量。在上圖所示場景中,將筆記本電腦連接至交換機某個空閒端口(8口)相連,開啓端口鏡像功能,將1、2口流量重定向至8口,不過這種抓包方法容易碰到問題。
第一種抓包方式直接。第二種有可能碰到問題。
如上圖,服務器和LAN交換機之間通常會通過兩條以上的鏈路互聯。可以把這樣的連接方式稱爲鏈路聚合(LAG)、端口/網卡結對(teaming)或EtherChannerl(如用Cisco 交換機)。在監控服務器流量時,得檢查連接服務器的交換機接口時運行於負載共享(load sharing)模式還是端口冗餘(port redundancy)(也叫做故障切換或者主備[Failover]模式)。若運行於端口冗餘模式:請先確認連接服務器網卡的活躍交換機端口,再配置鏡像,實施抓包。若運行於負載共享模式(一個網絡請求,由兩個網卡一起完成,但兩個網卡的流量卻完全不等),則必須採用以下三種流量鏡像之一:
1)鏡像抓取LAG接口的流量。即鏡像抓取兩個或兩個以上的物理端口,並捆綁而成的虛擬機接口流量。交換機廠商一般會把這樣的虛擬機接口稱爲Port-Group接口或Port-Channel接口。
2)服務器NIC運行於端口冗餘模式。請將連接服務器網卡的兩個交換機物理端口(如下圖所示交換機的1、2兩口,選項A)中活躍端口流量鏡像至Wireshark主機。
在這裏插入圖片描述
3)在LAN交換機上配置兩路端口鏡像,將連接服務器雙網卡的兩個物理機端口流量同時鏡像給Wireshark主機的雙網卡。
還有一個問題:
在負載共享抓包模式下抓包,若進出服務器流量過高,採用方法1,將會把兩塊網卡京享值Wireshark主機單網卡。這種流量已經超過了網卡接包的最大流量上限,Wireshark主機不可能抓全所有服務器流量,某數據包勢必會被丟棄。因此想要保證抓全所有流量包,請保證Wireshark主機的NIC速率高於受監控服務器網卡速率,或採用3方法(用雙網卡抓包)

0x5 在刀片服務器上抓包

刀片服務器是指在標準高度的機架式機箱內可插裝多個卡式的服務器單元,是一種實現HAHD(High Availability High Density,高可用高密度)的低成本服務器平臺,爲特殊應用行業和高密度計算環境專門設計。刀片服務器就像“刀片”一樣,每一塊“刀片”實際上就是一塊系統主板。
在這裏插入圖片描述
下圖是刀片式服務器機箱的硬件網絡拓撲
在這裏插入圖片描述
所示刀片式服務器機箱(刀箱)包含以下部件。
刀片服務器:硬件刀片,通常安裝在刀箱正面。插在刀箱卡槽上的小單元。
服務器:虛擬服務器,也叫虛擬機,駐留於硬件刀片服務器之內。也就是每個卡槽上的服務器裏都有個虛擬機服務器。
內部LAN交換機:內部LAN交換機安裝在刀箱的正面或背面。此類交換機一般都有12 ~ 16個內部(虛擬)端口和4 ~ 8個外部(物理端口)。
外部LAN交換機:安裝在通信機架上的物理交換機,不屬於刀箱。
監控服務器刀箱(裏刀片服務器的流量)會更困難,因爲進出刀片服務器的流量是沒有辦法直接抓取的。
刀箱內部流量監控
要監控進出特定服務器的流量,請在虛擬服務器上安裝Wireshark。此時只要確定收發流量的虛擬網卡。檢查虛擬機的網絡設置即可確認這一點,還可以啓動Wireshark,在Wireshark-Capture Interface界面確認接收流量的虛擬機網卡。
刀片服務器與導向內部交換機所連服務器之間(上圖1)的流量監控
要監控刀片服務器與導向內部交換機所連服務器之間的流量,請在導向內部交換機上開啓鏡像功能,將上連刀片服務器的內口(虛擬端口)流量重定向至下連Wireshakr主機的外口(物理端口)。
刀箱內部交換機所連服務器與外部交換機所連設備間(標號2)的流量監控。
在內部或外部LAN交換機開啓端口鏡像功能,抓取流量。

0x6 開始抓包

0x6.1 操作方法

只要開啓軟件,進入啓動窗口即可看見所有本機網卡及流量狀況
在這裏插入圖片描述
發起單網卡抓包最簡單的方式就是雙擊有流量經過的網卡,還可以選中指定網卡後點擊小鯊魚的圖標2。
1、多網卡抓包
先按下Ctrl或Shift鍵,再用鼠標選擇就可以選中多個網卡選項。我隨便找了4個本地連接做演示。
在這裏插入圖片描述
選中後點擊鯊魚圖標,就可以同時抓取選中的內容的流量了。這裏只是舉個例子。
多網卡抓包很多情況下會用到。比如,只要Wireshark主機配備了兩塊物理網卡,即可同時監控到兩臺不同服務器的流量或一臺路由器的兩個接口流量,如下圖。
在這裏插入圖片描述
2、如何配置實際用來抓包的網卡
1)在菜單中點擊捕獲->設置選項,會彈出捕獲接口窗口。可以在窗口中配置抓包網卡的參數
在這裏插入圖片描述
2)可以在該窗口中的網卡列表區域選擇實際用來抓包的網卡,無需配置網卡上的其他參數,直接點擊start就可以開始抓包。
3)左下角有個"在所有接口上使用混雜模式的複選框"。一旦勾選,Wireshark主機便會抓取交換機(端口鏡像功能)重定向給自己的所有數據包,哪怕數據包的目的不是本機地址;若取消勾選,Wireshark就只會接收自己本機需要的數據報,丟棄重定向接口的數據包。
4)在網卡列表區域正下方,有抓包過濾器輸入欄。
3、將抓到的數據存入多個文件
可在網卡列表的“輸出”選項卡下配置,點擊“輸出選項卡”會彈出以下窗口。
在這裏插入圖片描述
Wireshark會將抓到的數據保存到我們自定義的路徑下。若勾選了"自動創建新文件,經過…“複選框,則可以設定條件,讓Wireshark按照所指定的條件,將抓包數據存入多個文件,文件名格式爲文件路徑欄內輸入的文件名+_xxxx_時間戳。該功能在有待監控的網絡鏈路的流量極高或需要長期抓包的情況下十分有用。在這種情況下可以設定條件,讓Wireshark在指定事件之後、抓取到指定規模的數據之後,或者抓取到指定數量的數據包只好,將抓包數據存入一個新文件。
4、設置抓包選項參數
點擊選項,在左上角1區域內設置顯示抓包後要顯示的選項。右上角2區域顯示解析選項。
在這裏插入圖片描述
5、網卡管理
在這裏插入圖片描述
彈出管理接口窗口,在該窗口下可以看到所有網卡信息,包括未在啓動窗口的網卡列表區域出現的網卡。
在這裏插入圖片描述
Wireshark還能時時讀取應用程序抓取到數據包。
6、遠程機器上抓包
1)在遠程機器上安裝pcap驅動程序,也可以在遠程機器上完整安裝Wireshark軟件包。
2)在Wireshark啓動窗口選擇“捕獲->設置->管理接口”,在彈出的另一個管理接口窗口中,點擊遠程接口選項卡,在該選項卡中點擊左下角”+“按鈕,會彈出一個遠程接口按鈕
在這裏插入圖片描述
3)在該窗口添加參數。
主機IP地址或主機名
輸入端口2002,不填則默認爲2002
可以選擇不驗證,驗證就是添加登陸的用戶名密碼
4)登陸有待採集數據的遠程機器
5)回到接口管理界面點擊OK按鈕,這樣遠程機器的網卡就會出現在本地網卡列表中,操作與本機一樣。
7、開始抓包——在Linux/UNIX機器上抓包
Linux和UNIX系統自帶tcpdump工具。我們需要記住以下常用指令

;從指定接口抓包:
	語法: tcpdump -i <接口名>
	例子: tcpdump -i eth0
;將從指定接口抓到數據存入指定文件
	語法: tcpdump -w <文件名> -i <接口名>
	例子: tcpdump -w test001 -i eth1
;讀取抓到的數據包文件
	語法: tcpdump -r <文件名>
	例子: tcpdump -r test001

8、從遠程通訊設備採集數據
該功能常規理念是,某些廠商的網絡設備具備本機抓包功能,抓包完畢之後,還支持將抓包文件導出至外部主機。
按Cisco的說法,該功能名爲嵌入式數據包捕獲(EPC)功能,配置方法可在思科官網進行搜索。

0x6.2 Wireshark抓包原理

將Wireshark主機的網卡接入有線或無限網絡開始抓包時,介於有線(或無線)網卡和抓包引擎之間的軟件驅動程序便會參與其中。在Windows和UNIX平臺上,這一軟件驅動程序分別叫作WinPcap和LibCap驅動程序;對於無線網卡,行使抓包任務的軟件驅動程序名爲AirPacP驅動程序。
若需要精準獲取時間還需要利用NTP協議從NTP服務器上獲取。

發佈了16 篇原創文章 · 獲贊 1 · 訪問量 1107
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章