抓取指定IP地址的数据流:缓存
若是你的抓包环境下有不少主机正在通信,能够考虑使用所观察主机的IP地址来进行过滤。如下为IP地址抓包过滤示例:服务器
- host 10.3.1.1:抓取发到/来自10.3.1.1的数据流
- host 2406:da00:ff00::6b16:f02d:抓取发到/来自IPv6地址2406:da00:ff00::6b16:f02d的数据流
- not host 10.3.1.1:抓取除了发到/来自10.3.1.1之外的全部数据流
- src host 10.3.1.1:抓取来自10.3.1.1的数据流
- dst host 10.3.1.1:抓取发到10.3.1.1的数据流
- host 10.3.1.1 or 10.3.1.2:抓取发到/来自10.3.1.1,以及与之通信的全部数据流,与10.3.1.2,以及与之通信的全部数据流
- host www.espn.com:抓取发到/来自全部解析为www.espn.com的IP地址的数据流
- ip.addr == 10.2.2.2
抓取指定IP地址范围的数据流:网络
当你须要抓取来自/发到一组地址的数据流,能够采用CIDR(无类别域间路由,Classless Interdomain Routing)格式或使用mask参数。less
- net 10.3.0.0/16:抓取网络10.3.0.0上发到/来自全部主机的数据流(16表示长度)
- net 10.3.0.0 mask 255.255.0.0:与以前的过滤结果相同
- ip6 net 2406:da00:ff00::/64:抓取网络2406:da00:ff00:0000(IPv6)上发到/来自全部主机的数据流
- not dst net 10.3.0.0/16:抓取除了发到以10.3开头的IP地址之外的全部数据流
- not src net 10.3.0.0/16:抓取除了来自以10.3开头的IP地址之外的全部数据流
- ip proto <protocol code>:抓取ip协议字段等于<protocol code>值的报文。如TCP(code 6), UDP(code 17), ICMP(code 1)。
- ip[2:2]==<number>:ip报文大小
- ip[8]==<number>:TTL(Time to Live)值
- ip[9]==<number>:协议值
- icmp[icmptype]==<identifier>: 抓取 ICMP代码等于identifier的ICMP报文, 如icmp-echo 以及icmp-request。
方括号中第一个数字表示从协议头开始的偏移量,第二个数字表示须要观察多少位。dom
抓取发到广播或多播地址的数据流:tcp
只需侦听广播或多播数据流,就能够掌握网络上主机的许多信息。ide
- ip broadcast:抓取广播报文
- ip multicast:抓取多播报文
- dst host ff02::1:抓取到IPv6多播地址全部主机的数据流
- dst host ff02::2:抓取到IPv6多播地址全部路由器的数据流
小贴士:工具
Wireshark包含了一些默认的抓包过滤条件。点击主工具栏的Edit Capture Filters,跳转到已保存抓包过滤列表。你会发现一些常见抓包过滤的示例。spa
抓取基于MAC地址的数据流:code
当你须要抓取发到/来自某一主机的IPv4或IPv6数据流,可建立基于主机MAC地址的抓包过滤条件。
应用MAC地址时,需确保与目标主机处于同一网段。
- ether host 00:08:15:00:08:15:抓取发到/来自00:08:15:00:08:15的数据流
- ether src 02:0A:42:23:41:AC:抓取来自02:0A:42:23:41:AC的数据流
- ether dst 02:0A:42:23:41:AC:抓取发到02:0A:42:23:41:AC的数据流
- not ether host 00:08:15:00:08:15:抓取除了发到/来自00:08:15:00:08:15之外的全部数据流
- ether broadcast或ether dst ff:ff:ff:ff:ff:ff:抓取广播报文
- ether multicast:多播报文
- 抓取指定以太网类型的报文:ether proto 0800
- 抓取指定VLAN:vlan <vlan number>
- 抓取指定几个VLAN:vlan <vlan number> and vlan <vlan number>
抓取基于指定应用的数据流:
你可能须要查看基于一个或几个应用的数据流。抓包过滤器语法没法识别应用名,所以须要根据端口号来定义应用。经过目标应用的TCP或UDP端口号,将不相关的报文过滤掉。
- port 53:抓取发到/来自端口53的UDP/TCP数据流(典型是DNS数据流)
- not port 53:抓取除了发到/来自端口53之外的UDP/TCP数据流
- port 80:抓取发到/来自端口80的UDP/TCP数据流(典型是HTTP数据流)
- udp port 67:抓取发到/来自端口67的UDP数据流(典型是DHCP据流)
- tcp port 21:抓取发到/来自端口21的TCP数据流(典型是FTP命令通道)
- portrange 1-80:抓取发到/来自端口1-80的全部UDP/TCP数据流
- tcp portrange 1-80:抓取发到/来自端口1-80的全部TCP数据流
抓取结合端口的数据流:
当你须要抓取多个不连续端口号的数据流,将它们经过逻辑符号链接起来,以下图所示:
- port 20 or port 21:抓取发到/来自端口20或21的UDP/TCP数据流(典型是FTP数据和命令端口)
- host 10.3.1.1 and port 80:抓取发到/来自10.3.1.1端口80的数据流
- host 10.3.1.1 and not port 80:抓取发到/来自10.3.1.1除了端口80之外的数据流
- udp src port 68 and udp dst port 67:抓取从端口68到端口67的全部UDP数据流(典型是从DHCP客户端到DHCP服务器)
- udp src port 67 and udp dst port 68:抓取从端口67到端口68的全部UDP数据流(典型是从DHCP服务器到DHCP客户端)
- 抓取TCP链接的开始(SYN)和结束(FIN)报文,配置tcp[tcpflags] & (tcp-syn|tcp-fin)!=0
- 抓取全部RST(Reset)标志位为1的TCP报文,配置tcp[tcpflags] & (tcp-rst)!=0
- less <length>:抓取小于等于某一长度的报文,等同于len <=<length>
- greater <length>:抓取大于等于某一长度的报文,等同于len >=<length>
SYN: 简历链接的信号
FIN: 关闭链接的信号
ACK: 确认接收数据的信号
RST: 当即关闭链接的信号
PSH: 推信号,尽快将数据转由应用处理
- tcp[13] & 0x00 = 0: No flags set (null scan)
- tcp[13] & 0x01 = 1: FIN set and ACK not set
- tcp[13] & 0x03 = 3: SYN set and FIN set
- tcp[13] & 0x05 = 5: RST set and FIN set
- tcp[13] & 0x06 = 6: SYN set and RST set
- tcp[13] & 0x08 = 8: PSH set and ACK not set
tcp[13]是从协议头开始的偏移量,0,1,3,5,6,8是标识位。
尽可能避免使用抓包过滤。即使多看几个报文,也比漏看一个报文要好。当你抓取了大量报文的时候,用显示过滤(过滤选项也更多)来重点查看某一数据流。
协议过滤器:
- arp:显示全部包括ARP请求和回复在内的全部ARP数据流。
- ip:显示内含IPv4头在内的(如ICMP目的地址不可达报文,在ICMP报文头以后返回到来方向的IPv4头)IP数据流。
- ipv6:显示全部IPv6数据流,包括内含IPv6报文头的IPv4报文,如6to4,Teredo,以及ISATAP数据流。
- tcp:显示全部基于TCP的数据流。
应用过滤器:
- bootp:显示全部DHCP数据流(基于BOOTP)。
- dns:显示包括TCP区域传输以及基于标准UDP的DNS请求和回复在内的全部DNS数据流。
- tftp:显示全部TFTP(Trivial File Transfer Protocol)数据流。
- http:显示全部HTTP命令,回复以及数据传输报文,但不显示TCP握手报文,TCP ACK报文以及TCP结束报文。
- icmp:显示全部ICMP报文。
域过滤器:
- boot.option.hostname:显示全部包含主机名的DHCP数据流(DHCP基于BOOTP)。
- http:host:显示全部包含HTTP主机名字段的全部HTTP报文。此报文是客户端向网络服务器发送请求时发出的。
- ftp.request.command:显示全部包含命令的FTP数据流,好比USER,PASS,或RETR命令。
字符过滤器:
- tcp.analysis.flags:显示全部包含TCP分析标识的全部报文,包括报文丢失,重传,或零窗口标识。
- tcp.analysis,zero_window:显示含有代表发送方的接收缓存用完标识的报文。