1. 程式人生 > >捕捉過濾器(CaptureFilters)和顯示過濾器(DisplayFilters)--Wireshark Wireshark的基本使用——過濾器

捕捉過濾器(CaptureFilters)和顯示過濾器(DisplayFilters)--Wireshark Wireshark的基本使用——過濾器

Wireshark的基本使用——過濾器

 

前言

網路上關於Wireshark的教程已有不少,博主就簡單介紹一下Wireshark分析資料包時最重要的技巧之一的過濾器。。一次性嗅探到的資料包有很多,想要高效地提取出你想要的資料包或者對某個資料包中某個欄位值的分析等,必不可少的就是過濾。過濾器分為捕捉過濾器(CaptureFilters)顯示過濾器(DisplayFilters)

回到目錄

捕捉過濾器

用於決定將什麼樣的資訊記錄在捕捉結果中,需要在開始捕捉前設定

語法

Protocol Direction Host(s) Value Logical Operations Other Expression
tcp dst 10.1.1.1 80 and tcp dst 10.1.1.2 3289
  • Protocol(協議)

    可能的值: ether, fddi, ip, arp, rarp, decnet, tcp and udp等。如果沒有特別指明是什麼協議,則預設使用所有支援的協議

  • Direction(方向)

    可能的值: src, dst, src and dst, src or dst。如果沒有特別指明來源或目的地,則預設使用 “src or dst” 作為關鍵字
    比如:”host 10.2.2.2″與”src or dst host 10.2.2.2″是一樣的

  • Host(s)

    可能的值: net, port, host, portrange。如果沒有指定此值,則預設使用”host”關鍵字

    比如:"src 10.1.1.1"與”src host 10.1.1.1″相同

  • Logical Operations(邏輯運算)

    可能的值:not, and, or

    否("not")具有最高的優先順序。或("or")和與("and")具有相同的優先順序,運算時從左至右進行。
    例如,
    "not tcp port 3128 and tcp port 23"與"(not tcp port 3128) and tcp port 23"相同。
    "not tcp port 3128 and tcp port 23"與"not (tcp port 3128 and tcp port 23)"不同。

捕獲過濾器例子

顯示目的TCP埠為3128的封包

tcp dst port 3128

顯示來源IP地址為10.1.1.1的封包

ip src host 10.1.1.1

顯示目的或來源IP地址為10.1.2.3的封包

host 10.1.2.3

顯示來源為UDP或TCP,並且埠號在2000至2500範圍內的封包

src portrange 2000-2500

顯示除了icmp以外的所有封包

not icmp

顯示來源IP地址為10.7.2.12,但目的地不是10.200.0.0/16的封包

src host 10.7.2.12 and not dst net 10.200.0.0/16

顯示源IP為10.4.1.12或源網路為10.6.0.0/16,目的TCP 埠號在200至10000之間,並且目的位於網路 10.0.0.0/8內所有封包

