Wireshark簡介
Wireshark(前稱Ethereal)是一個免費(fèi)開源的網(wǎng)絡(luò)數(shù)據(jù)包分析軟件匕得。網(wǎng)絡(luò)數(shù)據(jù)包分析軟件的功能是截取網(wǎng)絡(luò)數(shù)據(jù)包陆赋,并盡可能顯示出最為詳細(xì)的網(wǎng)絡(luò)數(shù)據(jù)包數(shù)據(jù)轧膘。Wireshark是目前全世界最廣泛的網(wǎng)絡(luò)數(shù)據(jù)包分析軟件之一败富。
官網(wǎng)地址
https://www.wireshark.org/
Wireshark使用目的
以下是一些使用Wireshark目的的例子:
網(wǎng)絡(luò)管理員使用Wireshark來檢測網(wǎng)絡(luò)問題
網(wǎng)絡(luò)安全工程師使用Wireshark來檢查信息安全相關(guān)問題
開發(fā)者使用Wireshark來為新的通信協(xié)議除錯
普通用戶使用Wireshark來學(xué)習(xí)網(wǎng)絡(luò)協(xié)議的相關(guān)知識
使用方法
用一些過濾參數(shù)可以抓到你想要的包讥此,過濾器語法請參考 man pcap-filter(7).
過濾 TCP 包
只想看到 TCP 數(shù)據(jù)包拢锹,在 "Filter" 攔輸入 tcp。
過濾 UDP 包
只想看到 UDP 數(shù)據(jù)包萄喳,在 "Filter" 攔輸入 udp卒稳。
過濾指定 IP 地址的包
將 1.2.3.4 替換為要查看的 IP 地址。
只想查看發(fā)到某個特定地址的數(shù)據(jù)包他巨,輸入 ip.dst == 1.2.3.4充坑。
只想查看從某個特定地址發(fā)出的數(shù)據(jù)包,輸入 ip.src == 1.2.3.4闻蛀。
要查看某個特定地址的所有數(shù)據(jù)包匪傍,輸入 ip.addr == 1.2.3.4您市。
端口過濾
tcp.port ==80, 端口為80的
tcp.srcport == 80, 只顯示TCP協(xié)議的源端口為80的觉痛。
Http模式過濾
http.request.method=="GET", 只顯示HTTP GET方法的。
窗口介紹
封包信息介紹
這個面板是我們最重要的茵休,用來查看協(xié)議中的每一個字段薪棒。
各行信息分別為
Frame: 物理層的數(shù)據(jù)幀概況
Ethernet II: 數(shù)據(jù)鏈路層以太網(wǎng)幀頭部信息
Internet Protocol Version 4: 互聯(lián)網(wǎng)層IP包頭部信息
Transmission Control Protocol: 傳輸層T的數(shù)據(jù)段頭部信息,此處是TCP
Hypertext Transfer Protocol: 應(yīng)用層的信息榕莺,此處是HTTP協(xié)議
對應(yīng)OSI七層模型
Tcp包的具體內(nèi)容
實例分析三次握手
三次握手過程為
打開wireshark, 打開瀏覽器輸入 http://blkid.cn
在wireshark中輸入http過濾俐芯, 然后選中GET /tank HTTP/1.1的那條記錄,右鍵然后點擊"Follow TCP Stream",
這樣做的目的是為了得到與瀏覽器打開網(wǎng)站相關(guān)的數(shù)據(jù)包钉鸯,將得到如下圖
圖中可以看到wireshark截獲到了三次握手的三個數(shù)據(jù)包吧史。第四個包才是HTTP的, 這說明HTTP的確是使用TCP建立連接的唠雕。
第一次握手?jǐn)?shù)據(jù)包
客戶端發(fā)送一個TCP贸营,標(biāo)志位為SYN吨述,序列號為0, 代表客戶端請求建立連接钞脂。 如下圖
第二次握手的數(shù)據(jù)包
服務(wù)器發(fā)回確認(rèn)包, 標(biāo)志位為 SYN,ACK. 將確認(rèn)序號(Acknowledgement Number)設(shè)置為客戶的I S N加1以.即0+1=1, 如下圖
第三次握手的數(shù)據(jù)包
客戶端再次發(fā)送確認(rèn)包(ACK) SYN標(biāo)志位為0,ACK標(biāo)志位為1.并且把服務(wù)器發(fā)來ACK的序號字段+1,放在確定字段中發(fā)送給對方.并且在數(shù)據(jù)段放寫ISN的+1, 如下圖: