今天講一下另一款底層抓包軟體,之前寫過兩篇抓包軟體
分別是
Kali Linux系統自帶 Wireshark 工具,而windows 需要手動安裝wireshark
下面貼上下載官網:
https://www.wireshark.org/download.html
下載完之後一直點下一步安裝即可。
首先安裝完了之後,我們開啟抓包軟體
可以看到有很多的網路介面,那我們應該如何選擇呢?
win+r =====> cmd ====> ipconfig
選擇我們現在正在上網的網路卡
這裡用的wifi 就直接抓wlan這個網路卡了。
直接滑鼠雙擊點進去
可以看到有很多的封包
整體來說,介面主要分為以下幾部分:
選單欄:Wireshark的標準選單欄。
工具列:常用功能的快捷圖示按鈕,提供快速存取選單中經常用到的專案的功能。
過濾器:提供處理當前顯示過濾得方法。
Packet List面板:顯示每個資料框的摘要。這裡採用表格的形式列出了當前捕獲檔案中的所有封包,其中包括了封包序號、封包捕獲的相對時間、封包的源地址和目標地址、封包的協定以及在封包中找到的概況資訊等。
Packet Details面板:分析封包的詳細資訊。這個面板分層次地顯示了一個封包中的內容,並且可以通過展開或是收縮來顯示這個封包中所捕獲的全部內容。
Packet Bytes面板:以十六進位制和ASCII碼的形式顯示封包的內容。這裡顯 示了一個封包未經處理的原始樣子,也就是在鏈路上傳播時的樣子。
狀態列:包含有專家資訊、註釋、包的數量和Profile。
在此之前瞭解下抓包的兩種模式。
不勾選就是普通模式
那什麼是混雜模式 和普通模式呢?
一般來說,混雜模式不會影響網路卡的正常工作,多在網路監聽工具上使用
檔案:開啟檔案集、儲存包、匯出HTTP物件
編輯:清除所有標記的包、忽略包和時間屬性
檢視:檢視/隱藏工具列和麵板、編輯Time列、重設顏色
跳轉:跳轉到某個設定好的分組列表
捕獲:用於設定模式和開始與停止
分析:建立顯示過濾器宏、檢視啟用協定、儲存關注解碼
統計:建立圖表並開啟各種協定統計視窗
電話:執行所有語音功能(圖表、圖形、回放)
無線:用於設定無線藍芽等抓包的功能
工具:根據包內容構建防火牆規則、存取Lua指令碼工具
幫助:學習wireshark全球儲存和個人組態檔
從左至右
當用戶面向大量需要處理的資料時,可以通過使用顯示過濾器快速的過濾自己需要的資料。
下文會詳細介紹,搜尋即可過濾。
No. :包的編號 ————————————預設wireshark是按照封包編號從低到高排序,該編號不會發生改變,即使使用了過濾也同樣如此
Time:包的時間戳。時間格式可以自己設定
Source 和Destination :包的源地址和目的地址
Protocol:包的協定型別
Length:包的長度
Info:包的附加資訊
右擊還有其他的一些設定
在封包列表中選擇指定封包,在封包詳細資訊中會顯示封包的所有詳細資訊內容。封包詳細資訊面板是最重要的,用來檢視協定中的每一個欄位。各行資訊分別為
(1)Frame: 物理層的資料框概況
(2)Ethernet II: 資料鏈路層乙太網幀頭部資訊
(3)Internet Protocol Version 4: 網際網路層IP包頭部資訊
.... (這裡點點點表示 不同的包所展示的是不同的內容)
分層的顯示了一個封包中的內容,並且可以通過展開或者收縮來顯示這個封包中所捕獲的全部內容
還可以看到一些詳細資訊。
這個板塊 分為兩部分 左邊這部分是16進位制的資料,右邊是ASCII格式
當在packet details面板中選擇任意一個欄位後,在packet bytes面板中包含該欄位的位元組也高亮顯示
分為一些雜項和位址列。個人感覺作用不大。
剛剛點選了停止抓包 要是重新開啟抓包點選左上角這個按鈕
如果想儲存就點選第一個,一般做測試都是不儲存的。
然後就可以重新開始抓包了。
然後就正式開始過濾抓包了,我們想抓http相關的包====> 直接輸入http或者tcp
可能這樣顯得不太直觀。
舉個三次握手四次揮手的例子。
當輸入 tcp.flags.ack == 0
即代表底層握手(連結成功)
當輸入 tcp.flags.syn == 1
即代表底層握手(資料傳送成功)
不懂的可以自己去百度什麼是三次握手四次揮手。
所抓到也都是底層連結成功和傳送成功的包。
當然 命令和命令之間也可以通過and 或者or來完成與或非的關係。
即使講到了連結和傳送的命令 再講一下傳送成功結束的命令tcp.flags.fin==1
其中展示了本機向此伺服器傳送成功的封包
之前所講到的所有協定包 都可以在這裡過濾,比如 udp,http,tcp 等等等
剛剛講了可以通過協定過濾 那我們再抓取網站資料的時候能不能通過IP過濾呢。
搜下我們本地傳送了那些包
ip.src_host==192.168.2.51
可以清楚的看到source來源就都是我們的主機了
搜下目標地址是百度的包 百度的IP地址是180.101.50.188
ip.dst_host == 180.101.50.188
還有一個命令 ip.addr 代表著 只有IP是xxx 就全部顯現出來,不管是接收 還是傳送
在瞭解使用wireshark分析arp協定之前,我們先來了解下,什麼是是arp協定?
通俗點說,在區域網中通訊時使用的是MAC地址,而不是常見的IP地址。
所以在區域網的兩臺主機間通訊時,必須要知道對方的MAC地址,這就是ARP協定要做的事:將IP地址轉換為MAC地址。
光看這個講arp可能太籠統了,我們肯定之前聽過一個名稱——arp欺騙,那什麼是arp欺騙呢?
ARP攻擊就是通過偽造IP地址和MAC地址實現ARP欺騙,能夠在網路中產生大量的ARP通訊量,
攻擊者只要持續不斷的發出偽造的ARP響應包就能更改目標主機ARP快取中的IP-MAC條目,造成網路中斷或中間人攻擊。
當區域網中一臺機器,反覆向其他機器,特別是向閘道器,傳送這樣無效假冒的ARP應答資訊包時,嚴重的網路堵塞就會開始。
由於閘道器MAC地址錯誤,所以從網路中計算機發來的資料無法正常發到閘道器,自然無法正常上網。這就造成了無法存取外網的問題,
由於很多時候閘道器還控制著我們的區域網LAN上網,所以這時我們的LAN存取也就出現問題了
這裡也介紹完了
我們先來抓下arp的包 ,直接在過濾器中搜尋ARP,並且隨意開啟一個包
再來看一下回復包
故: 由一個request 和一個reply 組成的一組arp包,有請求有回覆組成的arp響應。
使用Ping命令用來測試網路的可達性。從而接受ICMP的報文包
首先我們ping下自己的閘道器
然後找下wireshark中剛剛抓到的包
重點看下ICMP裡面的內容
type:報文型別,8代表請求,0代表應答;
code:為0,表示為回顯應答成功;
checksum:表示認證這個ICMP報文是否被篡改過。校驗完整性。
checksum Status: 表示校驗的結果,Good代表沒問題。
identifier:表示識別符號ID
Sequence Number: 表示序列號
Data: 具體傳送到封包,當然肯定是通過加密的。
這是請求資料,還有一組回覆資料
可以看到。標示符和序列號都是一樣的
即兩臺電腦或者是兩臺機器之間的相互連結>>>中間會經歷一個三次握手 四次揮手的過程。
如下圖所示是示意圖>>>
我們隨意開啟一個網頁:百度 IP是180.101.50.188
如上圖所示 有syn的tcp連結包
然後我們來看下TCP協定的具體的內容
封包資訊:
傳輸層TCP資料段資訊
當然這麼看肯定不太直觀,還要結合這回復包去看每一條資訊。所以我們可以開啟流封包來檢視tcp協定報文
選擇限制顯示過濾器 選擇百度的地址
這樣看起來就非常的直觀了。
既然有連結,肯定就有斷開連結 天下無不散之筵席嘛,不可能一直互相連線的。
而斷開連結則有另一個名詞—— 四次揮手
和三次握手一樣,我們直接關閉百度這個網站,
然後去wireshark中搜尋180.101.50.242這個ip(由於百度的地址會改變,我們需要實時檢視下百度的ip)
首先就會發起
第一步:使用者端打算斷開連線
第二步:伺服器收到連線釋放報文段(FIN報文)後,就向用戶端傳送ACK應答報文
第三步:伺服器也打算斷開連線,向用戶端傳送連線釋放(FIN)報文段
第四步:使用者端收到來自伺服器的連線釋放(FIN)報文段後,會向伺服器傳送一個ACK應答報文段,以連線釋放(FIN)報文段的確認序號 ack 作為ACK應答報文段的序列號 seq,以連線釋放(FIN)報文段的序列號 seq+1作為確認序號ack。
http的底層本質上還是TCP協定。
話不多說,直接請求百度地址。
這裡百度地址不是www.baidu地址
然後開啟抓包軟體 搜尋tcp
還可以檢視具體資訊
總的來說,WireShark非常強大,不僅可以抓各種包,還能對區域網的某些資料進行監控抓包分析。非常強大。
不過要慎用。