wireshar入門

簡介

Wireshark(前身 Ethereal)是一個網(wǎng)絡(luò)包分析工具。該工具主要是用來捕獲網(wǎng)絡(luò)數(shù)據(jù)包,并自動解析數(shù)據(jù)包,為用戶顯示數(shù)據(jù)包的詳細信息,供用戶對數(shù)據(jù)包進行分析

安裝

軟件下載路徑:wireshark官網(wǎng) 按照系統(tǒng)版本選擇下載,下載完成后,按照軟件提示一路Next安裝
如果是Windows系統(tǒng),安裝完成后,需要下載pcap兼容性安裝包。下載路徑:pcap兼容性安裝包

抓包示例
  • 主界面


    image-37.png
  • 選擇菜單欄上捕獲 -> 設(shè)置,勾選網(wǎng)卡(這里需要根據(jù)各自電腦網(wǎng)卡使用情況選擇,最簡單的辦法可以看使用的IP對應(yīng)的網(wǎng)卡)。點擊Start,啟動抓包


    image-38.png
  • wireshark啟動后,wireshark處于抓包狀態(tài)中


    image-40.png
  • 執(zhí)行需要抓包的操作,如在終端或者cmd窗口下執(zhí)行ping www.baidu.com
  • 操作完成后相關(guān)數(shù)據(jù)包就抓取到了。為避免其他無用的數(shù)據(jù)包影響分析,可以通過在過濾欄設(shè)置過濾條件進行數(shù)據(jù)包列表過濾,獲取結(jié)果如下。說明:ip.addr == 192.168.127.130 and icmp 表示只顯示ICPM協(xié)議且源主機IP或者目的主機IP為192.168.127.130的數(shù)據(jù)包。說明:協(xié)議名稱icmp要小寫


    image-41.png

整個抓包過程到此就介紹了,剩下的是顯示過濾條件、抓包過濾條件、以及如何查看數(shù)據(jù)包中的詳細內(nèi)容

抓包界面介紹
image-42.png

說明:數(shù)據(jù)包列表區(qū)中不同的協(xié)議使用了不同的顏色區(qū)分。協(xié)議顏色標(biāo)識定位在視圖 -> 著色規(guī)則


image-43.png
  • 顯示過濾器:用于設(shè)置過濾條件進行數(shù)據(jù)包列表過濾


    image-44.png
  • 數(shù)據(jù)包列表:顯示捕獲到的數(shù)據(jù)包,每個數(shù)據(jù)包包含編號,時間戳,源地址,目標(biāo)地址,協(xié)議,長度,以及數(shù)據(jù)包信息。 不同協(xié)議的數(shù)據(jù)包使用了不同的顏色區(qū)分顯示


    image-45.png
  • 數(shù)據(jù)包詳細信息:在數(shù)據(jù)包列表中選擇指定數(shù)據(jù)包,在數(shù)據(jù)包詳細信息中會顯示數(shù)據(jù)包的所有詳細信息內(nèi)容。數(shù)據(jù)包詳細信息面板是最重要的,用來查看協(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é)議


    image-8.png
常見用顯示過濾需求及其對應(yīng)表達式

