Wireshark常用快捷键&&过滤器语法
一、快捷键
Ctrl+M 标记/取消标记
shift+ctrl+N/B 下/上一个被标记的数据包
二、过滤器语法
1.捕获过滤器的BPF(Berkeley Packet Filter)语法
语法
限定词 | 说明 | 例子 |
---|---|---|
Type | 指出名字或数字所代表的意义 | host、net、port |
Dir | 指明传输方向是前往还是来自名字或数字 | src、dst |
Proto | 限定所要匹配的协议 | ether、ip、tcp、udp、http、ftp |
使用BPF语法创建的过滤器被称为表达式,每个表达式包含一个或多个原语。每个原语包含一个或多个限定词,然后跟着一个ID名字或者数字
|<----------原语--------->|<操作符>|<-----原语---->|
dst host 192.168.0.10 && tcp port 80
|限定词|限定词|<----ID---->| |限定词|限定词|ID|
可以使用3中逻辑运算符对原语进行组合
- 连接运算符 &&
- 选择运算符 ||
- 否定运算符 !
例:
src 192.168.0.10 && port 80
只捕获源地址是192.168.0.10和源端口或目的端口是80的流量
ether host 00-1a-a0-52-e2-a0
根据MAC地址捕获
协议域过滤器
BPF语法还提供了协议域过滤器,可以坚持协议头中的每一字节来过滤
例:
icmp[0]==3
返回icmp包的第1个字节的整形值比较,只捕获代表目标不可达信息(类型3)的ICMP数据包
icmp[0:2]==0x0301
捕获所有类型3代码1表示的目标不可达、主机不可达的ICMP数据包
tcp[13]&4==4
只捕获带有RST标志的TCP数据包(RST标志位在TCP包偏移13字节,00000100)
常用捕获过滤器表达式样例
过滤器 | 说明 |
---|---|
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流量 |
icmp[0:2]==0x0301 | ICMP目标不可达、主机不可达 |
ip | 仅IPv4流量 |
ip6 | 仅IPv6流量 |
udp | 仅UDP流量 |
2.显示过滤器
常用显示过滤器
过滤器 | 说明 |
---|---|
!tcp.port==3389 | 排除RDP流量 |
tcp.flags.syn==1 | 具有SYN标志位的TCP数据包 |
tcp.flags.rst==1 | 具有RST标志位的TCP数据包 |
!arp | 排除ARP流量 |
http | 所有HTTP流量 |
tcp.port==23 || tcp.port==21 | 文本管理流量(Telnet或FTP) |
smtp || pop || imap | 文本email流量(SMTP、POP或IMAP) |