wireshark介紹
今天講一下另一款底層抓包軟件,之前寫過(guò)兩篇抓包軟件
分別是
- fiddler抓包【https://www.cnblogs.com/zichliang/p/16067941.html】
- mitmdump抓包【https://www.cnblogs.com/zichliang/p/16067941.html】
Wireshark (前身 Ethereal) 是一個(gè)網(wǎng)絡(luò)包分析工具該工具主要是用來(lái)捕獲網(wǎng)絡(luò)數(shù)據(jù)包,并自動(dòng)解析數(shù)據(jù)包為用戶顯示數(shù)據(jù)包的詳細(xì)信息,供用戶對(duì)數(shù)據(jù)包進(jìn)行分析
當(dāng)然wireshark更多的偏向于硬件底層多一點(diǎn)。偏向于底層接口抓包。
wireshark可以通過(guò)過(guò)濾器可以篩選出想要分析的內(nèi)容。包括按照協(xié)議過(guò)濾、端口和主機(jī)名過(guò)濾、數(shù)據(jù)包內(nèi)容過(guò)濾。
那常見的協(xié)議過(guò)濾是哪幾種呢?
常見協(xié)議包抓取
- ARP協(xié)議
- ICMP協(xié)議
- TCP協(xié)議
- UDP協(xié)議
- DNS協(xié)議
- HTTP協(xié)議
WireShark應(yīng)用
- 網(wǎng)絡(luò)管理員會(huì)使用wireshark來(lái)檢查網(wǎng)絡(luò)問(wèn)題
- 網(wǎng)絡(luò)安全工程師 使用Wireshark 來(lái)檢查資訊安全相關(guān)問(wèn)題
- 軟件測(cè)試工程師使用wireshark抓包,來(lái)分析自己測(cè)試的軟件
- 開發(fā)人員 使用Wireshark來(lái)為新的通訊協(xié)議除錯(cuò)
- 從事socket編程的工程師會(huì)用wireshark來(lái)調(diào)試
- 普通使用 使用Wireshark 來(lái)學(xué)習(xí)網(wǎng)絡(luò)協(xié)議的相關(guān)知識(shí)
- 還可以抓一些敏感信息....
下載及安裝
Kali Linux系統(tǒng)自帶 Wireshark 工具,而windows 需要手動(dòng)安裝wireshark
下面貼上下載官網(wǎng):
https://www.wireshark.org/download.html
下載完之后一直點(diǎn)下一步安裝即可。
wireshark的界面介紹
首先安裝完了之后,我們打開抓包軟件
可以看到有很多的網(wǎng)絡(luò)接口,那我們應(yīng)該如何選擇呢?
win+r =====> cmd ====> ipconfig
選擇我們現(xiàn)在正在上網(wǎng)的網(wǎng)卡
這里用的wifi 就直接抓wlan這個(gè)網(wǎng)卡了。
直接鼠標(biāo)雙擊點(diǎn)進(jìn)去
可以看到有很多的數(shù)據(jù)包
整體來(lái)說(shuō),界面主要分為以下幾部分:
菜單欄:Wireshark的標(biāo)準(zhǔn)菜單欄。
工具欄:常用功能的快捷圖標(biāo)按鈕,提供快速訪問(wèn)菜單中經(jīng)常用到的項(xiàng)目的功能。
過(guò)濾器:提供處理當(dāng)前顯示過(guò)濾得方法。
Packet List面板:顯示每個(gè)數(shù)據(jù)幀的摘要。這里采用表格的形式列出了當(dāng)前捕獲文件中的所有數(shù)據(jù)包,其中包括了數(shù)據(jù)包序號(hào)、數(shù)據(jù)包捕獲的相對(duì)時(shí)間、數(shù)據(jù)包的源地址和目標(biāo)地址、數(shù)據(jù)包的協(xié)議以及在數(shù)據(jù)包中找到的概況信息等。
Packet Details面板:分析數(shù)據(jù)包的詳細(xì)信息。這個(gè)面板分層次地顯示了一個(gè)數(shù)據(jù)包中的內(nèi)容,并且可以通過(guò)展開或是收縮來(lái)顯示這個(gè)數(shù)據(jù)包中所捕獲的全部?jī)?nèi)容。
Packet Bytes面板:以十六進(jìn)制和ASCII碼的形式顯示數(shù)據(jù)包的內(nèi)容。這里顯 示了一個(gè)數(shù)據(jù)包未經(jīng)處理的原始樣子,也就是在鏈路上傳播時(shí)的樣子。
狀態(tài)欄:包含有專家信息、注釋、包的數(shù)量和Profile。
在此之前了解下抓包的兩種模式。
混雜模式與普通模式
不勾選就是普通模式
那什么是混雜模式 和普通模式呢?
- 混雜模式: 混雜模式就是接收所有經(jīng)過(guò)網(wǎng)卡的數(shù)據(jù)包,包括不是發(fā)給本機(jī)的包,即不驗(yàn)證MAC地址
- 普通模式: 普通模式下網(wǎng)卡只接收發(fā)給本機(jī)的包 (包括廣播包)傳遞給上層程序,其它的包一律丟棄
一般來(lái)說(shuō),混雜模式不會(huì)影響網(wǎng)卡的正常工作,多在網(wǎng)絡(luò)監(jiān)聽工具上使用
菜單欄
文件:打開文件集、保存包、導(dǎo)出HTTP對(duì)象
編輯:清除所有標(biāo)記的包、忽略包和時(shí)間屬性
視圖:查看/隱藏工具欄和面板、編輯Time列、重設(shè)顏色
跳轉(zhuǎn):跳轉(zhuǎn)到某個(gè)設(shè)置好的分組列表
捕獲:用于設(shè)置模式和開始與停止
分析:創(chuàng)建顯示過(guò)濾器宏、查看啟用協(xié)議、保存關(guān)注解碼
統(tǒng)計(jì):創(chuàng)建圖表并打開各種協(xié)議統(tǒng)計(jì)窗口
電話:執(zhí)行所有語(yǔ)音功能(圖表、圖形、回放)
無(wú)線:用于設(shè)置無(wú)線藍(lán)牙等抓包的功能
工具:根據(jù)包內(nèi)容構(gòu)建防火墻規(guī)則、訪問(wèn)Lua腳本工具
幫助:學(xué)習(xí)wireshark全球存儲(chǔ)和個(gè)人配置文件
工具欄
從左至右
- 開始捕獲
- 停止捕獲
- 重新開始當(dāng)前捕獲
- 捕獲選項(xiàng)
- 打開已保存的捕獲文件
- 保存捕獲文件
- 關(guān)閉捕獲文件
- 重載捕獲文件
- 查找一個(gè)分組
- 轉(zhuǎn)到前一個(gè)文組
- 轉(zhuǎn)到后一個(gè)分組
- 轉(zhuǎn)到特定分組
- 轉(zhuǎn)到首個(gè)分組
- 轉(zhuǎn)到最新分組
- 在實(shí)時(shí)捕獲時(shí),自動(dòng)滾動(dòng)屏幕到最新的分組.
- 放大主窗口文本
- 收縮主窗口文本
- 使主窗口文本回歸正常大小
- 調(diào)整分組列表以適應(yīng)內(nèi)容
過(guò)濾器
當(dāng)用戶面向大量需要處理的數(shù)據(jù)時(shí),可以通過(guò)使用顯示過(guò)濾器快速的過(guò)濾自己需要的數(shù)據(jù)。
下文會(huì)詳細(xì)介紹,搜索即可過(guò)濾。
Packet List面板
No. :包的編號(hào) ————————————默認(rèn)wireshark是按照數(shù)據(jù)包編號(hào)從低到高排序,該編號(hào)不會(huì)發(fā)生改變,即使使用了過(guò)濾也同樣如此
Time:包的時(shí)間戳。時(shí)間格式可以自己設(shè)置
Source 和Destination :包的源地址和目的地址
Protocol:包的協(xié)議類型
Length:包的長(zhǎng)度
Info:包的附加信息
右擊還有其他的一些配置
packet details
在數(shù)據(jù)包列表中選擇指定數(shù)據(jù)包,在數(shù)據(jù)包詳細(xì)信息中會(huì)顯示數(shù)據(jù)包的所有詳細(xì)信息內(nèi)容。數(shù)據(jù)包詳細(xì)信息面板是最重要的,用來(lái)查看協(xié)議中的每一個(gè)字段。各行信息分別為
(1)Frame: 物理層的數(shù)據(jù)幀概況
(2)Ethernet II: 數(shù)據(jù)鏈路層以太網(wǎng)幀頭部信息
(3)Internet Protocol Version 4: 互聯(lián)網(wǎng)層IP包頭部信息
.... (這里點(diǎn)點(diǎn)點(diǎn)表示 不同的包所展示的是不同的內(nèi)容)
分層的顯示了一個(gè)數(shù)據(jù)包中的內(nèi)容,并且可以通過(guò)展開或者收縮來(lái)顯示這個(gè)數(shù)據(jù)包中所捕獲的全部?jī)?nèi)容
還可以看到一些詳細(xì)信息。
packet bytes
這個(gè)板塊 分為兩部分 左邊這部分是16進(jìn)制的數(shù)據(jù),右邊是ASCII格式
當(dāng)在packet details面板中選擇任意一個(gè)字段后,在packet bytes面板中包含該字段的字節(jié)也高亮顯示
最底層狀態(tài)欄
分為一些雜項(xiàng)和地址欄。個(gè)人感覺(jué)作用不大。
過(guò)濾器的使用。
剛剛點(diǎn)擊了停止抓包 要是重新開啟抓包點(diǎn)擊左上角這個(gè)按鈕
如果想保存就點(diǎn)擊第一個(gè),一般做測(cè)試都是不保存的。
然后就可以重新開始抓包了。
然后就正式開始過(guò)濾抓包了,我們想抓http相關(guān)的包====> 直接輸入http或者tcp
可能這樣顯得不太直觀。
舉個(gè)三次握手四次揮手的例子。
當(dāng)輸入 tcp.flags.ack == 0
即代表底層握手(鏈接成功)
當(dāng)輸入 tcp.flags.syn == 1
即代表底層握手(數(shù)據(jù)發(fā)送成功)
不懂的可以自己去百度什么是三次握手四次揮手。
所抓到也都是底層鏈接成功和發(fā)送成功的包。
當(dāng)然 命令和命令之間也可以通過(guò)and 或者or來(lái)完成與或非的關(guān)系。
即使講到了鏈接和發(fā)送的命令 再講一下發(fā)送成功結(jié)束的命令tcp.flags.fin==1
其中展示了本機(jī)向此服務(wù)器發(fā)送成功的數(shù)據(jù)包
之前所講到的所有協(xié)議包 都可以在這里過(guò)濾,比如 udp,http,tcp 等等等
IP過(guò)濾
剛剛講了可以通過(guò)協(xié)議過(guò)濾 那我們?cè)僮ト【W(wǎng)站數(shù)據(jù)的時(shí)候能不能通過(guò)IP過(guò)濾呢。
搜下我們本地發(fā)送了那些包ip.src_host==192.168.2.51
可以清楚的看到source來(lái)源就都是我們的主機(jī)了
搜下目標(biāo)地址是百度的包 百度的IP地址是180.101.50.188ip.dst_host == 180.101.50.188
還有一個(gè)命令 ip.addr 代表著 只有IP是xxx 就全部顯現(xiàn)出來(lái),不管是接收 還是發(fā)送
wireshark解析ARP協(xié)議
在了解使用wireshark分析arp協(xié)議之前,我們先來(lái)了解下,什么是是arp協(xié)議?
通俗點(diǎn)說(shuō),在局域網(wǎng)中通信時(shí)使用的是MAC地址,而不是常見的IP地址。
所以在局域網(wǎng)的兩臺(tái)主機(jī)間通信時(shí),必須要知道對(duì)方的MAC地址,這就是ARP協(xié)議要做的事:將IP地址轉(zhuǎn)換為MAC地址。
光看這個(gè)講arp可能太籠統(tǒng)了,我們肯定之前聽過(guò)一個(gè)名稱——arp欺騙,那什么是arp欺騙呢?
ARP攻擊就是通過(guò)偽造IP地址和MAC地址實(shí)現(xiàn)ARP欺騙,能夠在網(wǎng)絡(luò)中產(chǎn)生大量的ARP通信量,
攻擊者只要持續(xù)不斷的發(fā)出偽造的ARP響應(yīng)包就能更改目標(biāo)主機(jī)ARP緩存中的IP-MAC條目,造成網(wǎng)絡(luò)中斷或中間人攻擊。
當(dāng)局域網(wǎng)中一臺(tái)機(jī)器,反復(fù)向其他機(jī)器,特別是向網(wǎng)關(guān),發(fā)送這樣無(wú)效假冒的ARP應(yīng)答信息包時(shí),嚴(yán)重的網(wǎng)絡(luò)堵塞就會(huì)開始。
由于網(wǎng)關(guān)MAC地址錯(cuò)誤,所以從網(wǎng)絡(luò)中計(jì)算機(jī)發(fā)來(lái)的數(shù)據(jù)無(wú)法正常發(fā)到網(wǎng)關(guān),自然無(wú)法正常上網(wǎng)。這就造成了無(wú)法訪問(wèn)外網(wǎng)的問(wèn)題,
由于很多時(shí)候網(wǎng)關(guān)還控制著我們的局域網(wǎng)LAN上網(wǎng),所以這時(shí)我們的LAN訪問(wèn)也就出現(xiàn)問(wèn)題了
這里也介紹完了
我們先來(lái)抓下arp的包 ,直接在過(guò)濾器中搜索ARP,并且隨意打開一個(gè)包
- Hardware type(網(wǎng)卡類型):以太網(wǎng)(Ethernet)是1。我們常見的網(wǎng)絡(luò)都是以太網(wǎng)
- Protocol type:查詢中提供的網(wǎng)絡(luò)地址的類型,IPv4是0x0800。
- Harware size:網(wǎng)卡地址長(zhǎng)度,以太網(wǎng)網(wǎng)卡是6字節(jié)。
- Protocol size:查詢中提供的網(wǎng)絡(luò)地址的的長(zhǎng)度,IPv4是4字節(jié)。
- Opcode:查詢包值為1,響應(yīng)包值為2。
- Sender MAC address:發(fā)送者的Mac地址。
- Sender IP address:發(fā)送者的IP地址。
- Target MAC address:接收者的Mac地址,指向性查詢包是MAC地址表中記錄的mac,廣播性查詢包是00:00:00:00:00:00。(注意區(qū)分ARP頭和Eth頭,指向性查詢包Eth頭的dst mac是MAC地址表中記錄的mac,而廣播性查詢包是ff:ff:ff:ff:ff:ff)。
- Target protocol address:要查詢目標(biāo)的mac地址的ip。
再來(lái)看一下回復(fù)包
故: 由一個(gè)request 和一個(gè)reply 組成的一組arp包,有請(qǐng)求有回復(fù)組成的arp響應(yīng)。
WireShark解析ICMP協(xié)議
使用Ping命令用來(lái)測(cè)試網(wǎng)絡(luò)的可達(dá)性。從而接受ICMP的報(bào)文包
首先我們ping下自己的網(wǎng)關(guān)
然后找下wireshark中剛剛抓到的包
重點(diǎn)看下ICMP里面的內(nèi)容
type:報(bào)文類型,8代表請(qǐng)求,0代表應(yīng)答;
code:為0,表示為回顯應(yīng)答成功;
checksum:表示認(rèn)證這個(gè)ICMP報(bào)文是否被篡改過(guò)。校驗(yàn)完整性。
checksum Status: 表示校驗(yàn)的結(jié)果,Good代表沒(méi)問(wèn)題。
identifier:表示標(biāo)識(shí)符ID
Sequence Number: 表示序列號(hào)
Data: 具體發(fā)送到數(shù)據(jù)包,當(dāng)然肯定是通過(guò)加密的。
這是請(qǐng)求數(shù)據(jù),還有一組回復(fù)數(shù)據(jù)
可以看到。標(biāo)示符和序列號(hào)都是一樣的
wireshark 解析TCP協(xié)議
即兩臺(tái)電腦或者是兩臺(tái)機(jī)器之間的相互鏈接>>>中間會(huì)經(jīng)歷一個(gè)三次握手 四次揮手的過(guò)程。
TCP 三次握手
如下圖所示是示意圖>>>
我們隨意打開一個(gè)網(wǎng)頁(yè):百度 IP是180.101.50.188
如上圖所示 有syn的tcp鏈接包
然后我們來(lái)看下TCP協(xié)議的具體的內(nèi)容
封包信息:
- Frame: 物理層的數(shù)據(jù)幀概況
- Ethernet II: 數(shù)據(jù)鏈路層以太網(wǎng)幀頭部信息
- Internet Protocol Version 4: 網(wǎng)絡(luò)層IP包頭部信息
- Transmission Control Protocol: 傳輸層TCP數(shù)據(jù)段頭部信息
傳輸層TCP數(shù)據(jù)段信息
- 源端口:source Port: 44922
- 目的端口:Destination Port: 19999
- 序號(hào):sequence Number: o
- 確認(rèn)號(hào):Acknowledgment number: o
- 報(bào)頭長(zhǎng)度:Header Length: 4o bytes
- 標(biāo)志位:Flags: ox002 (SYN)
- 校驗(yàn)和:Checksum: oxac81
當(dāng)然這么看肯定不太直觀,還要結(jié)合這回復(fù)包去看每一條信息。所以我們可以打開流數(shù)據(jù)包來(lái)查看tcp協(xié)議報(bào)文
選擇限制顯示過(guò)濾器 選擇百度的地址
這樣看起來(lái)就非常的直觀了。
TCP斷開鏈接 四次揮手
既然有鏈接,肯定就有斷開鏈接 天下無(wú)不散之筵席嘛,不可能一直互相連接的。
而斷開鏈接則有另一個(gè)名詞—— 四次揮手
和三次握手一樣,我們直接關(guān)閉百度這個(gè)網(wǎng)站,
然后去wireshark中搜索180.101.50.242這個(gè)ip(由于百度的地址會(huì)改變,我們需要實(shí)時(shí)查看下百度的ip)
首先就會(huì)發(fā)起
第一步:客戶端打算斷開連接
第二步:服務(wù)器收到連接釋放報(bào)文段(FIN報(bào)文)后,就向客戶端發(fā)送ACK應(yīng)答報(bào)文
第三步:服務(wù)器也打算斷開連接,向客戶端發(fā)送連接釋放(FIN)報(bào)文段
第四步:客戶端收到來(lái)自服務(wù)器的連接釋放(FIN)報(bào)文段后,會(huì)向服務(wù)器發(fā)送一個(gè)ACK應(yīng)答報(bào)文段,以連接釋放(FIN)報(bào)文段的確認(rèn)序號(hào) ack 作為ACK應(yīng)答報(bào)文段的序列號(hào) seq,以連接釋放(FIN)報(bào)文段的序列號(hào) seq+1作為確認(rèn)序號(hào)ack。
wireShark 解析HTTP協(xié)議
http的底層本質(zhì)上還是TCP協(xié)議。
話不多說(shuō),直接請(qǐng)求百度地址。
這里百度地址不是www.baidu地址
然后打開抓包軟件 搜索tcp
還可以查看具體信息文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-481112.html
總結(jié)
總的來(lái)說(shuō),WireShark非常強(qiáng)大,不僅可以抓各種包,還能對(duì)局域網(wǎng)的某些數(shù)據(jù)進(jìn)行監(jiān)控抓包分析。非常強(qiáng)大。
不過(guò)要慎用。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-481112.html
到了這里,關(guān)于【保姆級(jí)教學(xué)】抓包工具Wireshark使用教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!