整理自陳鑫傑老師的wireshark教程課
wireshark 抓包過濾器
過濾器分為抓包過濾器和顯示過濾器,抓包過濾器會將不滿足過濾條件的包丟棄,只保留滿足條件的包,而顯示過濾器則是對已抓取的包做過濾,過濾出滿足條件的包。
顯示過濾器可以保留全部的報數據,方便后期做流量分析,而抓包過濾器保留的數據有限,后期分析有局限性。
一、抓包過濾器
wireshark抓包是基於其內部的libpcap/wincap庫
打開軟件時直接在filter欄輸入過濾規則即可,如下以wireshark2.6舉例
Capture --> Options
使用的是BFP語法(Berkeley Packet Filter),一共四個元素:
- 類型(Type)
- host、net、port
- 方向(Dir)
- src、dst
- 協議(Proto)
- ether、ip、tcp、udp、http、ftp
- 邏輯運算符
&&
與||
或!
非
示例:
抓取源地址為192.168.1.1,目的端口為80的流量
src host 192.168.1.1 && dst port 80
抓取192.168.1.1和192.168.1.2的流量
host 192.168.1.1 || host 192.168.1.2
不要抓取廣播包
! broadcast
過濾mac地址:
ether host 00:88:ca:86:f8:0d
ether src host 00:88:ca:86:f8:0d
ether dst host 00:88:ca:86:f8:0d
過濾IP地址:
host 192.168.1.1
src host 192.168.1.1
dst host 192.168.1.1
過濾端口:
port 80
!port 80
dst port 80
src port 80
過濾協議:
arp
icmp
結合邏輯符號綜合過濾
host 192.168.1.1 && port 8080
二、顯示過濾器
使用顯示過濾器需先用軟件進行抓包,然后在軟件filter欄輸入過濾規則:
比較符:
-
==
等於 -
!=
不等於 -
>
大於 -
<
小於 -
>=
大於等於 -
<=
小於等於
邏輯操作符:
- and 兩個條件同時滿足
- or 其中一個條件被滿足
- xor 有且僅有一個條件被滿足
- not 沒有條件被滿足
ip地址:
- ip.addr ip地址
- ip.src 源ip
- ip.dst 目標ip
端口過濾:
- tcp.port
- tcp.srcport
- tcp.dstport
- tcp.flags.syn 過濾包含tcp的syn請求的包
- tcp.flags.ack 過濾包含tcp的ack應答的包
協議過濾:
arp、ip、icmp、udp、tcp、bootp、dns等
示例:
過濾IP地址:
ip.addr == 192.168.1.1 過濾該地址的包
ip.src == 172.16.1.1 過濾源地址為該地址的包
過濾端口:
tcp.port == 80 過濾tcp中端口號為80的包
tcp.flags.syn == 1 過濾syn請求為1的包
結合邏輯符綜合過濾:
ip.src == 192.168.1.1 and ip.dst == 172.16.1.1