[網絡安全自學篇] 十三.Wireshark抓包原理(ARP劫持、MAC泛洪)及數據流追蹤和圖像抓取(二)
2019年09月22日 21:55:44 Eastmount 閱讀數 3515 文章標簽: 網絡安全Web安全滲透安全Wireshark數據流追蹤 更多
版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/Eastmount/article/details/101101829
這是作者的系列網絡安全自學教程,主要是關於網安工具和實踐操作的在線筆記,特分享出來與博友共勉,希望您們喜歡,一起進步。前文分享了Wireshark安裝入門和一個抓取網站用戶名和密碼的案例,本篇文章將繼續深入學習Wireshark的抓包原理知識,並分享數據流追蹤、專家信息操作,最后結合NetworkMiner工具抓取了圖像資源和用戶名密碼。本文參考了PingingLab陳鑫傑老師的部分內容,非常推薦大家觀看他的教程。同時,Bilibili是學習網絡安全和編程的好地方喔,大家可以去試試。
Wireshark作為網絡分析的最佳利器之一,非常推薦網絡安全初學者學習。作者作為網絡安全的小白,分享一些自學基礎教程給大家,希望你們喜歡。同時,更希望你能與我一起操作深入進步,后續也將深入學習網絡安全和系統安全知識並分享相關實驗。總之,希望該系列文章對博友有所幫助,寫文不容易,大神請飄過,不喜勿噴,謝謝!
下載地址:https://github.com/eastmountyxz/NetworkSecuritySelf-study
百度網盤:
文章目錄
前文學習:
[網絡安全自學篇] 一.入門筆記之看雪Web安全學習及異或解密示例
[網絡安全自學篇] 二.Chrome瀏覽器保留密碼功能滲透解析及登錄加密入門筆記
[網絡安全自學篇] 三.Burp Suite工具安裝配置、Proxy基礎用法及暴庫示例
[網絡安全自學篇] 四.實驗吧CTF實戰之WEB滲透和隱寫術解密
[網絡安全自學篇] 五.IDA Pro反匯編工具初識及逆向工程解密實戰
[網絡安全自學篇] 六.OllyDbg動態分析工具基礎用法及Crakeme逆向破解
[網絡安全自學篇] 七.快手視頻下載之Chrome瀏覽器Network分析及Python爬蟲探討
[網絡安全自學篇] 八.Web漏洞及端口掃描之Nmap、ThreatScan和DirBuster工具
[網絡安全自學篇] 九.社會工程學之基礎概念、IP獲取、IP物理定位、文件屬性
[網絡安全自學篇] 十.論文之基於機器學習算法的主機惡意代碼
[網絡安全自學篇] 十一.虛擬機VMware+Kali安裝入門及Sqlmap基本用法
[網絡安全自學篇] 十二.Wireshark安裝入門及抓取網站用戶名密碼(一)
前文欣賞:
[滲透&攻防] 一.從數據庫原理學習網絡攻防及防止SQL注入
[滲透&攻防] 二.SQL MAP工具從零解讀數據庫及基礎用法
[滲透&攻防] 三.數據庫之差異備份及Caidao利器
[滲透&攻防] 四.詳解MySQL數據庫攻防及Fiddler神器分析數據包
參考文獻:
《安全之路Web滲透技術及實戰案例解析》陳小兵老師
《Wireshark數據包分析實戰》第二版 Chris Sanders
《Wireshark網絡分析》第二版 Laura Chappell
《TCP/IP協議棧詳解卷一》 W.Richard Stevens
《Wireshark協議分析從入門到精通》-51cto老師(強推)
使用Wireshark抓包獲取在網頁中輸入的賬號密碼 - 鵬曉星博友
安全科普:利用WireShark破解網站密碼 - JackFree大神
用wireshark抓包分析TCP三次握手、四次揮手以及TCP實現可靠傳輸的機制 - suddoo大神
Wireshark如何抓明文用戶名和密碼 - liu_yanzhao大神
網絡抓包工具 wireshark 入門教程 - zhuyunier
https://www.bilibili.com/video/av29479068
聲明:本人堅決反對利用社會工程學方法進行犯罪的行為,一切犯罪行為必將受到嚴懲,綠色網絡需要我們共同維護,更推薦大家了解它們背后的原理,更好地進行防護。
一.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.110.166.107 。
第五步:點擊暫停並通過過濾器獲取與該IP地址相關的HTTP協議數據包。
http and ip.addr==47.110.166.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中有很多資源,去看看吧。
三年后,再次來到這座曾生活過六年的城市,還是那么有歷史韻味,還是那么讓人喜歡。這居然是我第一次走進國家會議中心,第一次近看鳥巢。
感恩老師,來之不易的學習機會,讓我們異常珍惜。雖然聽得懵懵懂懂,但也見識了差距,算是種經歷和成長吧。人生,總有很多不期而遇的溫暖,和生生不息的希望,且行且珍惜。趕緊總結下學術知識、寫篇博文。
這里有很多老師、知己和故友,但這次匆忙,下次共聚,勿怪、勿念。爭取帶女生來一次北京。
——秀璋 2019.9.22 北京
(By:Eastmount 2019-09-22 晚上11點 http://blog.csdn.net/eastmount/ )