Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

一、Wireshark抓包原理

(一)網絡抓包原理

網絡中不論傳輸什麼,最終通過物理介質發送的都是二進制,類似於0101的Bit流。純文本(字符串)中文通常採用UTF-8編碼,英文用ASCII編碼;非純文本音頻、視頻、圖片、壓縮包等按不同編碼封裝好,轉換成二進制傳輸。在IP網絡中,通過Wireshark抓包,獲取的原始數據都是二進制。

哪種網絡情況下能夠抓取到包呢?下面結合網絡原理講解。網絡抓包主要存在三種情況:本機環境、集線器環境和交換機環境。

1.本機環境

本機環境直接抓包本機網卡進出的流量。Wireshark會綁定我們的網卡,不需要藉助第三方設備(交換機、集線路由器)就能抓取我們的網絡通信流量,這是最基本的抓包方式。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

2.集線器環境

集線器環境可以做流量防洪,同一衝突域。集線器的英文是“Hub”,“Hub”是“中心”的意思,集線器的主要功能是對接收到的信號進行再生整形放大,以擴大網絡的傳輸距離,同時把所有節點集中在以它為中心的節點上。它工作於OSI參考模型第一層,即“物理層”。

假設三臺電腦通信,PC1處安裝Wireshark,當PC2、PC3發送數據包到集線器網絡裡面(衝突域或廣播域),由於集線器是物理層產品,不能識別MAC地址、IP地址,它會將接收包往其他所有接口泛洪,此時Wireshark就能抓到從同一個集線器其他電腦發過來的數據包,即局域網中的數據包。這是一種典型的老網絡做法,現在基本淘汰。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

3.交換機環境

交換機環境是更加常見的方式,包括端口鏡像、ARP欺騙、MAC泛洪。

(1)端口鏡像

交換機是一種數據鏈路層甚至網絡層的產品,它的轉包接包嚴格按照交換機上的MAC地址表通信。所以正常情況下,PC2和PC3通信流量是很難流到PC1的網卡上。當PC2和PC3通信時,PC1是無法通過Wireshark抓到包。但是我們可以在交換機端口做SAPN端口鏡像操作,它會將其他兩個口的流量複製一份到PC1處,PC1的網卡和Wireshark設置為混插模式,此時就能進行抓包。該模式常用於很多付費的流量分析軟件。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

(2)ARP劫持

假設我們沒有權限在交換機上做端口鏡像技術,因為有MAC地址表,又想獲取整個局域網中的流量,竊取到PC2、PC3上的流量。這可以通過著名的ARP攻擊軟件Cain&Abel實現,其流程是:

  • 首先,PC2發送ARP請求廣播包,交換機收到包之後會發給PC1和PC3。
  • PC1和PC3接收到,正常情況下PC1會丟棄該包,因為詢問的是PC3,但ARP欺騙會回覆“我是IP3,對應地址為MAC1”,這就是典型的ARP欺騙或ARP病毒。
  • 最後PC2會將流量封裝成底層的MAC1回覆過去。如果PC3和PC1都回應,但APR有個特性叫後到優先,PC1會做一個錯誤的綁定,將數據包發到MAC1,從而導致PC2和PC3的通信流量都會經過PC1,這也是典型的流量劫持、局域網攻擊。
Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

(3)MAC泛洪

通過工具泛洪帶來大量垃圾包,產生大量MAC地址,此時交換機MAC地址表會變為右邊這張表(爆表),MAC2和MAC3被擠出了MAC地址表。一旦這種MAC地址被擠出MAC地址表,按照交換機原理,如果收到的數據包是未知,它會對外泛洪,此時PC2和PC3對外流量泛洪。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

(二)底層框架原理

那麼,抓包的底層架構是怎樣的?下面開始講解Wireshark的底層原理。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

