做應用識別這一塊經常要對應用產生的資料流量進行分析。
抓包採用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的tcp埠號在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」 作為關鍵字。
」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)」不等價。
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顯示**或目的tcp埠號為25的封包。
tcp.dstport == 25顯示目的tcp埠號為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過濾總結
捕獲過濾器 在抓包之前就設定好過濾條件,然後只抓取符合條件的資料報。顯示過濾器 在已捕獲的資料報集合中設定過濾條件,隱藏不想顯示的資料報,只顯示符合條件的資料報。使用捕獲過濾器的主要原因就是效能。如果你知道並不需要分析某個型別的流量,那麼可以簡單地使用捕獲過濾器過濾掉它,從而節省那些會被用來捕獲這些...