Wireshark是一款功能非常強(qiáng)大的抓包工具,軟件擁有強(qiáng)大的網(wǎng)絡(luò)捕獲和解碼技術(shù),可以幫助我們一鍵輕松擷取網(wǎng)絡(luò)封包。我們可以通過(guò)Wireshark來(lái)對(duì)網(wǎng)絡(luò)傳輸發(fā)送與接收的數(shù)據(jù)包進(jìn)行截獲、重發(fā)、編輯、轉(zhuǎn)存等操作,方便網(wǎng)絡(luò)管理人員用來(lái)診斷網(wǎng)絡(luò)問(wèn)題和檢測(cè)安全漏洞,有需要的朋友趕緊來(lái)KK下載站下載使用吧!

Wireshark功能介紹
確定 Wireshark 的位置
如果沒(méi)有一個(gè)正確的位置,啟動(dòng)Wireshark后會(huì)花費(fèi)很長(zhǎng)的時(shí)間捕獲一些與自己無(wú)關(guān)的數(shù)據(jù)。
選擇捕獲接口
一般都是選擇連接到Internet網(wǎng)絡(luò)的接口,這樣才可以捕獲到與網(wǎng)絡(luò)相關(guān)的數(shù)據(jù)。否則,捕獲到的其它數(shù)據(jù)對(duì)自己也沒(méi)有任何幫助。
使用捕獲過(guò)濾器
通過(guò)設(shè)置捕獲過(guò)濾器,可以避免產(chǎn)生過(guò)大的捕獲文件。這樣用戶(hù)在分析數(shù)據(jù)時(shí),也不會(huì)受其它數(shù)據(jù)干擾。而且,還可以為用戶(hù)節(jié)約大量的時(shí)間。
使用顯示過(guò)濾器
通常使用捕獲過(guò)濾器過(guò)濾后的數(shù)據(jù),往往還是很復(fù)雜。為了使過(guò)濾的數(shù)據(jù)包再更細(xì)致,此時(shí)使用顯示過(guò)濾器進(jìn)行過(guò)濾。
使用著色規(guī)則
通常使用顯示過(guò)濾器過(guò)濾后的數(shù)據(jù),都是有用的數(shù)據(jù)包。如果想更加突出的顯示某個(gè)會(huì)話(huà),可以使用著色規(guī)則高亮顯示。
構(gòu)建圖表
如果用戶(hù)想要更明顯的看出一個(gè)網(wǎng)絡(luò)中數(shù)據(jù)的變化情況,使用圖表的形式可以很方便的展現(xiàn)數(shù)據(jù)分布情況。
重組數(shù)據(jù)
Wireshark的重組功能,可以重組一個(gè)會(huì)話(huà)中不同數(shù)據(jù)包的信息,或者是一個(gè)重組一個(gè)完整的圖片或文件。由于傳輸?shù)奈募^大,所以信息分布在多個(gè)數(shù)據(jù)包中。為了能夠查看到整個(gè)圖片或文件,這時(shí)候就需要使用重組數(shù)據(jù)的方法來(lái)實(shí)現(xiàn)。
Wireshark軟件特色
1、支持的操作系統(tǒng)
軟件對(duì)主流的操作系統(tǒng)都提供了支持,其中包括Windows、MacOSX以及基于Linux的系統(tǒng)。
2、使用捕獲過(guò)濾器
通過(guò)設(shè)置捕獲過(guò)濾器,可以避免產(chǎn)生過(guò)大的捕獲文件。這樣用戶(hù)在分析數(shù)據(jù)時(shí),也不會(huì)受其它數(shù)據(jù)干擾。而且,還可以為用戶(hù)節(jié)約大量的時(shí)間。
3、選擇捕獲接口
一般都是選擇連接到Internet網(wǎng)絡(luò)的接口,這樣才可以捕獲到與網(wǎng)絡(luò)相關(guān)的數(shù)據(jù)。否則,捕獲到的其它數(shù)據(jù)對(duì)自己也沒(méi)有任何幫助。
4、重組數(shù)據(jù)
Wireshark的重組功能,可以重組一個(gè)會(huì)話(huà)中不同數(shù)據(jù)包的信息,或者是一個(gè)重組一個(gè)完整的圖片或文件。由于傳輸?shù)奈募^大,所以信息分布在多個(gè)數(shù)據(jù)包中。為了能夠查看到整個(gè)圖片或文件,這時(shí)候就需要使用重組數(shù)據(jù)的方法來(lái)實(shí)現(xiàn)。
5、免費(fèi)
由于軟件是開(kāi)源的,它在價(jià)格上面是無(wú)以匹敵的,軟件是遵循GPL協(xié)議發(fā)布的自由軟件,任何人無(wú)論出于私人還是商業(yè)目的,都可以下載并且使用。
6、用戶(hù)友好度
軟件的界面是數(shù)據(jù)包嗅探工具中最容易理解的工具之一。基于GUI,并提供了清晰的菜單欄和簡(jiǎn)明的布局

