wireshark過濾表達式實例介紹

wireshark過濾表達式實例介紹

wireshark過濾表達式實例介紹~~

wireshark,實例,表達wireshark,實例,表達

----------------------------------------------------------------------------------------

1、wireshark基本的語法字符

 

/d0-9的數字

/D/d的補集(以所以字符爲全集,下同),即所有非數字的字符

/w單詞字符,指大小寫字母、0-9的數字、下劃線

/W/w的補集

/s空白字符,包括換行符/n、回車符/r、製表符/t、垂直製表符/v、換頁符/f

/S/s的補集

.除換行符/n外的任意字符。在Perl中,“.”可以匹配新行符的模式被稱作“單行模式”

.*匹配任意文本,不包括回車(/n)?。而,[0x00-0xff]*匹配任意文本,包括/n

[…]匹配[]內所列出的所有字符

[^…]匹配非[]內所列出的字符

 

----------------------------------------------------------------------------------------

2、定位字符所代表的是一個虛的字符,它代表一個位置,你也可以直觀地認爲“定位字符”所代表的是某個字符與字符間的那個微小間隙。

 

^表示其後的字符必須位於字符串的開始處

$表示其前面的字符必須位於字符串的結束處

/b匹配一個單詞的邊界

/B匹配一個非單詞的邊界

 

----------------------------------------------------------------------------------------

3、重複描述字符

 

{n}匹配前面的字符n次

{n,}匹配前面的字符n次或多於n次

{n,m}匹配前面的字符n到m次

?匹配前面的字符0或1次

+匹配前面的字符1次或多於1次

*匹配前面的字符0次或式於0次

 

----------------------------------------------------------------------------------------

4、andor匹配

 

and符號並

or符號或

例如:

tcpandtcp.port==80

tcporudp

 

----------------------------------------------------------------------------------------

5、wireshark過濾匹配表達式實例

 

5.1、搜索按條件過濾udp的數據段payload(數字8是表示udp頭部有8個字節,數據部分從第9個字節開始udp[8:])

udp[8]==14(14是十六進制0x14)匹配payload第一個字節0x14的UDP數據包

udp[8:2]==14:05可以udp[8:2]==1405,且只支持2個字節連續,三個以上須使用冒號:分隔表示十六進制。(相當於udp[8]==14andudp[9]==05,1405是0x1405)

udp[8:3]==22:00:f7但是不可以udp[8:3]==2200f7

udp[8:4]==00:04:00:2a,匹配payload的前4個字節0x0004002a

而udpcontains7c:7c:7d:7d匹配payload中含有0x7c7c7d7d的UDP數據包,不一定是從第一字節匹配。

udp[8:4]matches"//x14//x05//x07//x18"

udp[8:]matches"^//x14//x05//x07//x18//x14"

 

5.2、搜索按條件過濾tcp的數據段payload(數字20是表示tcp頭部有20個字節,數據部分從第21個字節開始tcp[20:])

tcp[20:]matches"^GET[-~]*HTTP/1.1//x0d//x0a"

等同httpmatches"^GET[-~]*HTTP/1.1//x0d//x0a"

 

tcp[20:]matches"^GET(.*?)HTTP/1.1//x0d//x0a"

tcp[20:]matches"^GET(.*?)HTTP/1.1//x0d//x0a[//x00-//xff]*Host:(.*?)pplive(.*?)//x0d//x0a"

tcp[20:]matches"^GET(.*?)HTTP/1.1//x0d//x0a[//x00-//xff]*Host:"

tcp[20:]matches"^POST/HTTP/1.1//x0d//x0a[//x00-//xff]*//x0d//x0aConnection:Keep-Alive//x0d//x0a//x0d//x0a"

 

檢測SMB頭的smb標記,指明smb標記從tcp頭部第24byte的位置開始匹配。

tcp[24:4]==ff:53:4d:42

 

檢測SMB頭的smb標記,tcp的數據包含十六進制ff:53:4d:42,從tcp頭部開始搜索此數據。

tcpcontainsff:53:4d:42

tcpmatches"//xff//x53//x4d//x42"

 

檢測tcp含有十六進制01:bd,從tcp頭部開始搜索此數據。

tcpmatches"//x01//xbd"

 

檢測MS08067的RPC請求路徑

tcp[179:13]==00:5c:00:2e:00:2e:00:5c:00:2e:00:2e:00

/../..

5.3、其他

http.request.urimatches".gif$"匹配過濾HTTP的請求URI中含有".gif"字符串,並且以.gif結尾(4個字節)的http請求數據包($是正則表達式中的結尾表示符)

注意區別:http.request.uricontains".gif$"與此不同,contains是包含字符串".gif$"(5個字節)。匹配過濾HTTP的請求URI中含有".gif$"字符串的http請求數據包(這裏$是字符,不是結尾符)

 

eth.addr[0:3]==00:1e:4f搜索過濾MAC地址前3個字節是0x001e4f的數據包。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章