过滤源ip、目的ip。

在wireshark的过滤规则框Filter中输入过滤条件。如查找目的地址为192.168.101.8的包,ip.dst==192.168.101.8;查找源地址为ip.src==1.1.1.1

端口过滤。

如过滤80端口,在Filter中输入,tcp.port==80,这条规则是把源端口和目的端口为80的都过滤出来。使用tcp.dstport==80只过滤目的端口为80的,tcp.srcport==80只过滤源端口为80的包

协议过滤

比较简单,直接在Filter框中直接输入协议名即可,如过滤HTTP的协议

http模式过滤。

如过滤get包,http.request.method=="GET",过滤post包,http.request.method=="POST"

连接符and的使用。

过滤两种条件时,使用and连接,如过滤ip为192.168.101.8并且为http协议的,ip.src==192.168.101.8 and http。

抓包过滤器

  • type(类型) 限定符: 比如host,net,port限定符等
  • dir(方向) 限定符: src dst
  • Proto(协议类型)限定符: ether ip arp

二层过滤器举例

tcp dst port 135 //tcp协议,目标端口为135的数据包
ether host <Ethernet host> //让wireshark只抓取这个地址相关的以太网帧
ether dst <Ethernet host>
ether src <Ethernet src>
ether broadcast //Wireshark只抓取所有以太网广播流量
ether multicast //只抓取多播流量
ether proto <protocol>
vlan <vlan_id>

三层过滤器举例

ip #只抓取ipv4流量
ipv6
host 10.0.0.2
dest host <host>
src host <host>
broadcast #ip广播包
multicast #ip多播包
ip proto <protocol code> #ip数据包有多种类型,比如TCP(6), UDP(17) ICMP(1)

只抓取源于或者发往IPv6 2001::/16的数据包
net 2001::/16

只抓取ICMP流量
ip proto 1

只抓取ICMP echo request流量
icmp[icmptype]==icmp-echo
icmp[icmptype]==8

只抓取特定长度的IP数据包
ip[2:2] == <number>

只抓取具有特定TTL的IP数据包
ip[8] == <number>

抓取数据包的源和目的IP地址相同
ip[12:4] ==1 ip[16:4]

四层抓包过滤器举例

port <port>
dst port <port>
src port <port>
tcp portrange <p1>-<p2>

只抓取TCP中SYN或者FIN的数据包
tcp [tcpflags] & (tcp-syn | tcp-fin) != 0

只抓所有RST标记位置为1的TCP数据包
tcp[tcpflags] & (tcp-rst) != 0

tcp头部的常用标记位
SYN: 用来表示打开连接
FIN: 用来表示拆除连接
ACK: 用来确认收到的数据
RST: 用来表示立刻拆除连接
PSH: 用来表示应将数据提交给末端应用程序处理

抓取所有标记位都未置1的TCP流量
该报文可能用于端口探测,即如果
tcp[13] & 0x00 = 0

设置了URG位的TCP数据包
URG位,表示该数据包十分紧急,不进入缓冲区,直接送给进程
tcp[13] & 32 == 32

设置了ACK位的TCP数据包
tcp[13] & 16 == 16

设置了PSH位的TCP数据包
PSH代表这个消息要从缓冲区立刻发送给应用程序
tcp[13] & 8 == 8

设置了RST位的TCP数据包
tcp[13] & 4 == 4

设置了SYN位的TCP数据包
tcp[13] & 2 == 2

设置了FIN位的TCP数据包
tcp[13] & 1 == 1

TCP SYN-ACK数据包
tcp[13] == 18

抓取目的端口范围的数据包
tcp portrange 2000-2500