安基網 首頁 系統 網絡學院 查看內容

網絡安全之wireshark (ARP劫持,MAC泛洪)及數據追蹤

2020-5-23 23:34| 投稿: xiaotiger |來自: 互聯網


免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!

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

一.Wireshark抓包原理

(一).網絡抓包原理

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

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

1.本機環境

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

2.集線器環境

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

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

3.交換機環境

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

(1)端口鏡像

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

(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,這也是典型的流量劫持、局域網攻擊。

(3)MAC泛洪

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

(二).底層框架原理

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

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運行后,其界面如下圖所示,包括標題欄、菜單欄、工具欄、數據包過濾欄、數據包列表區、數據包詳細區、數據包字節區、數據包統計區。

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

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

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

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

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

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

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

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

增加后如下圖所示:

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

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


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


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


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


8.開啟傳輸域名解析。


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


9.查看解析地址。


顯示結果如下:

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


如下圖所示修改為紅色。


11.文件->打印。

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

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

1.數據流追蹤

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


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


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


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



3.統計摘要說明

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


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

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

以節點形式展示針對某個主機的通訊信息。

可以通過數據包詳細信息查看主機的IP地址、端口、使用協議以及服務器版本、數據包大小等。

可以設置以IP地址或者主機名或者操作系統等其他類別顯示數據包。

可以自動通過數據包分析出里面的文件,例如圖片、js以及css等其他傳輸的文件。

可以分析出數據包中的證書信息。

可以分析出http協議中的Session信息和cookie以及其他參數。

支持根據關鍵詞查找功能,支持對FTP、TFTP、HTTP、SMB 和 SMTP協議的文件提取。

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

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

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



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


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


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



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

第四步:獲取網址對應的IP地址,這里使用IP站長之家實現。IP地址為:47.xxx.xxx.107 。


第五步:點擊暫停并通過過濾器獲取與該IP地址相關的HTTP協議數據包。
http and ip.addr==47.xxx.xxx.107


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


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

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


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


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


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



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


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


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

五.總結

講到這里,此篇文章講述完畢?傊,Wireshark是一個非常強大的 工具,希望讀者能學會使用它,后續我們將分享如何獲取手機APP中的流量。作者也是小白,但仍然在一步一個腳印學習,希望你也能與我同行。再次強調,Bilibili中有很多資源,去看看吧。


三年后,再次來到這座曾生活過六年的城市,還是那么有歷史韻味,還是那么讓人喜歡。這居然是我第一次走進國家會議中心,第一次近看鳥巢。

感恩老師,來之不易的學習機會,讓我們異常珍惜。雖然聽得懵懵懂懂,但也見識了差距,算是種經歷和成長吧。人生,總有很多不期而遇的溫暖,和生生不息的希望,且行且珍惜。趕緊總結下學術知識、寫篇博文。



小編推薦:欲學習電腦技術、系統維護、網絡管理、編程開發和安全攻防等高端IT技術,請 點擊這里 注冊賬號,公開課頻道價值萬元IT培訓教程免費學,讓您少走彎路、事半功倍,好工作升職加薪!

本文出自:https://www.toutiao.com/i6828201477295571456/

免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!


鮮花

握手

雷人

路過

雞蛋

相關閱讀

最新評論

 最新
返回頂部
洗衣店赚钱联系澳洁 好彩1开奖结果预测 五分赛车大小单双图解 贵州11选5遗漏数据统计 万宝配资 福彩3d开奖直播 广东11选5合法吗 最热门的股票论坛 3d开机号试机号查询表 福建31选7开奖查询 安徽快3计划