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

2022-01-30 天億網絡安全

請點擊上面  一鍵關注!

免責聲明:本文作者:雲影安全團隊, 轉載請註明來自FreeBuf.COM

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

本文主要內容包括:

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 主要分為這幾個界面

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

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

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包中的每個欄位。

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的常用操作了。

相關焦點

  • Wireshark 的抓包和分析,看這篇就夠了!
    在網絡封包和流量分析領域有著十分強大功能的工具,深受各類網絡工程師和網絡分析師的喜愛。本文主要內容包括:2、WireShark簡單抓包示例。通過該例子學會怎麼抓包以及如何簡單查看分析數據包內容。3、Wireshark過濾器使用。通過過濾器可以篩選出想要分析的內容。包括按照協議過濾、埠和主機名過濾、數據包內容過濾。我們首先來介紹一下Wireshark這款軟體。
  • wireshark抓包使用教程
    本文主要內容包括:  1、Wireshark軟體下載和安裝以及Wireshark主界面介紹。  2、WireShark簡單抓包示例。通過該例子學會怎麼抓包以及如何簡單查看分析數據包內容。  3、Wireshark過濾器使用。通過過濾器可以篩選出想要分析的內容。包括按照協議過濾、埠和主機名過濾、數據包內容過濾。
  • Wireshark的抓包原理
    抓包原理主要由兩部分,網絡原理和wireshark底層原理。根據不同的抓包方式,網絡原理也有不同。主要有三種:最簡單直接的一種方式,直接抓取本機網卡進出流量,也就是本機與網際網路之間的交互的數據包。在了解底層原理前我們先看一下Wireshark的功能模塊。下圖為wireshark的架構圖。
  • wireshark抓包新手使用教程
    本文主要內容包括:  1、WireShark簡單抓包示例。通過該例子學會怎麼抓包以及如何簡單查看分析數據包內容。  2、Wireshark過濾器使用。通過過濾器可以篩選出想要分析的內容。包括按照協議過濾、埠和主機名過濾、數據包內容過濾。
  • 可能是目前最簡單易懂且實用的 TCPDump 和 Wireshark 抓包及分析教程!
    2.3 抓包:存文件-w 命令可以將抓到的包寫到文件,注意這和用重定向方式將輸出寫到文件是不同的。後者寫的只是標準輸出列印的 LOG,而 -w 寫的是原始包。流量分析: wiresharktcpdump 可以指定 -r 讀取 pcap 文件,並以指定的格式輸出包的信息,最後輸出的內容 和上面看到的類似。我們上面的流量非常簡單,所以看 tcpdump 的輸出就夠了。對於複雜的 pcap,例如,其中包含了上百個 IP 地址、上千個埠、上萬個連接的 pcap, 通過 tcpdump 看輸出可能就比較低效了。
  • 手機數據抓包以及wireshark技巧
    閱讀目錄抓包工具介紹Wireshark手機抓包Wireshark常用技巧本文主要討論一種非常方便的抓取Android和iphone手機網絡數據包的辦法,以及介紹wireshark最常用的技巧抓包工具介紹(1).網頁抓包工具Chrome瀏覽器插件
  • 從Wireshark抓包看HTTPS的加密功能 - 砍柴網
    那麼HTTPS和HTTP的區別在哪裡呢?HTTP是超文本傳輸協議,信息是明文傳輸,HTTPS(Secure Hypertext Transfer Protocol)安全超文本傳輸協議是一個安全通信通道,基於HTTP開發,用於在客戶計算機和伺服器之間交換信息。它使用安全套接字層(SSL)進行信息交換,簡單來說它是HTTP的安全版。
  • 史上最簡單的 Wireshark 和 TCP 入門指南
    原文連結:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html這篇文章介紹另一個好用的抓包工具
  • Wireshark 基本介紹和學習 TCP 三次握手
    (點擊上方藍字,快速關注我們)來源:肖佳www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html如有好文章投稿,請點擊 → 這裡了解詳情這篇文章介紹另一個好用的抓包工具
  • 網絡抓包工具Wireshark v3.4.10
    )Internet Protocol Version 4: 網際網路層IP包頭部信息  (4)Transmission Control Protocol:  傳輸層T的數據段頭部信息,此處是TCP  (5)Hypertext Transfer Protocol:  應用層的信息,此處是HTTP協議TCP包的具體內容 從下圖可以看到wireshark
  • 網絡抓包工具wireshark使用教程
    今日【優質課程推薦】:網絡抓包工具wireshark使用教程;低價獲取網課資源!
  • Wireshark中文版
    能夠經由程序抓取運行的網站的相關資訊,是專業而且免費的網絡嗅探抓包分析工具,幾乎每個網絡工程人員對這個軟體都喜愛有加。Wireshark中文版含有強顯示過濾器語言(rich display filter language)和查看TCP會話重構流的能力,更支持上百種協議和媒體類型,方便查看、監控TCP session動態等等。太平洋下載中心為您提供wireshark中文版下載。
  • 威而鯊(WireShark)之抓包魚翅手
    網絡報文分析工具的主要作用是嘗試捕獲網絡報文, 並嘗試顯示報文儘可能詳細的內容。過去的此類工具要麼太貴,要麼是非公開的。 直到Wireshark(Ethereal)出現以後,這種情況才得以改變。Wireshark可以算得上是今天能使用的最好的開源網絡分析軟體。
  • WireShark的安裝和信令抓取
    Ubuntu環境安裝wiresharkwireshark是一個用來抓包的好幫手,使用它可讓我們看到埠數據變化(tcp/udp/http
  • wireshark兩個重要功能
    一  前言wireshark這個軟體的可以說是大名鼎鼎,簡單來說,就是網絡包分析的軟體,包括包的解析
  • Wireshark網絡協議分析:圖文解讀HTTP和HTTPS協議
    新版增加了一些細節,支持分析的協議更多,層次和欄位更詳細。Wireshark的版本是2.6.2,最新的是2.6.4就不再去下載了,差2個小版本,區別不大。HTTP是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是一個應用層協議。
  • wireshark使用及實列分析
    ,對wireshark數據包分析不太熟悉,特此學習記錄一下。本想再對主流掃描器和webshell管理工具抓包分析,但礙於篇幅和自己時間問題,沒有再深入下去。這裡主要挑選了weblogic反序列化,ms17_010,struts s2-057數據包進行實列分析。希望文章能對給位師傅有所幫助,文章中可能有很多不足和錯誤之處,還望各位師傅包涵。
  • BT5 + wireshark玩wifi捕獲和中間人攻擊
    ,整個過程其實很簡單,但是老外分了好多步驟來講解,每個步驟都有配圖和說明,甚至命令的參數都要解釋一下。不得不佩服老外分享和奉獻的精神,所以我也學著奉獻一下,把它翻譯成中文給大家看看吧,我儘量保持原汁原味,有不恰當的地方要原諒我,畢竟我不是專業翻譯。
  • Linux命令行抓包及包解析工具tshark(wireshark)使用實例解析
    Linux命令行抓包及包解析工具tshark(wireshark)使用實例解析在Linux下,當我們需要抓取網絡數據包分析時,通常是使用tcpdump抓取網絡raw數據包存到一個文件,然後下載到本地使用wireshark界面網絡分析工具進行網絡包分析。
  • WireShark+Winhex:流量分析的好搭檔
    這篇文章你將學會的知識點有1、進階的wireshark的流量分析、解碼、追蹤流、導出文件2、利用