Wireshark使用說(shuō)明
1、功能
wireshark能獲取HTTP,也能獲取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的內(nèi)容,總結(jié),如果是處理HTTP,HTTPS 還是用Fiddler, 其他協(xié)議比如TCP,UDP 就用wireshark.
2、選擇網(wǎng)卡
wireshark是捕獲機(jī)器上的某一塊網(wǎng)卡的網(wǎng)絡(luò)包,當(dāng)你的機(jī)器上有多塊網(wǎng)卡的時(shí)候,你需要選擇一個(gè)網(wǎng)卡。

3、窗口介紹:
WireShark 主要分為這幾個(gè)界面
3.1 Display Filter(顯示過(guò)濾器), 用于過(guò)濾
3.2 Packet List Pane(封包列表), 顯示捕獲到的封包, 有源地址和目標(biāo)地址,端口號(hào)。 顏色不同,代表不同的類(lèi)型
3.3 Packet Details Pane(封包詳細(xì)信息), 顯示封包中的字段
3.4 Dissector Pane(16進(jìn)制數(shù)據(jù))
3.5 Miscellanous(地址欄,雜項(xiàng))

如何捕獲數(shù)據(jù)包

4、過(guò)濾器
使用過(guò)濾是非常重要的, 初學(xué)者使用wireshark時(shí),將會(huì)得到大量的冗余信息,在幾千甚至幾萬(wàn)條記錄中,以至于很難找到自己需要的部分。搞得暈頭轉(zhuǎn)向。過(guò)濾器會(huì)幫助我們?cè)诖罅康臄?shù)據(jù)中迅速找到我們需要的信息。
4.1 過(guò)濾器有兩種,一種是顯示過(guò)濾器,就是主界面上那個(gè),用來(lái)在捕獲的記錄中找到所需要的記錄,一種是捕獲過(guò)濾器,用來(lái)過(guò)濾捕獲的封包,以免捕獲太多的記錄。在Capture -> Capture Filters 中設(shè)置,保存過(guò)濾。
4.2 新建過(guò)濾器,在Filter欄上,填好Filter的表達(dá)式后,點(diǎn)擊Save按鈕, 取個(gè)名字。比如"Filter 10",
4.3 過(guò)濾表達(dá)式的規(guī)則
4.3.1 協(xié)議過(guò)濾
比如TCP,只顯示TCP協(xié)議。
4.3.2 IP 過(guò)濾
比如 ip.src =192.168.1.102 顯示源地址為192.168.1.102,
ip.dst=192.168.1.102, 目標(biāo)地址為192.168.1.102
4.3.3 端口過(guò)濾
tcp.port =80, 端口為80的
tcp.srcport = 80, 只顯示TCP協(xié)議的愿端口為80的。
4.3.4 Http模式過(guò)濾
http.request.method==“GET”, 只顯示HTTP GET方法的。
4.3.5 邏輯運(yùn)算符為 AND/ OR

5、捕獲結(jié)果分析
5.1 著色規(guī)則
在菜單“視圖-著色規(guī)則”下查看

5.2 數(shù)據(jù)包結(jié)構(gòu)
第一行:數(shù)據(jù)包整體概述,
第二行:鏈路層詳細(xì)信息,主要的是雙方的mac地址。
第三行:網(wǎng)絡(luò)層詳細(xì)信息,主要的是雙方的IP地址。
第四行:傳輸層的詳細(xì)信息,主要的是雙方的端口號(hào)。

