在網絡中,我們通常不需要捕獲所有的數據包,我們經常只需要捕獲到我們想要的數據包就可以了,如:我們只需要捕獲tcp包或者arp包等。
當我們只需要捕獲tcp包時,在選擇網絡連接(網卡)之后,先不要選擇start,而是選擇option,然后再彈出窗口中的capture filter欄中輸入tcp即可,這樣我們wireshark就只會捕獲tcp類型的數據包了。
你也可以使用wireshark內置的過濾規則來限制捕獲數據包,只需要點擊capture filter,然后再彈出的窗口中,選擇相應的規則即可。我們也可以自己創建新的規則到內置規則中,這樣下次我們還需要進行類似的操作時就不用再手動書寫規則,而直接可以在內置規則中選擇即可。
選擇或書寫好規則后,只需要單擊start按鈕即可對相應的數據包進行捕獲。
捕獲過濾規則采用BPF語法,所以要靈活使用過濾器,則掌握BPF語法是關鍵。使用BPF語法創建的過濾器被稱為表達式,并且每個表達式包含一個或多個原語,每個原語包含一個或多個限定詞,然后后面再跟著一個ID名字或者數字,如:dst host 192.168.1.1 && tcp port 80。
這個例子的意思是捕獲發往目標主機ip地址為192.168.1.1的80端口的tcp流量數據包。
dst、host、tcp和port是限定詞,192.168.1.1和80是ID,&&是操作符,&&之前部分是為一個原語,即:dst host 192.168.1.1,&&之后部分為另一個原語,即:tcp port 80。
限定詞包括:
限定詞 說明 例子
Type 指出名字或數字所代表的意義 host、net、port
Dir 指明傳輸方向是前往還是來自名字或數字 src、dst
Proto 限定所要匹配的協議 ether、ip、tcp、udp、http、ftp、icmp等
我們還可以對協議域進行捕獲過濾,如表達式icmp[0]==8 || icmp[0]==0表示我們只捕獲echo請求(類型8)和echo回復(類型0)的icmp數據包。
常用捕獲過濾器:
過濾器 說明
tcp[13]&32==32 設置了 URG 位的 TCP 數據包
tcp[13]&16==16 設置了 ACK 位的 TCP 數據包
tcp[13]&8==8 設置了 PSH 位的 TCP 數據包
tcp[13]&4==4 設置了 RST 位的 TCP 數據包
tcp[13]&2==2 設置了 SYN 位的 TCP 數據包
tcp[13]&1==1 設置了 FIN 位的 TCP 數據包
tcp[13]==18 TCP SYN-ACK 數據包
ether host 00:00:00:00:00:00(MAC地址) 流入或流出該 MAC 地址的流量
!ether host 00:00:00:00:00:00(MAC地址) 不流入或流出該 MAC 地址的流量
broadcast 僅廣播流量
icmp ICMP 流量
tcmp[0:2]==0x0301 ICMP 目標不可達、主機不可達
ip 僅 IPv4 流量
ip6 僅 IPv6 流量
udp 僅 UDP 流量
下一篇:掛木馬方法和技巧大匯總