WireShark使用過程中,最常見的操作莫過于設(shè)置過濾器了.當(dāng)然你可以通過Filter Express點(diǎn)擊鼠標(biāo)來選擇過濾器表達(dá)式,也可以更快捷的在Express編輯框中直接輸入來進(jìn)行配置。
0×01 常見表達(dá)式運(yùn)算符
給一張圖吧,比較直觀.

is present :存在
==、!=、<、>、<=、>= :等于,不等…類推,==也用eq代替
contains :包含
matches :匹配
and,or,not :&& || ! 邏輯語,邏輯或,邏輯非
0×02 表達(dá)式構(gòu)成
一般是的結(jié)構(gòu)是 Protocal.Properties == XXX
也可以使用語法判斷,在編寫過濾腳本時(shí)能用到.
0×03 常規(guī)應(yīng)用實(shí)例
1.針對(duì)IP過濾的例子
抓取滿足源地址的包: ip.src == 192.168.0.1
抓取滿足目標(biāo)地址的包: ip.dst == 192.168.0.1
抓取滿足源地址或目標(biāo)地址的包: ip.addr == 192.168.0.1,或者 ip.src == 192.168.0.1 or ip.dst == 192.168.0.1
2.針對(duì)Port過濾的例子
捕獲單一端口: tcp.port == 80
捕獲范圍端口: udp.port >= 2048 and upd.port <= 65000
3.針對(duì)Protocal過濾的例子
捕獲單一協(xié)議: http
捕獲多種協(xié)議: http or telnet
4.針對(duì)包長(zhǎng)度和內(nèi)容過濾的例子
捕獲特定長(zhǎng)度的包: http.content_length <=100
捕獲特定內(nèi)容的包: http.request.uri matches “blackh4t”
5.高級(jí)過濾的使用
每個(gè)都可以加入邏輯運(yùn)算符組成高級(jí)表達(dá)式
如:
(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
!(arp.src==192.168.1.1) and !(arp.dst.proto_ipv4==192.168.1.243)
當(dāng)遇到具體協(xié)議的具體屬性不明晰時(shí)可以查看手冊(cè),但一般都是英文簡(jiǎn)略縮寫,所以很好理解.
0×04 表達(dá)式語法附錄
主要是整理了一些協(xié)議或者表達(dá)式格式的常見用法
[src|dst] host <host> 尖括號(hào)里的是一個(gè)主機(jī)IP或主機(jī)名字,用src、dst來設(shè)定這是目的地址或源地址。 這個(gè)選項(xiàng)能過濾主機(jī)IP和名字
ether [src|dst] host <ehost> 尖括號(hào)里的是一個(gè)網(wǎng)絡(luò)地址,用src、dst來設(shè)定這是目的地址或源地址。
gateway host <host> <host> 是一個(gè)網(wǎng)關(guān),抓取流過 <host> 的數(shù)據(jù)包,但這些數(shù)據(jù)包的目的地址和源地址都不是 <host>。
[src|dst] net <net> [{mask <mask>}|{len <len>}] <net>表示一個(gè)網(wǎng)絡(luò)地址,可以用 src、dst來表示這個(gè)網(wǎng)絡(luò)是目的地址還是源地址的數(shù)據(jù)包。如果沒有”src/dst”,表示全部數(shù)據(jù)包??梢赃x擇加上子網(wǎng)掩碼或使用無類型域間選路(CIDR)的方式。
[tcp|udp] [src|dst] port <port> [tcp|udp]是選擇抓取的協(xié)議類型,<port>指定端口。需要注意的是,[tcp|udp]必需在[src|dst]之前。
less|greater <length> 抓取碎片數(shù)據(jù)包或指定長(zhǎng)度的數(shù)據(jù)包。less 與 greater 分別對(duì)應(yīng)小包與大包。
ip|ether proto <protocol> 在數(shù)據(jù)鏈路層上,在指定的IP地址或網(wǎng)絡(luò)地址(ip|ether)上抓取指定協(xié)議<protocol>的數(shù)據(jù)包。
ether|ip broadcast|multicast 在指定的網(wǎng)絡(luò)地址或IP地址上抓取廣播包或組播包。
0×05 補(bǔ)充
Ettercap的過濾腳本語法基本都大同小異,除此之外常見的全功能多協(xié)議的嗅探工具還有OmniPeek,老牌的Sniffer Pro等等..另外推一個(gè)小工具,因?yàn)閷?duì)于特定進(jìn)程的包捕獲,我也沒找到特別好的語法,一般是結(jié)合Netstat之類的命令找出對(duì)應(yīng)進(jìn)程的PID和端口再進(jìn)行過濾器配置,而Appsniffer這個(gè)小工具很好的解決了這個(gè)問題,其需要.net的支持.
未盡錯(cuò)誤之處還望各位指正. hv fun 