功能总结
导出数据包
方法:File | Export Packet Dissections | as”CSV”(Comma Separated Values packet summary)file…
- 导出格式有纯文本、CSV、XML、JSON等;
- 不仅可以输出选中列,还可以输出当前页面展示的列,以及所有列(在导出弹框中设置);
- 可以设置包格式,比如导出统计行、统计头、包详细数据等;
添加展示列
方法:Package Details 面板中展开包详情,找到指定字段右键单击并选择Apply as Column 选项
显示一个TCP/UDP 会话
方法1:选中一个包,右键选择Conversation Filter|[TCPIUDP]命令
方法2:选中一个包,右键选择Follow[TCPIUDP] Stream 命令
方法3:工具栏选择Statistics|Conversations命令
方法4:在TCP 头部,通过右键单击stream index 字段并选择Apply as Filter 命令
命令总结
捕获过滤命令
捕获过滤器仅支持协议过滤。
1. 主机相关过滤命令*
- host 10.3.1.1: 捕获到达/来自10.3.1.1主机的数据(支持IPv6地址)。
- 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 host 10.3.1.2: 捕获到达/来自10.3.1.1主机上的数据,和到达/来自10.3.1.2 主机的数据。
2. 端口相关过滤命令*
- 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 数据。
3. 主机和端口混合过滤命令*
- port 20 or port 21 :捕获到达/来自20 或21 端口号的所有UDP/TCP 数据。
- host 10.3.1.1 and port 80: 捕获到达/来自端口号为80, 并且是到达/来自10.3.1.1主机的UDP/TCP 数据。
- host 10.3.1.1 and not port 80: 捕获到I来自10.3.1.1 主机,并且是非80 端口的UDP/TCP 数据。
- 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 客户端的数据)。
4. IP地址范围过滤命令
- net 192.168.0.0/24:捕获到达/来自192.168.0.0网络中任何主机的数据。
- net 192.168.0.0 mask 255.255.255.0: 捕获到达/来自192.168.0.0网络中任何主机的
数据。 - ip6 net 2406:daOO:ff00::/64: 捕获到达/来自2406:daOO:ffDO:OOOO ( IPv6) 网络中任
何主机的数据。 - not dst net 192.168.0.0/24: 捕获除目的IP地址是192.168.0.0网络外的所有数据。
- dst net 192.168.0.0/24:捕获到达IP地址为192.168.0.0网络内的所有数据。
- src net 192.168.0.0/24: 捕获来自IP地址为192.168.0.0网络内的所有数据。
5. 广播或多播地址过滤命令
- ip broadcast: 捕获到255.255.255.255 的数据。
- ip multicast: 捕获通过224.0.0.0~239.255.255.255的数据。
- dst host ff02::1: 捕获所有主机到IPv6多播地址的数据。
- dst host ff02::2: 捕获所有路由到IPv6多播地址的数据。(跟上一个有什么区别?)
6. 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的任何MAC
地址的流量。
7. 特定ICMP协议过滤命令
- icmp:捕获所有ICMP 数据包。
- icmp[0]=8 : 捕获所有ICMP 字段类型为8 (Echo Request) 的数据包。
- icmp[0]=17: 捕获所有ICMP 字段类型为17 (Address Mask Request) 的数据包。
- icmp[0]=8 or icmp[0]=0: 捕获所有ICMP 字段类型为8 (Echo Request) 或ICMP
字段类型为0 (Echo Reply) 的数据包。 - icmp[0]=3 and not icmp[1]=4 :捕获所有ICMP 字段类型为3 (Destination
Unreachable) 的包,除了ICMP 字段类型为3/代码为4 (Fragmentation Needed and
Don’t Fragment was Set) 的数据包。
显示过滤命令
显示过滤器可以帮助用户在捕捉结果中进行数据查找。该过滤器可以在得到的捕捉结果中修改,以显示有用数据。
既支持协议过滤也支持内容过滤。
1. 通用语法格式
1 | Protocol | [String1] [String2] | Comparison-Operator | Value | Logical-Operations | Other-expression |
其中比较运算符有如下6个:
英文写法 | C 语言写法 | 含义 |
---|---|---|
eq | == | 等于 |
ne | != | 不等于 |
gt | > | 大于 |
lt | < | 小于 |
ge | >= | 大于等于 |
le | <= | 小于等于 |
contains | - | 包含 |
matches | - | 匹配 |
逻辑运算符有如下4个:
英文写法 | C 语言写法 | 含义 |
---|---|---|
and | && | 逻辑与 |
or | || | 逻辑或 |
xor | ^^ | 逻辑异或 |
not | ! | 逻辑非 |
2. 协议过滤命令*
- arp: 显示所有ARP 流量,包括免费ARP 、ARP 请求和ARP 应答。
- ip(v6): 显示所有IPv4/IPv6 流量,包括有IPv4(IPv6) 头部嵌入式的包(如ICMP 目标不可达的数据包,返回到ICMP 头后进入到IPv4 头部)。
- ip(v6).src
- ip(v6).dst
- ip(v6).host
- ip(v6).addr
- tcp: 显示所有基于TCP 的流量数据。
3. 应用过滤命令*
- bootp: 显示所有DHCP 流量(ipv4下基于BOOTP,ipv6下不是基于BOOTP,过滤时使用dhcpv6) 。
- dns: 显示所有DNS 流量,包括基于TCP 传输和UDP 的DNS 请求和响应。
- tftp: 显示所有TFTP (简单文件传输协议)流量。
- http: 显示所有HTTP 命令、响应和数据传输包。但是不显示TCP 握手包、TCP确认包或TCP 断开连接的包。
- http contains “GET”: 显示HTTP 客户端发送给HTTP 服务器的所有GET 请求数据。
- icmp: 显示所有ICMP 流量。
4. 字段存在过滤命令
- bootp.option.hostname: 显示所有DHCP 流量,包含主机名( DHCP 是基于BOOTP) 。
- http.host: 显示所有包含有HTTP 主机名字段的HTTP 包。该包通常是由客户端发送给一个Web 服务器的请求。
- ftp.request.command: 显示所有FTP 命令数据,如USER 、PASS 或RETR 命令。
- ftp.request.arg matches “admin”: 显示匹配admin 字符串的数据。
- tcp.analysis.flags: 显示所有与TCP 标识相关的包,包括丢包、重发或者零窗口标志。
- tcp.analysis.zero_window: 显示被标志的包,来表示发送方的缓冲空间已满。
5. 逻辑运算过滤命令
- &&或and: ip.src=l0.2.2.2 && tcp.port=80,表示显示源地址10.2.2.2 主机,并且端口号为80 的所有IPv4 流量。
- ||或or: tcp.port=80 || tcp.port=43,表示显示到达/来自80 或443 端口的所有TCP数据。
- !或not: !arp,表示查看除ARP 外的所有数据。
- !=或ne: tcp.flags.syn != 1,表示查看TCP SYN 标志位不是1 的TCP 数据帧。
注:
ip.addr != 10.2.2.2 表示显示IP 源或目标地址字段非10.2.2.2 的数据包。如果一个包的源或目标IP 地址字段中不包含10.2.2.2, 则显示该数据包。在该语法中使用了一个隐含或,并且不会过滤掉任何数据包。
!ip.addr == 10.2.2.2 表示显示在IP 源和目标地址字段不包含10.2.2.2 的数据包。当排除到达/来自一个特定IP 地址的数据时,这是一个合适的过滤器语法。
!tcp.flags.syn==l 表示显示TCP SYN 标志位不等于1的所有TCP 包和其他协议包,如UDP 、ARP数据包将匹配该过滤器。因为UDP 和ARP 协议中没有TCP SYN 标志位为1 的数据包。
tcp.flags.syn != 1 表示仅显示包括SYN 设置为0 的TCP 包。
6. 时间过滤命令
- frame.time_delta > 1,表示时间延迟超过1 秒的数据,显示捕获文件中所有包的时间。
- tcp.time_delta > 1,表示TCP 时间差大于1 秒的数据。
注:上述命令主要用于判断各种网络延迟。