Wireshark過濾器使用規則介紹

2022-08-27 20:45:08 字數 4614 閱讀 4405

使用wireshark時最常見的問題,是當您使用預設設定時,會得到大量冗餘資訊,以至於很難找到自己需要的部分。

這就是為什麼過濾器會如此重要。它們可以幫助我們在龐雜的結果中迅速找到我們需要的資訊。

捕捉過濾器(capturefilters):用於決定將什麼樣的資訊記錄在捕捉結果中。需要在開始捕捉前設定。

顯示過濾器(displayfilters):在捕捉結果中進行詳細查詢。他們可以在得到捕捉結果後隨意修改。

那麼我應該使用哪一種過濾器呢?

兩種過濾器的目的是不同的。

捕捉過濾器是資料經過的第一層過濾器,它用於控制捕捉資料的數量,以避免產生過大的日誌檔案。

顯示過濾器是一種更為強大(複雜)的過濾器。它允許您在日誌檔案中迅速準確地找到所需要的記錄。

兩種過濾器使用的語法是完全不同的。

語法:protocol

direction

host(s)

value

logical operations

other expression

例子:tcp

dst10.1.1.1

80and

tcp dst 10.2.2.2 3128

protocol(協議):

可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, 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 dst port 3128

顯示目的tcp埠為3128的封包。

ip src host 10.1.1.1

顯示**ip位址為10.1.1.1的封包。

host 10.1.2.3

顯示目的或**ip位址為10.1.2.3的封包。

src portrange 2000-2500

顯示**為udp或tcp,並且埠號在2000至2500範圍內的封包。

not imcp

顯示除了icmp以外的所有封包。(icmp通常被ping工具使用)

src host 10.7.2.12 and not dst net 10.200.0.0/16

顯示**ip位址為10.7.2.12,但目的地不是10.200.0.0/16的封包。

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

顯示**ip為10.4.1.12或者**網路為10.6.0.0/16,目的地tcp埠號在200至10000之間,並且目的位於網路 10.0.0.0/8內的所有封包。

src net 192.168.0.0/24

src net 192.168.0.0 mask 255.255.255.0

顯示**ip位址為10.1.1.1的封包。

注意事項:

當使用關鍵字作為值時,需使用反斜槓「\」。

「ether proto \ip」 (與關鍵字」ip」相同).

這樣寫將會以ip協議作為目標。

「ip proto \icmp」 (與關鍵字」icmp」相同).

這樣寫將會以ping工具常用的icmp作為目標。

可以在」ip」或」ether」後面使用」multicast」及」broadcast」關鍵字。

當您想排除廣播請求時,」no broadcast」就會非常有用。

protocol(協議):

您可以使用大量位於osi模型第2至7層的協議。點選」expression…」按鈕後,您可以看到它們。

比如:ip,tcp,dns,ssh

string1, string2 (可選項):

協議的子類。

點選相關父類旁的」+」號,然後選擇其子類。

comparison operators (比較運算子):

可以使用6種比較運算子:

英文寫法:

c語言寫法:

含義:eq

==等於

ne!=

不等於gt

>

大於lt

<

小於ge

>=

大於等於

le<=

小於等於

logical expressions(邏輯運算子):

英文寫法:

c語言寫法:

含義:and

&&邏輯與

or||

邏輯或xor

^^邏輯異或

not!

邏輯非語法:

protocol

.string 1

.string 2

comparison

operator

value

logical

operations

other

expression

例子:ftp

passive

ip==

10.2.3.4

xoricmp.type

例子:snmp || dns || icmp

顯示snmp或dns或icmp封包。

ip.addr == 10.1.1.1

顯示**或目的ip位址為10.1.1.1的封包。

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

顯示**不為10.1.2.3或者目的不為10.4.5.6的封包。

換句話說,顯示的封包將會為:

**ip:除了10.1.2.3以外任意;目的ip:任意

以及**ip:任意;目的ip:除了10.4.5.6以外任意

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

顯示**不為10.1.2.3並且目的ip不為10.4.5.6的封包。

換句話說,顯示的封包將會為:

**ip:除了10.1.2.3以外任意;同時須滿足,目的ip:除了10.4.5.6以外任意

tcp.port == 25

顯示**或目的tcp埠號為25的封包。

tcp.dstport == 25

顯示目的tcp埠號為25的封包。

tcp.flags

顯示包含tcp標誌的封包。

tcp.flags.syn == 0×02

顯示包含tcp syn標誌的封包。

如果過濾器的語法是正確的,表示式的背景呈綠色。如果呈紅色,說明表示式有誤。

**:

ip過濾:包括**ip或者目標ip等於某個ip

ip.dst addr==192.168.0.208 or ip.dst addr eq 192.168.0.208 顯示目標ip

http模式過濾:

例子:http.request.method == 「get」

// get包

// post包

// 響應包

一定包含如下

content-type:

Wireshark過濾器使用介紹

在工作中我們常會用到wireshark抓取資料報進行分析,當使用wireshark預設設定時,會捕獲到大量冗餘的資料報,如果沒有過濾器過濾,我們很難找到自己想要抓取的資料,這個時候就需要用到wireshark的過濾器來過濾,它們可以幫助我們在龐雜的結果中迅速找到我們需要的資訊。wireshark提供...

wireshark 抓包過濾器使用

過濾器分為抓包過濾器和顯示過濾器,抓包過濾器會將不滿足過濾條件的包丟棄,只保留滿足條件的包,而顯示過濾器則是對已抓取的包做過濾,過濾出滿足條件的包。顯示過濾器可以保留全部的報資料,方便後期做流量分析,而抓包過濾器保留的資料有限,後期分析有侷限性。wireshark抓包是基於其內部的libpcap w...

分享 Wireshark入門 過濾器使用

使用wireshark提供的過濾功能,可方便檢視 分析自己想要的資料。wireshark的過濾器,分為捕獲過濾器和顯示過濾器。捕獲過濾器 當進行資料報捕獲時,只有那些滿足給定的包含 排除表示式的資料報會 獲。顯示過濾器 該過濾器根據指定的表示式用於在乙個已捕獲的資料報集合中,隱藏不想顯示的資料報,或...