Wireshark包括5層架構:

  • 最底層Win-/libpcap:Wireshark抓包時依賴的庫文件(驅動文件、庫文件)
  • Capture:抓包引擎,利用libpcap/WinPcap底層抓取網絡數據包,libpcap/WinPcap提供了通用的抓包接口,能從不同類型的網絡接口(包括以太網、令牌環網、ATM網等)獲取數據包
  • Wiretap:此時獲取的是一些比特流,通過Wiretap(格式支持引擎)能從抓包文件中讀取數據包,支持多種文件格式
  • Core:核心引擎,通過函數調用將其他模塊連接在一起,起到聯動調用的作用,包分析引擎涉及Protocol-Tree(保存數據包的協議信息,協議結構採用樹形結構,解析協議報文時只需從根節點通過函數句柄依次調用各層解析函數即可)、Dissectors(各種協議解碼器,支持700多種協議解析,解碼器能識別出協議字段,並顯示出字段值,Wireshark採用協議樹的形式對數據流量的各層次協議逐層處理)、Plugins(一些協議解碼器以插件形式實現,源碼在plugins目錄)、Display-Filters(顯示過濾引擎,源碼在epan/dfilter目錄)。
  • GTK1/2:圖形處理工具,處理用戶的輸入輸出顯示,最終存儲至Harddisk硬盤中。

PS:瞭解基本的原理知識挺重要的,尤其為後續深入的研究。

二、界面功能介紹

Wireshark運行後,其界面如下圖所示,包括標題欄、菜單欄、工具欄、數據包過濾欄、數據包列表區、數據包詳細區、數據包字節區、數據包統計區。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

從上下按序編號如下圖所示。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

下面簡單介紹一些界面常識。

1.點擊“捕獲”->“選項”如下圖所示,可以設置輸入接口和過濾器。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

2.數據包詳細區用得最多,它是解析數據包核心區域。數據包包含時間流、誰發給誰(原始IP地址和目的IP地址)、協議、長度、內容等,當雙擊它能看到對應的詳細信息。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

數據包詳細區、數據包字節區包含比特字節信息。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

3.統計欄的內容也值得大家去深入學習,後面會分享流量圖信息。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

4.顯示界面中可以設置字體大小,如下圖所示。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

5.列設置包括默認列表、增加列、修改列、隱藏列、刪除列,設置默認即可,下圖是選中某行右鍵“應用為列”即可增加列。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

增加後如下圖所示:

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

選中該列名稱,右鍵“刪除列”即可。點擊“編輯列”可以對名稱進行修改。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

6.時間設置涉及時間格式和參考時間。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

修改之後如下圖所示,不在顯示時間間隔。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

7.名字解析主要用於判斷廠商信息,名詞解析庫,基本知識如下圖所示。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

設備相關信息如下圖所示:

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

8.開啟傳輸域名解析。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

開啟之後可以看到解析的域名(domain)及對應的DNS。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

9.查看解析地址。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

顯示結果如下:

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

10.數據包操作包括數據包標記、註釋數據包、合併數據包、打印數據包、導出數據包,通過不同的協議設置不同的配色方案。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

如下圖所示修改為紅色。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

11.文件->打印。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

接下來將繼續分享Wireshark的實際案例知識,首先講解數據流追蹤、專家信息獲取和統計摘要獲取的知識。

三、數據流追蹤和專家統計說明

1.數據流追蹤

數據流追蹤主要是將TCP、UDP、SSL數據流進行重組並完整呈現出來,其點擊路徑為:Analyze -> Follow -> TCP stream 分析。跟蹤TCP流實現如下圖所示:

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

我們在訪問網頁的時候,除了HTTP協議,大部分的流量應該是通過TCP協議生成數據包的,如下圖所示。紅色部分表示瀏覽器訪問的網址信息(Request),藍色部分表示對方給我們的反饋信息(Response)。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

2.專家信息說明

其功能是對數據包中特定狀態進行警告說明,包括錯誤(errors)、警告(warnings)、注意(notes)、對話(chats)。正常通信是不會丟包的,但實際情況可能有延遲,可以通過專家信息分析和查看網站的穩定性。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

顯示結果如下圖所示,並被標註為各種顏色。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

3.統計摘要說明

