<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    Wireshark的抓包和分析,看這篇就夠了!

    VSole2022-04-17 21:46:35
    WireShark是一個網絡封包分析軟件。網絡封包分析軟件的功能是擷取網絡封包,并盡可能顯示出最為詳細的網絡封包資料。Wireshark使用WinPCAP作為接口,直接與網卡進行數據報文交換。在網絡封包和流量分析領域有著十分強大功能的工具,深受各類網絡工程師和網絡分析師的喜愛。

    本文主要內容包括:

    • 1、Wireshark主界面介紹。
    • 2、WireShark簡單抓包示例。通過該例子學會怎么抓包以及如何簡單查看分析數據包內容。
    • 3、Wireshark過濾器使用。通過過濾器可以篩選出想要分析的內容。包括按照協議過濾、端口和主機名過濾、數據包內容過濾。

    我們首先來介紹一下Wireshark這款軟件。

    首先我們先認識一下這個軟件的主界面是長這樣的

    在這個界面中為Wireshark的主界面

    選擇菜單欄上Capture -> Option,勾選WLAN網卡(這里需要根據各自電腦網卡使用情況選擇,簡單的辦法可以看使用的IP對應的網卡)。點擊Start。啟動抓包。

    wireshark啟動后,wireshark處于抓包狀態中。

    1、執行需要抓包的操作,如ping www.baidu.com。

    2、操作完成后相關數據包就抓取到了。為避免其他無用的數據包影響分析,可以通過在過濾欄設置過濾條件進行數據包列表過濾,獲取結果如下。說明:ip.addr == 119.75.217.26 and icmp 表示只顯示ICPM協議且源主機IP或者目的主機IP為119.75.217.26的數據包。

    3、wireshark抓包完成,就這么簡單。關于wireshark過濾條件和如何查看數據包中的詳細內容在后面介紹。

    Wireshakr抓包界面

    說明:數據包列表區中不同的協議使用了不同的顏色區分。協議顏色標識定位在菜單欄View --> Coloring Rules。如下所示

    WireShark 主要分為這幾個界面

    1. Display Filter(顯示過濾器), 用于設置過濾條件進行數據包列表過濾。菜單路徑:Analyze --> Display Filters。

    1. Packet List Pane(數據包列表), 顯示捕獲到的數據包,每個數據包包含編號,時間戳,源地址,目標地址,協議,長度,以及數據包信息。不同協議的數據包使用了不同的顏色區分顯示。

    1. Packet Details Pane(數據包詳細信息), 在數據包列表中選擇指定數據包,在數據包詳細信息中會顯示數據包的所有詳細信息內容。數據包詳細信息面板是最重要的,用來查看協議中的每一個字段。各行信息分別為

    (1)Frame:   物理層的數據幀概況

    (2)Ethernet II: 數據鏈路層以太網幀頭部信息

    (3)Internet Protocol Version 4: 互聯網層IP包頭部信息

    (4)Transmission Control Protocol:  傳輸層T的數據段頭部信息,此處是TCP

    (5)Hypertext Transfer Protocol:  應用層的信息,此處是HTTP協議

    TCP包的具體內容

    從下圖可以看到wireshark捕獲到的TCP包中的每個字段。

    1. Dissector Pane(數據包字節區)。

    Wireshark過濾器設置

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

    (1)抓包過濾器

    捕獲過濾器的菜單欄路徑為Capture --> Capture Filters。用于在抓取數據包前設置。

    如何使用?可以在抓取數據包前設置如下。

    ip host 60.207.246.216 and icmp表示只捕獲主機IP為60.207.246.216的ICMP數據包。獲取結果如下:

    (2)顯示過濾器

    顯示過濾器是用于在抓取數據包后設置過濾條件進行過濾數據包。通常是在抓取數據包時設置條件相對寬泛,抓取的數據包內容較多時使用顯示過濾器設置條件顧慮以方便分析。同樣上述場景,在捕獲時未設置捕獲規則直接通過網卡進行抓取所有數據包,如下

    執行ping www.huawei.com獲取的數據包列表如下

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

    上述介紹了抓包過濾器和顯示過濾器的基本使用方法。在組網不復雜或者流量不大情況下,使用顯示器過濾器進行抓包后處理就可以滿足我們使用。下面介紹一下兩者間的語法以及它們的區別。

    wireshark過濾器表達式的規則

    1、抓包過濾器語法和實例

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

    (1)協議過濾

    比較簡單,直接在抓包過濾框中直接輸入協議名即可。

    TCP,只顯示TCP協議的數據包列表

    HTTP,只查看HTTP協議的數據包列表

    ICMP,只顯示ICMP協議的數據包列表

    (2)IP過濾

    host 192.168.1.104

    src host 192.168.1.104

    dst host 192.168.1.104

    (3)端口過濾

    port 80

    src port 80

    dst port 80

    (4)邏輯運算符&& 與、|| 或、!非

    src host 192.168.1.104 && dst port 80 抓取主機地址為192.168.1.80、目的端口為80的數據包

    host 192.168.1.104 || host 192.168.1.102 抓取主機為192.168.1.104或者192.168.1.102的數據包

    !broadcast 不抓取廣播數據包

    2、顯示過濾器語法和實例

    (1)比較操作符

    比較操作符有== 等于、!= 不等于、> 大于、< 小于、>= 大于等于、<=小于等于。

    (2)協議過濾

    比較簡單,直接在Filter框中直接輸入協議名即可。注意:協議名稱需要輸入小寫。

    tcp,只顯示TCP協議的數據包列表

    http,只查看HTTP協議的數據包列表

    icmp,只顯示ICMP協議的數據包列表

    (3) ip過濾

    ip.src ==192.168.1.104 顯示源地址為192.168.1.104的數據包列表

    ip.dst==192.168.1.104, 顯示目標地址為192.168.1.104的數據包列表

    ip.addr == 192.168.1.104 顯示源IP地址或目標IP地址為192.168.1.104的數據包列表

    (4)端口過濾

    tcp.port ==80, 顯示源主機或者目的主機端口為80的數據包列表。

    tcp.srcport == 80, 只顯示TCP協議的源主機端口為80的數據包列表。

    tcp.dstport == 80,只顯示TCP協議的目的主機端口為80的數據包列表。

    (5) Http模式過濾

    http.request.method=="GET", 只顯示HTTP GET方法的。

    (6)邏輯運算符為 and/or/not

    過濾多個條件組合時,使用and/or。比如獲取IP地址為192.168.1.104的ICMP數據包表達式為ip.addr == 192.168.1.104 and icmp

    (7)按照數據包內容過濾。假設我要以IMCP層中的內容進行過濾,可以單擊選中界面中的碼流,在下方進行選中數據。如下

    右鍵單擊選中后出現如下界面

    選中Select后在過濾器中顯示如下

    后面條件表達式就需要自己填寫。如下我想過濾出data數據包中包含"abcd"內容的數據流。包含的關鍵詞是contains 后面跟上內容。

    看到這, 基本上對wireshak有了初步了解。

    Wireshark抓包分析TCP三次握手

    (1)TCP三次握手連接建立過程

    Step1:客戶端發送一個SYN=1,ACK=0標志的數據包給服務端,請求進行連接,這是第一次握手;

    Step2:服務端收到請求并且允許連接的話,就會發送一個SYN=1,ACK=1標志的數據包給發送端,告訴它,可以通訊了,并且讓客戶端發送一個確認數據包,這是第二次握手;

    Step3:服務端發送一個SYN=0,ACK=1的數據包給客戶端端,告訴它連接已被確認,這就是第三次握手。TCP連接建立,開始通訊。

    (2)wireshark抓包獲取訪問指定服務端數據包

    Step1:啟動wireshark抓包,打開瀏覽器輸入www.huawei.com。

    Step2:使用ping www.huawei.com獲取IP。

    Step3:輸入過濾條件獲取待分析數據包列表 ip.addr == 211.162.2.183

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

    第一次握手數據包

    客戶端發送一個TCP,標志位為SYN,序列號為0, 代表客戶端請求建立連接。如下圖。

    數據包的關鍵屬性如下:

    SYN :標志位,表示請求建立連接

    Seq = 0 :初始建立連接值為0,數據包的相對序列號從0開始,表示當前還沒有發送數據

    Ack =0:初始建立連接值為0,已經收到包的數量,表示當前沒有接收到數據

    第二次握手的數據包

    服務器發回確認包, 標志位為 SYN,ACK. 將確認序號(Acknowledgement Number)設置為客戶的I S N加1以.即0+1=1, 如下圖

    數據包的關鍵屬性如下:

    [SYN + ACK]: 標志位,同意建立連接,并回送SYN+ACK

    Seq = 0 :初始建立值為0,表示當前還沒有發送數據

    Ack = 1:表示當前端成功接收的數據位數,雖然客戶端沒有發送任何有效數據,確認號還是被加1,因為包含SYN或FIN標志位。(并不會對有效數據的計數產生影響,因為含有SYN或FIN標志位的包并不攜帶有效數據)

    第三次握手的數據包

    客戶端再次發送確認包(ACK) SYN標志位為0,ACK標志位為1.并且把服務器發來ACK的序號字段+1,放在確定字段中發送給對方.并且在數據段放寫ISN的+1, 如下圖:

    數據包的關鍵屬性如下:

    ACK :標志位,表示已經收到記錄

    Seq = 1 :表示當前已經發送1個數據

    Ack = 1 : 表示當前端成功接收的數據位數,雖然服務端沒有發送任何有效數據,確認號還是被加1,因為包含SYN或FIN標志位(并不會對有效數據的計數產生影響,因為含有SYN或FIN標志位的包并不攜帶有效數據)。

    就這樣通過了TCP三次握手,建立了連接。開始進行數據交互

    下面針對數據交互過程的數據包進行一些說明:

    數據包的關鍵屬性說明

    Seq: 1

    Ack: 1: 說明現在共收到1字節數據

    Seq: 1

    Ack: 951: 說明現在服務端共收到951字節數據

    在TCP層,有個FLAGS字段,這個字段有以下幾個標識:SYN, FIN, ACK, PSH, RST, URG。如下

    其中,對于我們日常的分析有用的就是前面的五個字段。它們的含義是:SYN表示建立連接,FIN表示關閉連接,ACK表示響應,PSH表示有DATA數據傳輸,RST表示連接重置。

    Wireshark分析常用操作

    調整數據包列表中時間戳顯示格式。調整方法為View -->Time Display Format --> Date and Time of Day。調整后格式如下:

    這些就是WireShark的常用操作了。

    版權申明:內容來源網絡,版權歸原創者所有。除非無法確認,都會標明作者及出處,如有侵權,煩請告知,我們會立即刪除并致歉!

    tcpwireshark
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    大部分情況都是第 2,3 種情況,比較難以排查。這種情況發生在,發送端的應用已經將內容寫入到了系統的 buffer 中,但是系統并沒有很快的發送出去。cwnd 不能超過 rwnd,不然會 overload 接收端。對于第 1 點,本質上,發送端是用丟包來檢測網絡狀況的,如果沒有發生丟包,表示一切正常,如果發生丟包,說明網絡處理不了這個發送速度,這時候發送端會直接將 cwnd 減半。圖中所有的數據,都是以 Sequence Number 為準的。而藍色的線就是表示又重新傳輸了一遍。
    大部分情況都是第 2,3 種情況,比較難以排查。這種情況發生在,發送端的應用已經將內容寫入到了系統的 buffer 中,但是系統并沒有很快的發送出去。cwnd 不能超過 rwnd,不然會 overload 接收端。對于第 1 點,本質上,發送端是用丟包來檢測網絡狀況的,如果沒有發生丟包,表示一切正常,如果發生丟包,說明網絡處理不了這個發送速度,這時候發送端會直接將 cwnd 減半。圖中所有的數據,都是以 Sequence Number 為準的。而藍色的線就是表示又重新傳輸了一遍。
    前言護網時平時遇到的針對weblogic等中間件漏洞利用以及漏洞掃描的很多,但是我看到某態勢的流量的時候發現態勢的探針的監測不單單是基于披露的poc或者exp來產生的告警。
    start某單位接到上級單位通報存在挖礦病毒,通報的地址0.58是一臺路由器的地址,拓撲情況是該單位出口是一臺路由器,路由器的鏡像接口接到上級單位的感知設備上,出口地址肯定是做了NAT轉換,所上級單位下發的通告中受害IP只是一臺路由器。安全設備上未能發現有效信息,只能人工去分析。DNS協議運行在UDP協議之上,使用53端口號。上殺軟發現好多高危。
    HW:證據收集
    2022-07-26 09:25:00
    網絡取證是指捕獲、記錄和分析網絡事件以發現安全攻擊或其他的問題事件的來源。
    SEQ分為相對序列號和絕對序列號,默認是相對序列號顯示就是0 1不便于查看,修改成絕對序列號方法請參考第三式。我們從而知道TCP報文字段里是有序列號的,我們可以把它當做唯一標示來進行分析,也可以通過序列號進行排序。一般抓出來的都是相對序列號0 1不容易分析,這里我們通過如下方式進行修改為絕對序列號。
    我們從而知道TCP報文字段里是有序列號的,可以把它當做唯一標示來進行分析,也可以通過序列號進行排序。把TCP的這個選項去除掉。Statistics------conversations數據包解碼IPS發送攻擊日志和防病毒日志信息端口號都是30514,SecCenter上只顯示攻擊日志,不顯示防病毒日志。
    接下來,我們通過wireshark來查找pcap文件中的丟包線索。結論1、1句忠告:不能通過判斷數據包是否已被接收端收到來判斷pcap中是否丟包。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类