數(shù)據(jù)鏈路層

  1. 篩選mac地址為04:f9:38:ad:13:26的數(shù)據(jù)包—-eth.src == 04:f9:38:ad:13:26
  2. 篩選源mac地址為04:f9:38:ad:13:26的數(shù)據(jù)包—-eth.src == 04:f9:38:ad:13:26
    網(wǎng)絡(luò)層
  3. 篩選ip地址為192.168.1.1的數(shù)據(jù)包—-ip.addr == 192.168.127.130
  4. 篩選192.168.1.0網(wǎng)段的數(shù)據(jù)—- ip contains “192.168.127.130”
  5. 篩選192.168.1.1和192.168.1.2之間的數(shù)據(jù)包—-ip.addr == 192.168.127.130 && ip.addr == 192.168.127.130
  6. 篩選從192.168.1.1到192.168.1.2的數(shù)據(jù)包—-ip.src == 192.168.127.130 && ip.dst == 192.168.127.130
    傳輸層
  7. 篩選tcp協(xié)議的數(shù)據(jù)包—-tcp
  8. 篩選除tcp協(xié)議以外的數(shù)據(jù)包—-!tcp
  9. 篩選端口為80的數(shù)據(jù)包—-tcp.port == 80
  10. 篩選12345端口和80端口之間的數(shù)據(jù)包—-tcp.port == 12345 && tcp.port == 80
  11. 篩選從12345端口到80端口的數(shù)據(jù)包—-tcp.srcport == 12345 && tcp.dstport == 80
    應(yīng)用層
  12. http中http.request表示請求頭中的第一行(如GET index.jsp HTTP/1.1),http.response表示響應(yīng)頭中的第一行(如HTTP/1.1 200 OK),其他頭部都用http.header_name形式
  13. 篩選url中包含.php的http數(shù)據(jù)包—-http.request.uri contains “.php”
  14. 篩選內(nèi)容包含username的http數(shù)據(jù)包—-http contains “username”
wireshark過濾器設(shè)置

wireshark抓包將會得到大量的冗余數(shù)據(jù)包列表,以至于很難找到自己需要抓取的數(shù)據(jù)包部分。wireshark工具中自帶了兩種類型的過濾器,學(xué)會使用這兩種過濾器會幫助我們在大量的數(shù)據(jù)中迅速找到我們需要的信息

抓包過濾器

捕獲過濾器的菜單欄路徑為捕獲 -> 捕獲過濾器。用于在抓取數(shù)據(jù)包前設(shè)置


image-47.png

比如可以在抓取數(shù)據(jù)包前設(shè)置ip host 172.17.0.1 and tcp(只捕獲主機IP為172.17.0.1的TCP數(shù)據(jù)包)


image-52.png

結(jié)果
image-49.png
顯示過濾器

顯示過濾器是用于在抓取數(shù)據(jù)包后設(shè)置過濾條件進行過濾數(shù)據(jù)包。通常是在抓取數(shù)據(jù)包時設(shè)置條件相對寬泛或者沒有設(shè)置導(dǎo)致抓取的數(shù)據(jù)包內(nèi)容較多時使用顯示過濾器設(shè)置條件過濾以方便分析。同樣上述場景,在捕獲時未設(shè)置抓包過濾規(guī)則直接通過網(wǎng)卡進行抓取所有數(shù)據(jù)包


image-54.png

ping www.baidu.com獲取的數(shù)據(jù)包列表如下

image-53.png

觀察上述獲取的數(shù)據(jù)包列表,含有大量的無效數(shù)據(jù)。這時可以通過設(shè)置顯示器過濾條件進行提取分析信息。ip.addr == 192.168.127.130 and icmp進行過濾


image-55.png
wireshark過濾器表達式的規(guī)則

抓包過濾器語法:抓包過濾器類型Type(host、net、port)、方向Dir(src、dst)、協(xié)議Proto(ether、ip、tcp、udp、http、icmp、ftp等)、邏輯運算符(&& 與、|| 或、!非)

協(xié)議過濾

直接在抓包過濾框中直接輸入?yún)f(xié)議名即可

  • tcp:只顯示TCP協(xié)議的數(shù)據(jù)包列表
  • http:只查看HTTP協(xié)議的數(shù)據(jù)包列表
  • icmp:只顯示ICMP協(xié)議的數(shù)據(jù)包列表
IP過濾
  • host 192.168.127.130
  • src host 192.168.127.130
  • dst host 192.168.127.130
端口過濾
  • port 80
  • src port 80
  • dst port 80
邏輯運算符

&& 與、|| 或、!非

  • src host 192.168.127.130 && dst port 80 抓取主機地址為192.168.127.130、目的端口為80的數(shù)據(jù)包
  • host 192.168.127.130 || host 192.168.127.102 抓取主機為192.168.127.130或者192.168.127.102的數(shù)據(jù)包
  • !broadcast 不抓取廣播數(shù)據(jù)包