(src host 10.4.1.12 or scr net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8

捕獲廣播流量

broadcast
回到目錄

顯示過濾器

在捕捉的結果中進行詳細查詢時使用,可以在得到捕捉結果後隨意修改顯示過濾器表示式。

語法

Protocol . String1 . String2 Comparison Operator Value Logical Operations Other Expression
ftp . passive . ip == 10.1.1.1 xor icmp.type
  • Protocol(協議)

    位於OSI模型第2至7層的協議,如:IP、TCP、DNS等

  • String1,String2(可選項)

    協議的子類

  • Comparison Operator(比較運算子)

    可以使用6種比較運算子

    英文寫法 C語言寫法 含義
    eq == 等於
    ne != 不等於
    gt > 大於
    lt < 小於
    ge >= 大於等於
    le <= 小於等於
  • Logical Operations(邏輯運算子)

    英文寫法 C語言寫法 含義
    and && 邏輯與
    or || 邏輯或
    xor ^^ 邏輯異或
    not ! 邏輯非

    邏輯異或是一種排除性的或。當其被用在過濾器的兩個條件之間時,只有當且僅當其中的一個條件滿足時,這樣的結果才會被顯示在螢幕上

    例如:"tcp.dstport 80 xor tcp.dstport 1025"

    只有當目的TCP埠為80或者來源於埠1025(但又不能同時滿足這兩點)時,這樣的資料包才會被顯示

顯示過濾器例子

顯示SNMP或DNS或ICMP封包

snmp || dns || icmp

顯示來源或目的IP地址為10.1.1.1的封包

ip.addr == 10.1.1.1

顯示來源不為10.1.2.3或目的不為10.4.5.6的包

ip.src != 10.1.2.3 or ip.dst != 10.4.5.6

顯示來源或目的TCP埠號為25的封包

tcp.port == 25

顯示目的TCP埠號為25的封包

tcp.dstport == 25

顯示包含TCP標誌的封包

tcp.flags

顯示包含TCP SYN標誌的封包

tcp.flags.syn == 1

排除arp流量

!arp

文字管理流量(telnet或ftp)

tcp.port == 23 || tcp.port == 21
回到目錄

兩種過濾器的區別

可以看出這兩種過濾器在使用和功能上有著區別:

  • 捕捉過濾器是資料經過的第一層過濾器,它用於控制捕捉資料的數量,以避免產生過大的日誌檔案。而顯示過濾器是在對捕獲結果進行篩選時使用,允許我們在日誌檔案中迅速準確地找到所需要的記錄。
  • 捕捉過濾器必須在捕捉資料包之前設定,若是捕捉的資料包不是我們想要的,需要重新設定捕捉過濾器並重新捕捉資料包。顯示過濾器的功能比捕捉過濾器更為強大,可以重複設定表示式對捕獲的結果重複篩選而不需要重新捕獲資料包。
回到目錄

跟蹤TCP流

處理TCP協議時,想檢視TCP流中的應用層資料,"Following TCP streams"功能將會很有用。
如檢視ftp流的命令控制或者資料控制資訊。或者僅僅只需要一個顯示過濾來顯示某個TCP流的包。這些都可以通過Wireshark的"Following TCP streams"功能來實現。 
Follow Tcp Stream會裝入一個過濾來選擇你已經選擇的TCP流的所有包。


小結

對於Wireshark的使用推薦:

參考:https://openmaniak.com/cn/wireshark_filters.php

多實踐多分析~

前言

網路上關於Wireshark的教程已有不少,博主就簡單介紹一下Wireshark分析資料包時最重要的技巧之一的過濾器。。一次性嗅探到的資料包有很多,想要高效地提取出你想要的資料包或者對某個資料包中某個欄位值的分析等,必不可少的就是過濾。過濾器分為捕捉過濾器(CaptureFilters)顯示過濾器(DisplayFilters)

回到目錄

捕捉過濾器

用於決定將什麼樣的資訊記錄在捕捉結果中,需要在開始捕捉前設定

語法

Protocol Direction Host(s) Value Logical Operations Other Expression
tcp dst 10.1.1.1 80 and tcp dst 10.1.1.2 3289
  • Protocol(協議)

    可能的值: ether, fddi, ip, arp, rarp, decnet, tcp and udp等。如果沒有特別指明是什麼協議,則預設使用所有支援的協議

  • Direction(方向)

    可能的值: src, dst, src and dst, src or dst。如果沒有特別指明來源或目的地,則預設使用 “src or dst” 作為關鍵字
    比如:”host 10.2.2.2″與”src or dst host 10.2.2.2″是一樣的

  • Host(s)

    可能的值: net, port, host, portrange。如果沒有指定此值,則預設使用”host”關鍵字

    比如:"src 10.1.1.1"與”src host 10.1.1.1″相同

  • Logical Operations(邏輯運算)

    可能的值:not, and, or

    否("not")具有最高的優先順序。或("or")和與("and")具有相同的優先順序,運算時從左至右進行。
    例如,
    "not tcp port 3128 and tcp port 23"與"(not tcp port 3128) and tcp port 23"相同。
    "not tcp port 3128 and tcp port 23"與"not (tcp port 3128 and tcp port 23)"不同。

捕獲過濾器例子

顯示目的TCP埠為3128的封包

tcp dst port 3128

顯示來源IP地址為10.1.1.1的封包

ip src host 10.1.1.1

顯示目的或來源IP地址為10.1.2.3的封包

host 10.1.2.3

顯示來源為UDP或TCP,並且埠號在2000至2500範圍內的封包

src portrange 2000-2500

顯示除了icmp以外的所有封包

not icmp

顯示來源IP地址為10.7.2.12,但目的地不是10.200.0.0/16的封包

src host 10.7.2.12 and not dst net 10.200.0.0/16

顯示源IP為10.4.1.12或源網路為10.6.0.0/16,目的TCP 埠號在200至10000之間,並且目的位於網路 10.0.0.0/8內所有封包

(src host 10.4.1.12 or scr net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8

捕獲廣播流量

broadcast
回到目錄

顯示過濾器

在捕捉的結果中進行詳細查詢時使用,可以在得到捕捉結果後隨意修改顯示過濾器表示式。

語法

Protocol . String1 . String2 Comparison Operator Value Logical Operations Other Expression
ftp . passive . ip == 10.1.1.1 xor icmp.type
  • Protocol(協議)

    位於OSI模型第2至7層的協議,如:IP、TCP、DNS等

  • String1,String2(可選項)

    協議的子類

  • Comparison Operator(比較運算子)

    可以使用6種比較運算子

    英文寫法 C語言寫法 含義
    eq == 等於
    ne != 不等於
    gt > 大於
    lt < 小於
    ge >= 大於等於
    le <= 小於等於
  • Logical Operations(邏輯運算子)

    英文寫法 C語言寫法 含義
    and && 邏輯與
    or || 邏輯或
    xor ^^ 邏輯異或
    not ! 邏輯非

    邏輯異或是一種排除性的或。當其被用在過濾器的兩個條件之間時,只有當且僅當其中的一個條件滿足時,這樣的結果才會被顯示在螢幕上

    例如:"tcp.dstport 80 xor tcp.dstport 1025"

    只有當目的TCP埠為80或者來源於埠1025(但又不能同時滿足這兩點)時,這樣的資料包才會被顯示

顯示過濾器例子

顯示SNMP或DNS或ICMP封包

snmp || dns || icmp

顯示來源或目的IP地址為10.1.1.1的封包

ip.addr == 10.1.1.1

顯示來源不為10.1.2.3或目的不為10.4.5.6的包

ip.src != 10.1.2.3 or ip.dst != 10.4.5.6

顯示來源或目的TCP埠號為25的封包

tcp.port == 25

顯示目的TCP埠號為25的封包

tcp.dstport == 25

顯示包含TCP標誌的封包

tcp.flags

顯示包含TCP SYN標誌的封包

tcp.flags.syn == 1

排除arp流量

!arp

文字管理流量(telnet或ftp)

tcp.port == 23 || tcp.port == 21
回到目錄

兩種過濾器的區別

可以看出這兩種過濾器在使用和功能上有著區別:

  • 捕捉過濾器是資料經過的第一層過濾器,它用於控制捕捉資料的數量,以避免產生過大的日誌檔案。而顯示過濾器是在對捕獲結果進行篩選時使用,允許我們在日誌檔案中迅速準確地找到所需要的記錄。
  • 捕捉過濾器必須在捕捉資料包之前設定,若是捕捉的資料包不是我們想要的,需要重新設定捕捉過濾器並重新捕捉資料包。顯示過濾器的功能比捕捉過濾器更為強大,可以重複設定表示式對捕獲的結果重複篩選而不需要重新捕獲資料包。
回到目錄

跟蹤TCP流

處理TCP協議時,想檢視TCP流中的應用層資料,"Following TCP streams"功能將會很有用。
如檢視ftp流的命令控制或者資料控制資訊。或者僅僅只需要一個顯示過濾來顯示某個TCP流的包。這些都可以通過Wireshark的"Following TCP streams"功能來實現。 
Follow Tcp Stream會裝入一個過濾來選擇你已經選擇的TCP流的所有包。


小結

對於Wireshark的使用推薦:

參考:https://openmaniak.com/cn/wireshark_filters.php

多實踐多分析~