一篇帶給你Wireshark之捕獲過濾器
在之前文章《我是如何使用wireshark軟件的》中介紹了wireshark的使用,提到了顯示過濾器和捕獲過濾器,重點(diǎn)介紹了顯示過濾器,本文將主要介紹一下捕獲過濾器。
這里再次說明一下兩者區(qū)別,需要看顯示過濾器的同學(xué),請(qǐng)看文章《我是如何使用wireshark軟件的》。
- 捕獲過濾器:當(dāng)進(jìn)行數(shù)據(jù)包捕獲時(shí),只有那些滿足給定的包含/排除表達(dá)式的數(shù)據(jù)包會(huì)被捕獲。
- 顯示過濾器:該過濾器根據(jù)指定的表達(dá)式用于在一個(gè)已捕獲的數(shù)據(jù)包集合中,隱藏不想顯示的數(shù)據(jù)包,或者只顯示那些需要的數(shù)據(jù)包。
01簡(jiǎn)介
首先了解下,為什么需要捕獲過濾器。舉個(gè)例子,在一臺(tái)服務(wù)器(TCPsever,端口5005)上,一個(gè)客戶端(其他家公司設(shè)備)運(yùn)行幾天,就會(huì)突然掉線。這時(shí)候,說不清是服務(wù)器把客戶端踢下線,還是客戶端主動(dòng)離線。
當(dāng)然,這個(gè)時(shí)候在服務(wù)器添加日志記錄即可,就可以找“真兇”。如果是對(duì)方設(shè)備主動(dòng)離線,對(duì)方又不配合時(shí),對(duì)方“不相信你的日志”。這個(gè)時(shí)候,使用wireshark抓包,找出對(duì)方設(shè)備(TCPClient)先發(fā)出的FIN斷開連接的證據(jù),然后“甩”他臉上即可。
其實(shí)上述場(chǎng)景,我在《我是如何使用wireshark軟件的》文中也提到過解決方案,使用顯示過濾加定時(shí)保存的策略,不過這樣在幾天的抓包中,會(huì)導(dǎo)致抓包文件很大。而捕獲過濾則可以解決這個(gè)問題。
捕獲過濾使用方法
1.選擇捕獲->捕獲過濾器,然后編輯一個(gè)新的捕獲過濾器選項(xiàng):名稱為“port5005”(名字根據(jù)自己的需求即可),過濾器為“port5005”。

2.在開始界面選擇網(wǎng)卡,然后點(diǎn)擊②處,選擇上一步新建的輸入捕獲條件即可。

3.開始捕獲
選擇完輸入捕獲條件,如下圖,直接雙擊網(wǎng)卡,就開始捕獲了。

02BPF語(yǔ)法
捕獲過濾器應(yīng)用于WinPcap,并使用BerkeleyPacketFilter(BPF)語(yǔ)法。這個(gè)語(yǔ)法被廣泛用于多種數(shù)據(jù)包嗅探軟件,主要因?yàn)榇蟛糠謹(jǐn)?shù)據(jù)包嗅探軟件都依賴于使用BPF的libpcap/WinPcap庫(kù)。掌握BPF語(yǔ)法對(duì)你在數(shù)據(jù)包層級(jí)更深入地探索網(wǎng)絡(luò)來說,非常關(guān)鍵。
使用BPF語(yǔ)法創(chuàng)建的過濾器被稱為表達(dá)式,并且表達(dá)式包含一個(gè)或多個(gè)原語(yǔ)。每個(gè)原語(yǔ)包含一個(gè)或多個(gè)限定詞,然后跟著一個(gè)ID名字或者數(shù)字,如:
BPF語(yǔ)法也是支持下列邏輯運(yùn)算符的,從而創(chuàng)造更高級(jí)的表達(dá)式。
- 連接運(yùn)算符 與 (&&)
- 選擇運(yùn)算符 或 (||)
- 否定運(yùn)算符 非 (!)
舉例說明:
- src 192.168.0.10 && port 5005
上述表達(dá)式只對(duì)源地址是192.168.0.10和源端口或目標(biāo)端口是5005的流量進(jìn)行捕獲。
03過濾示例
常用的過濾示例

注意靈活使用上文提到的邏輯運(yùn)算符。