其功能主要是對抓取的數據包進行全局統計,基本點擊路徑為:Statistics -> Summary 統計彙總信息。顯示結果如下圖所示,後續可能會結合案例詳細講解。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

四.Wireshark和NetworkMiner劫持流量及圖片

NetworkMiner:一款開源的網絡取證和協議分析工具,能夠通過嗅探器檢測操作系統、主機名以及開放的端口。同時也可以通過分析pcap文件來獲取到數據包的詳細信息。 除了能夠進行基本的數據包抓取分析,NetworkMiner還支持以下功能:

  • 以節點形式展示針對某個主機的通訊信息。
  • 可以通過數據包詳細信息查看主機的IP地址、端口、使用協議以及服務器版本、數據包大小等。
  • 可以設置以IP地址或者主機名或者操作系統等其他類別顯示數據包。
  • 可以自動通過數據包分析出裡面的文件,例如圖片、js以及css等其他傳輸的文件。
  • 可以分析出數據包中的證書信息。
  • 可以分析出http協議中的Session信息和cookie以及其他參數。
  • 支持根據關鍵詞查找功能,支持對FTP、TFTP、HTTP、SMB 和 SMTP協議的文件提取。

總之,這個源碼項目還是比較複雜的,如果想深入研究數據包結構分析和Pcap,NetworkMiner也是個不錯的選擇。

下面結合Wireshark和NetworkMiner工具講解劫持流量案例,獲取登錄HTTP網站的用戶名和密碼,並且作者修改了頭像圖片,通過NetworkMiner軟件獲取了該上傳資源。

第一步:啟動Wireshark軟件,並開始監聽流量數據包。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

第二步:打開瀏覽器並輸入目標網址。(後續會嘗試分析HTTPS網站或手機APP檢測)

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

第三步:輸入用戶名和密碼登錄。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

登錄之後如下圖所示,作者這裡嘗試點擊鏈接提交我的一張本地頭像。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

上傳之後如下圖所示,接下來我們開始嘗試分析抓取的流量數據包。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

第四步:獲取網址對應的IP地址,這裡使用IP站長之家實現。IP地址為:47.110.166.107 。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

第五步:點擊暫停並通過過濾器獲取與該IP地址相關的HTTP協議數據包。

http and ip.addr==47.110.166.107

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

第六步:選中POST登錄提交表單的鏈接,可以查看對應的用戶名和密碼如下圖所示,雙擊該行可以查看詳情。注意,該網站是明文傳輸用戶名和密碼,如果密碼加密,可以採用在線MD5解密。還是建議該網站對密碼進行加密或設置HTTPS傳輸。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

第七步:右鍵鏈接,點擊“追蹤流”->“TCP流”。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

顯示的詳情內容如下圖所示,其中紅色為Request,藍色為服務器響應Response,我們也可以嘗試將其導出保存至本地。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

第八步:如果過濾器為“ ip.addr==47.110.166.107”,則還除了獲取HTTP協議數據包,還能獲取其他協議,包括TCP,大多數流量包均通過TCP協議三次握手傳輸。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

這裡,讀者嘗試尋找POST提交圖片表單,找到其TCP流的原圖片格式進行分析。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

第九步:打開工具NetworkMiner,嘗試通過它分析數據包。(注意,前面Wireshark抓取的包將存儲為本地pcap文件)。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

第十步:該軟件打開我們本地的0921.pcap文件,顯示如下圖所示。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

第十一步:點擊Credentials查看我們Wireshark劫持的所有流量登錄信息,可以看到我們目標網站的用戶名Yxiuzhang和密碼。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

第十二步:點擊Images可以查看我們上傳的圖片為“eastmount.jpg”,上傳服務器之後頭像命名為“17577…jpg”,成果抓取了圖像資源。

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取

五、總結

總之,Wireshark是一個非常強大的工具,希望讀者能學會使用它,也期待在下方評論中看到你的觀點,在學習技術的路途中希望你也能與我同行。

原文鏈接:https://blog.csdn.net/Eastmount/article/details/101101829

Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取


分享到:


相關文章: