wireshark(官方下載網(wǎng)站: http://www.wireshark.org/),是用來獲取網(wǎng)絡數(shù)據(jù)封包,可以截取各種網(wǎng)絡封包,顯示網(wǎng)絡封包的詳細信息,包括http,TCP,UDP,等網(wǎng)絡協(xié)議包。注:wireshark只能查看封包,而不能修改封包的內(nèi)容,或者發(fā)送封包。

一、開始界面

  開始界面,如圖1所示:

大學生就業(yè)培訓,高中生培訓,在職人員轉(zhuǎn)行培訓,企業(yè)團訓

圖1(wireshark開始界面)

  點擊Caputre->Interfaces,出現(xiàn)圖2所示對話框,選擇需要捕獲網(wǎng)絡包的網(wǎng)卡,點擊start按鈕開始抓包。

注:如果點擊interfaces時彈出提示如下:“There are no interfaces on which a capture can be done.”        ->解決方法:用管理員身份運行即可

大學生就業(yè)培訓,高中生培訓,在職人員轉(zhuǎn)行培訓,企業(yè)團訓圖2(capture interfaces)

二、窗口界面介紹

  如圖3所示,是抓包后的窗口界面及自己所添加的界面描述:

大學生就業(yè)培訓,高中生培訓,在職人員轉(zhuǎn)行培訓,企業(yè)團訓

圖3(wireshark窗口)

1、Filter(過濾規(guī)則介紹)

  使用過濾是非常重要的,在捕獲的數(shù)據(jù)中會有大量的冗余信息,所以過濾功能會幫我們過濾掉不符合條件的包,提高我們的分析效率。

  過濾器有兩種:

1)顯示過濾器,就是圖3中的Filter,用來過濾在捕獲的記錄中找到所需要的記錄,過濾后,可以點擊save按鈕,然后在filter欄上就多了個剛剛保存的數(shù)據(jù)按鈕;

比如:

    tcp->只顯示TCP協(xié)議的記錄;

    http->只看HTTP協(xié)議的記錄;

    ip.src ==192.168.1.102 ->顯示源地址為192.168.1.102的記錄;

    ip.dst==192.168.1.102 ->目標地址為192.168.1.10的記錄;

    ip.addr == 42.121.252.58 ->只顯示與某主機的通信;

    tcp.port ==80->端口為80的;

    tcp.srcport == 80 ->只顯示TCP協(xié)議的源端口為80的;

    http.request.method=="GET"  ->只顯示HTTP GET方法的;

    eth.type == 0x806->只顯示ARP報文,這個字段的值表示是ARP報文,如果是ip報文此值為0x8000

    注:Type后面的值記不住的話,可以在Expression中選擇,如圖4所示:

大學生就業(yè)培訓,高中生培訓,在職人員轉(zhuǎn)行培訓,企業(yè)團訓

圖4(expression設置)

2)捕獲過濾器(Capture -> Capture Filters),用來過濾捕獲的封包,以免捕獲太多的記錄。

2、封包列表(Packet List Pane)

  封包列表的面板中顯示,編號,時間戳,源地址,目標地址,協(xié)議,長度,以及封包信息。 可以看到不同的協(xié)議用了不同的顏色顯示,當然也可以在View ->Coloring Rules中修改顯示顏色的規(guī)則。

3、封包詳細信息(Packet Details Pane)

  這是最重要的信息,用來查看協(xié)議中的每一個字段。而OSI七層模型分別為:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡層、傳輸層、會話層、表示層、應用層。

在封包信息中,每行對應的含義及在OSI模型中的對應關(guān)系如下:

  Frame:   物理層的數(shù)據(jù)幀概況  ->對應OSI七層模型中的【物理層】

  Ethernet II: 數(shù)據(jù)鏈路層以太網(wǎng)幀頭部信息  ->對應OSI七層模型中的【數(shù)據(jù)鏈路層】

  Internet Protocol Version 4: 互聯(lián)網(wǎng)層IP包頭部信息  ->對應OSI七層模型中的【網(wǎng)絡層】

  Transmission Control Protocol:  傳輸層T的數(shù)據(jù)段頭部信息,此處是TCP  ->對應OSI七層模型中的【傳輸層】

  Hypertext Transfer Protocol:  應用層的信息,此處是HTTP協(xié)議  ->對應OSI七層模型中的【應用層】

每層的封包詳細含義如下:

下面的封包數(shù)據(jù)解析來源于博客:https://my.oschina.net/u/1585857/blog/479306

(1物理層的數(shù)據(jù)幀概況

  • Frame 5: 268 bytes on wire (2144 bits), 268 bytes captured (2144 bits) on interface 0               #5號幀,線路268字節(jié),實際捕獲268字節(jié)

  •     Interface id: 0                                                                                                  #接口id

  •     Encapsulation type: Ethernet (1)                                                                          #封裝類型

  •     Arrival Time: Jun 11, 2015 05:12:18.469086000 中國標準時間          #捕獲日期和時間

  •     [Time shift for this packet: 0.000000000 seconds]

  •     Epoch Time: 1402449138.469086000 seconds

  •     [Time delta from previous captured frame: 0.025257000 seconds]   #此包與前一包的時間間隔

  •     [Time since reference or first frame: 0.537138000 seconds]              #此包與第一幀的時間間隔

  •     Frame Number: 5                                                                                          #幀序號

  •     Frame Length: 268 bytes (2144 bits)                                                         #幀長度

  •     Capture Length: 268 bytes (2144 bits)                                                      #捕獲長度

  •     [Frame is marked: False]                                                                              #此幀是否做了標記:否

  •     [Frame is ignored: False]                                                                              #此幀是否被忽略:否

  •     [Protocols in frame: eth:ip:tcp:http]                                                             #幀內(nèi)封裝的協(xié)議層次結(jié)構(gòu)

  •     [Number of per-protocol-data: 2]                                                                          #

  •     [Hypertext Transfer Protocol, key 0]

  •     [Transmission Control Protocol, key 0]

  •     [Coloring Rule Name: HTTP]                                                                       #著色標記的協(xié)議名稱

  • [Coloring Rule String: http || tcp.port == 80]                                                        #著色規(guī)則顯示的字符串

(2數(shù)據(jù)鏈路層以太網(wǎng)幀頭部信息

  • Ethernet II, Src: Giga-Byt_c8:4c:89 (1c:6f:65:c8:4c:89), Dst: Tp-LinkT_f9:3c:c0 (6c:e8:73:f9:3c:c0)

  • Destination: Tp-LinkT_f9:3c:c0 (6c:e8:73:f9:3c:c0)                                         #目標MAC地址

  •     Source: Giga-Byt_c8:4c:89 (1c:6f:65:c8:4c:89)                                        #源MAC地址

  •     Type: IP (0x0800)

(3互聯(lián)網(wǎng)層IP包頭部信息

  • Internet Protocol Version 4, Src: 192.168.0.104 (192.168.0.104), Dst: 61.182.140.146 (61.182.140.146)

  • Version: 4                                                                                                                          #互聯(lián)網(wǎng)協(xié)議IPv4

  •     Header length: 20 bytes                                                                               #IP包頭部長度

  •     Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))                                                                                                                                   #差分服務字段

  •     Total Length: 254                                                                                           #IP包的總長度

  •     Identification: 0x5bb5 (23477)                                                                    #標志字段

  •     Flags: 0x02 (Don't Fragment)                                                                      #標記字段

  •     Fragment offset: 0                                                                                         #分的偏移量

  •     Time to live: 64                                                                                               #生存期TTL

  •     Protocol: TCP (6)                                                                                            #此包內(nèi)封裝的上層協(xié)議為TCP

  •     Header checksum: 0x52ec [validation disabled]                                              #頭部數(shù)據(jù)的校驗和

  •     Source: 192.168.0.104 (192.168.0.104)                                                   #源IP地址

  •     Destination: 61.182.140.146 (61.182.140.146)                                       #目標IP地址

(4傳輸層TCP數(shù)據(jù)段頭部信息

  • Transmission Control Protocol, Src Port: 51833 (51833), Dst Port: http (80), Seq: 1, Ack: 1, Len: 214

  • Source port: 51833 (51833)                                                                                 #源端口號

  •     Destination port: http (80)                                                                             #目標端口號

  •     Sequence number: 1    (relative sequence number)                                   #序列號(相對序列號)

  •     [Next sequence number: 215    (relative sequence number)]           #下一個序列號

  •     Acknowledgment number: 1    (relative ack number)                         #確認序列號

  •     Header length: 20 bytes                                                                               #頭部長度

  •     Flags: 0x018 (PSH, ACK)                                                                             #TCP標記字段

  •     Window size value: 64800                                                                                    #流量控制的窗口大小

  •     Checksum: 0x677e [validation disabled]                                                  #TCP數(shù)據(jù)段的校驗和

結(jié)合抓包數(shù)據(jù)分析TCP三次握手過程             

  1、首先要清楚TCP三次握手過程,如圖5所示:

 

大學生就業(yè)培訓,高中生培訓,在職人員轉(zhuǎn)行培訓,企業(yè)團訓

 

 

圖5(TCP三次握手過程) 

百度百科解釋TCP三次握手過程如下:

第一次握手:建立連接時,客戶端發(fā)送syn包(syn=j)到服務器,并進入SYN SENT狀態(tài),等待服務器確認;SYN:即是同步序列編號(Synchronize Sequence Numbers);

第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN RECV狀態(tài);

第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發(fā)送確認包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務器進入ESTABLISHED(TCP連接成功)狀態(tài),完成三次握手。

  

  2、要清楚TCP包中的具體內(nèi)容如圖6所示:(TCP包的具體內(nèi)容圖來源于博客:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html)

大學生就業(yè)培訓,高中生培訓,在職人員轉(zhuǎn)行培訓,企業(yè)團訓

圖6(TCP包的具體內(nèi)容)

  3、下面用實例講下wireshark中的tcp三次握手過程:

  1)打開wireshark后,在瀏覽器輸入訪問地址:http://www.cnblogs.com/Chilam007/,wireshark自動捕獲數(shù)據(jù)包,然后過濾自己需要分析的數(shù)據(jù),這里是過濾與主機通信的記錄,

過濾規(guī)則為:ip.addr == 116.211.169.93  ,過濾后的數(shù)據(jù)如圖7所示

大學生就業(yè)培訓,高中生培訓,在職人員轉(zhuǎn)行培訓,企業(yè)團訓

 圖7(過濾后的數(shù)據(jù)包顯示,注:這里不知道為什么數(shù)據(jù)包是重復的)

  • 574幀是客戶端向服務器發(fā)送TCP請求建立連接。標識為SYN。

  • 619幀是服務器得到請求后向客戶端回應確認包的過程。標識為SYN,ACK。

  • 620幀是客戶端回應服務器發(fā)送確認包的過程,將于服務器建立連接。標識為ACK。

  • 663幀是客戶端向服務器發(fā)送HTTP請求內(nèi)容的過程。標識為GET。

  • 667幀是服務器相應客戶端請求的過程,收到請求。標識為ACK。

  • 674幀是服務器向客戶端回應內(nèi)容的過程。

  2)TCP三次握手分析:

 第一次握手數(shù)據(jù)包,客戶端發(fā)送一個TCP,標志位為SYN,序列號為0, 代表客戶端請求建立連接,如圖8所示

大學生就業(yè)培訓,高中生培訓,在職人員轉(zhuǎn)行培訓,企業(yè)團訓

圖8(第一次握手)

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

大學生就業(yè)培訓,高中生培訓,在職人員轉(zhuǎn)行培訓,企業(yè)團訓

圖9(第二次握手) 

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

大學生就業(yè)培訓,高中生培訓,在職人員轉(zhuǎn)行培訓,企業(yè)團訓

http://www.cnblogs.com/Chilam007/p/6973990.html