顯示過濾器語法
  • 比較操作符:== 等于、!= 不等于、> 大于、< 小于、>= 大于等于、<=小于等于
  • 協(xié)議過濾:直接在過濾欄中直接輸入?yún)f(xié)議名即可。注意:協(xié)議名稱需要輸入小寫
    • tcp,只顯示TCP協(xié)議的數(shù)據(jù)包列表
    • http,只查看HTTP協(xié)議的數(shù)據(jù)包列表
    • icmp,只顯示ICMP協(xié)議的數(shù)據(jù)包列表
  • ip過濾
    • ip.src ==192.168.127.130 顯示源地址為192.168.127.130的數(shù)據(jù)包列表
    • ip.dst==192.168.127.130, 顯示目標(biāo)地址為192.168.127.130的數(shù)據(jù)包列表
    • ip.addr == 192.168.127.130 顯示源IP地址或目標(biāo)IP地址為192.168.127.130的數(shù)據(jù)包列表
  • 端口過濾
    • tcp.port ==80, 顯示源主機或者目的主機端口為80的數(shù)據(jù)包列表
    • tcp.srcport == 80, 只顯示TCP協(xié)議的源主機端口為80的數(shù)據(jù)包列表
    • tcp.dstport == 80,只顯示TCP協(xié)議的目的主機端口為80的數(shù)據(jù)包列表
  • Http模式過濾:http.request.method==”GET”, 只顯示HTTP GET方法的
  • 邏輯運算符為 and/or/not:過濾多個條件組合時,使用and/or。比如獲取IP地址為192.168.1.104的ICMP數(shù)據(jù)包表達式為ip.addr == 192.168.127.130 and icmp
  • 數(shù)據(jù)包內(nèi)容過濾
    假設(shè)我要以IMCP層中的內(nèi)容進行過濾,可以單擊選中界面中的碼流,在下方進行選中數(shù)據(jù)


    image-57.png

    右鍵點擊后出現(xiàn)以下畫面


    image-61.png

    選中后過濾器上顯示如下
    image-62.png

    后面條件表達式就需要自己填寫。濾data數(shù)據(jù)包中包含”abcd”內(nèi)容的數(shù)據(jù)流。包含的關(guān)鍵詞是contains 后面跟上內(nèi)容
    image-63.png
Wireshark抓包分析TCP三次握手
TCP三次握手連接建立過程
  1. 客戶端發(fā)送一個SYN=1,ACK=0標(biāo)志的數(shù)據(jù)包給服務(wù)端,請求進行連接,這是第一次握手
  2. 服務(wù)端收到請求并且允許連接的話,就會發(fā)送一個SYN=1,ACK=1標(biāo)志的數(shù)據(jù)包給發(fā)送端,告訴它,可以通訊了,并且讓客戶端發(fā)送一個確認數(shù)據(jù)包,這是第二次握手
  3. 服務(wù)端發(fā)送一個SYN=0,ACK=1的數(shù)據(jù)包給客戶端端,告訴它連接已被確認,這就是第三次握手。TCP連接建立,開始通訊


    image-64.png
wireshark抓包獲取訪問指定服務(wù)端數(shù)據(jù)包
  • 啟動wireshark抓包,打開終端ping www.baidu.com并獲得IP地址
  • 輸入過濾條件獲取待分析數(shù)據(jù)包列表 ip.addr == 180.101.49.12


    image-65.png

    圖中可以看到wireshark截獲到了三次握手的三個數(shù)據(jù)包。第四個包是TLS的, 這說明TLS的確是使用TCP建立連接的

第一次握手?jǐn)?shù)據(jù)包

客戶端發(fā)送一個TCP,標(biāo)志位為SYN,序列號為0, 代表客戶端請求建立連接


image-66.png

image-67.png

數(shù)據(jù)包的關(guān)鍵屬性

  1. SYN :標(biāo)志位,表示請求建立連接
  2. Seq = 0 :初始建立連接值為0,數(shù)據(jù)包的相對序列號從0開始,表示當(dāng)前還沒有發(fā)送數(shù)據(jù)
  3. Ack =0:初始建立連接值為0,已經(jīng)收到包的數(shù)量,表示當(dāng)前沒有接收到數(shù)據(jù)
第二次握手的數(shù)據(jù)包