5.3 tcp數(shù)據(jù)包
標(biāo)志位對(duì)應(yīng)的功能:
URG:緊急指針( urgent pointer)有效。
ACK:確認(rèn)序號(hào)有效。
PSH:接收方應(yīng)該盡快將這個(gè)報(bào)文段交給應(yīng)用層。
RST:重建連接。
SYN:同步序號(hào)用來(lái)發(fā)起一個(gè)連接。
FIN:發(fā)端完成發(fā)送任務(wù)。
窗口大小:用于流量控制。
檢驗(yàn)和:檢驗(yàn)和覆蓋了整個(gè)的 TCP報(bào)文段: TCP首部和TCP數(shù)據(jù),與udp相似需要計(jì)算偽首部。

tcp數(shù)據(jù)包結(jié)構(gòu)及在wireshark中的位置

6、Tcp三次握手分析
客戶(hù)端->服務(wù)器:發(fā)送標(biāo)識(shí)為SYN=1、隨機(jī)產(chǎn)生的客戶(hù)端序號(hào)seq(發(fā)送序號(hào))
服務(wù)器->客戶(hù)端:發(fā)送標(biāo)識(shí)為SYN=1、ACK=1、第一步產(chǎn)生的客戶(hù)端序號(hào)seq+1(確認(rèn)序號(hào))、隨機(jī)產(chǎn)生的服務(wù)端序號(hào)seq
客戶(hù)端->服務(wù)器:第一步產(chǎn)生的客戶(hù)端序號(hào)seq+1(發(fā)送序號(hào))、第二步產(chǎn)生的服務(wù)端序號(hào)seq+1(確認(rèn)序號(hào))、ACK=1

三次數(shù)據(jù)包
其中[SYN]意為SYN位為1(如果沒(méi)有,則表示為0)。同理如果[]中有ACK,表示ACK位為1

6.1 第一次握手?jǐn)?shù)據(jù)包
客戶(hù)端發(fā)送一個(gè)TCP,標(biāo)志位為SYN,序列號(hào)為0, 代表客戶(hù)端請(qǐng)求建立連接。 如下圖

6.2 第二次握手的數(shù)據(jù)包
服務(wù)器發(fā)回確認(rèn)包, 標(biāo)志位為 SYN,ACK. 將確認(rèn)序號(hào)(Acknowledgement Number)設(shè)置為客戶(hù)的I S N加1以.即0+1=1, 如下圖

6.3 第三次握手的數(shù)據(jù)包
客戶(hù)端再次發(fā)送確認(rèn)包(ACK) SYN標(biāo)志位為0,ACK標(biāo)志位為1.并且把服務(wù)器發(fā)來(lái)ACK的序號(hào)字段+1,放在確定字段中發(fā)送給對(duì)方.并且在數(shù)據(jù)段放寫(xiě)ISN的+1, 如下圖:

就這樣通過(guò)了TCP三次握手,建立了連接
過(guò)濾命令
1、過(guò)濾源ip、目的ip
在wireshark的過(guò)濾規(guī)則框Filter中輸入過(guò)濾條件。如查找目的地址為192.168.101.8的包,ip.dst==192.168.101.8;查找源地址為ip.src==1.1.1.1
2、端口過(guò)濾
如過(guò)濾80端口,在Filter中輸入,tcp.port==80,這條規(guī)則是把源端口和目的端口為80的都過(guò)濾出來(lái)。使用tcp.dstport==80只過(guò)濾目的端口為80的,tcp.srcport==80只過(guò)濾源端口為80的包
3、協(xié)議過(guò)濾
直接在Filter框中直接輸入?yún)f(xié)議名即可,如過(guò)濾HTTP的協(xié)議
4、http模式過(guò)濾
如過(guò)濾get包,http.request.method=="GET",過(guò)濾post包,http.request.method=="POST"
5、連接符and的使用
過(guò)濾兩種條件時(shí),使用and連接,如過(guò)濾ip為192.168.101.8并且為http協(xié)議的,ip.src==192.168.101.8 and http