wireshark過濾語法總結

2021-09-06 23:20:27 字數 3980 閱讀 8898

做應用識別這一塊常常要相應用產生的資料流量進行分析。

抓包採用wireshark,提取特徵時,要對session進行過濾,找到關鍵的stream,這裡總結了wireshark過濾的基本的語法,供自己以後參考。(腦子記不住東西)

wireshark進行過濾時,依照過濾的語法可分為協議過濾和內容過濾。

對標準協議,既支援粗粒度的過濾如http,也支援細粒度的、根據協議屬性值進行的過濾如tcp.port==53、http.request.method=="get"。

對內容的過濾,既支援深度的字串匹配過濾如http contains "server",也支援特定偏移處值的匹配過濾如tcp[20:3] == 47:45:54。

wireshark有兩種過濾器:

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

顯示過濾器(displayfilters):用於在捕捉結果中進行具體查詢。

捕捉過濾器在抓抱前進行設定,決定抓取如何的資料;顯示過濾器用於過濾抓包資料,方便stream的追蹤和排查。

捕捉過濾器僅支援協議過濾,顯示過濾器既支援協議過濾也支援內容過濾。

兩種過濾器它們支援的過濾語法並不一樣。

語法:protocoldirectionhost(s)valuelogical operationsother expression

樣例:tcp

dst10.1.1.1

80and

tcp dst 10.2.2.2 3128

演示樣例:

(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或者源ip位於網路10.6.0.0/16,目的ip的tcpport號在200至10000之間,而且目的ip位於網路 10.0.0.0/8內的全部封包。

字段具體解釋:

protocol(協議):

可能值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.

假設沒指明協議型別,則默覺得捕捉全部支援的協議。

注:在wireshark的help-manual pages-wireshark filter中查到其支援的協議。

direction(方向):

可能值: src, dst, src and dst, src or dst

假設沒指明方向,則預設使用 「src or dst」 作為keyword。

」host 10.2.2.2″與」src or dst host 10.2.2.2″等價。

host(s):

可能值: net, port, host, portrange.

預設使用」host」keyword,」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)」不等價。

1.協議過濾語法

語法:protocol.string 1.string 2comparison operatorvaluelogical operationsother expression

樣例:http

request

method 

=="post"

oricmp.type

string1和string2是可選的。

根據協議過濾時,可直接通過協議來進行過濾,也能根據協議的屬性值進行過濾。

按協議進行過濾:

snmp || dns || icmp顯示snmp或dns或icmp封包。

按協議的屬性值進行過濾:

ip.addr == 10.1.1.1

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

ip.src == 10.230.0.0/16

顯示來自10.230網段的封包。

tcp.port == 25顯示**或目的tcpport號為25的封包。

tcp.dstport == 25顯示目的tcpport號為25的封包。

顯示post請求方式的http封包。

顯示請求的網域名稱為tracker.1ting.com

的http封包。

tcp.flags.syn == 0×02顯示包括tcp syn標誌的封包。

2.內容過濾語法

2.1深度字串匹配

contains:does the protocol, field or slice contain a value

演示樣例

tcp contains "http"顯示payload中包括"http"字串的tcp封包。

http.request.uri contains "online"顯示請求的uri包括"online"的http封包。

2.2特定偏移處值的過濾

tcp[20:3] == 47:45:54 /* 16進製制形式,tcp頭部通常是20位元組,所以這個是對payload的前三個位元組進行過濾 */

過濾中函式的使用(upper、lower)

upper(string-field) - converts a string field to uppercase
lower(string-field) - converts a string field to lowercase
演示樣例

wireshark過濾支援比較運算子、邏輯運算子,內容過濾時還能使用位運算。

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

參考:wireshark的help-manual pages-wireshark filter

wireshark過濾語法總結

做應用識別這一塊經常要對應用產生的資料流量進行分析。抓包採用wireshark,提取特徵時,要對session進行過濾,找到關鍵的stream,這裡總結了wireshark過濾的基本語法,供自己以後參考。腦子記不住東西 wireshark進行過濾時,按照過濾的語法可分為協議過濾和內容過濾。對標準協議...

wireshark過濾語法總結

做應用識別這一塊經常要對應用產生的資料流量進行分析。抓包採用wireshark,提取特徵時,要對session進行過濾,找到關鍵的stream,這裡總結了wireshark過濾的基本語法,供自己以後參考。腦子記不住東西 wireshark進行過濾時,按照過濾的語法可分為協議過濾和內容過濾。對標準協議...

Wireshark過濾總結

捕獲過濾器 在抓包之前就設定好過濾條件,然後只抓取符合條件的資料報。顯示過濾器 在已捕獲的資料報集合中設定過濾條件,隱藏不想顯示的資料報,只顯示符合條件的資料報。使用捕獲過濾器的主要原因就是效能。如果你知道並不需要分析某個型別的流量,那麼可以簡單地使用捕獲過濾器過濾掉它,從而節省那些會被用來捕獲這些...