服務(wù)器發(fā)回確認包, 標(biāo)志位為 SYN,ACK. 將確認序號(Acknowledgement Number)設(shè)置為客戶的ISN加1以.即0+1=1


image-68.png

數(shù)據(jù)包的關(guān)鍵屬性

  1. [SYN+ACk]:標(biāo)志位,同意建立連接,并回送SYN+ACk
  2. Seq = 0:初始建立值為0,表示當(dāng)前還沒有發(fā)送數(shù)據(jù)
  3. Ack = 1:表示當(dāng)前端成功接收的數(shù)據(jù)位數(shù),雖然客戶端沒有發(fā)送任何有效數(shù)據(jù),確認號還是被加1,因為包含SYN或FIN標(biāo)志位。(并不會對有效數(shù)據(jù)的計數(shù)產(chǎn)生影響,因為含有SYN或FIN標(biāo)志位的包并不攜帶有效數(shù)據(jù))
第三次握手的數(shù)據(jù)包

客戶端再次發(fā)送確認包(ACK) SYN標(biāo)志位為0,ACK標(biāo)志位為1.并且把服務(wù)器發(fā)來ACK的序號字段+1,放在確定字段中發(fā)送給對方.并且在數(shù)據(jù)段放寫ISN的+1


image-69.png

數(shù)據(jù)包的關(guān)鍵屬性

  1. ACK:標(biāo)志位,表示已經(jīng)收到記錄
  2. Seq = 1 :表示當(dāng)前已經(jīng)發(fā)送1個數(shù)據(jù)
  3. Ack = 1 : 表示當(dāng)前端成功接收的數(shù)據(jù)位數(shù),雖然服務(wù)端沒有發(fā)送任何有效數(shù)據(jù),確認號還是被加1,因為包含SYN或FIN標(biāo)志位(并不會對有效數(shù)據(jù)的計數(shù)產(chǎn)生影響,因為含有SYN或FIN標(biāo)志位的包并不攜帶有效數(shù)據(jù))
    到此TCP三次握手完成,建立了連接,開始進行數(shù)據(jù)交互


    image-72.png
針對數(shù)據(jù)交互過程的數(shù)據(jù)包進行說明
image-73.png

數(shù)據(jù)包的關(guān)鍵屬性

Seq: 1
Ack: 1: 說明現(xiàn)在共收到1字節(jié)數(shù)據(jù)
image-74.png
Seq: 1
Ack: 518: 說明現(xiàn)在服務(wù)端共收到518字節(jié)數(shù)據(jù)

在TCP層,有個FLAGS字段,這個字段有以下幾個標(biāo)識:SYN, FIN, ACK, PSH, RST, URG


image-75.png

我們?nèi)粘5姆治鲇杏玫木褪乔懊娴奈鍌€字段。它們的含義是:SYN表示建立連接,F(xiàn)IN表示關(guān)閉連接,ACK表示響應(yīng),PSH表示有DATA數(shù)據(jù)傳輸,RST表示連接重置

wireshark顯示時間戳

調(diào)整方法為視圖 –>時間顯示格式 –> 日期和時間

image-76.png

效果
image-77.png

參考文獻:wireshark使用教程

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ![Flask](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW...
    極客學(xué)院Wiki閱讀 7,779評論 0 3
  • 不知不覺易趣客已經(jīng)在路上走了快一年了,感覺也該讓更多朋友認識知道易趣客,所以就謝了這篇簡介,已做創(chuàng)業(yè)記事。 易趣客...
    Physher閱讀 3,807評論 1 2
  • 雙胎妊娠有家族遺傳傾向,隨母系遺傳。有研究表明,如果孕婦本人是雙胎之一,她生雙胎的機率為1/58;若孕婦的父親或母...
    鄴水芙蓉hibiscus閱讀 3,888評論 0 2
  • 晴天,擁抱陽光,擁抱你。雨天,想念雨滴,想念你。 我可以喜歡你嗎可以啊 我還可以喜歡你嗎可以,可是你要知道我們不可...
    露薇霜凝閱讀 1,355評論 1 2

友情鏈接更多精彩內(nèi)容