在网络中,我们通常不需要捕获所有的数据包,我们经常只需要捕获到我们想要的数据包就可以了,如:我们只需要捕获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 流量
下一篇:挂木马方法和技巧大汇总