Wireshark 基础使用-启用抓包与过滤
Wireshark 是一款免费、开源、跨平台、专业的网络抓包(监测)与协议分析软件。
如我在上一篇博客中所述,网络工程师可以使用 wireshark 抓取本机网卡的数据包,并分析抓取的数据包(注意,本机访问本机的回环数据 localhost 是不经过网卡的,需要指定回环数据也要先转发到网关,才能使用 wireshark 抓取)。也可以使用 wireshark 打开其他抓包工具生成的抓包文件,使用 wireshark 分析该抓包文件。
目前,网络上关于该工具如何安装的帖子已经很多了,本篇博客主要介绍 Wireshark 最常用,也是必须掌握的一些技能。包括如何设置捕获过滤条件、显示过滤条件。不管您是否正在做网络分析的工作,只要抓的一手好包,能提供简洁的抓包文件给专业的分析人员,都是很了不起的技能。
wireshark 的工作原理:
如图,安装了 wireshark 的 PC 可以获取该 PC 上流经以太网网卡、无线网卡、虚拟网卡上的数据,进而分析其与其他 PC 等设备进行通信的具体情况。
wireshark 过滤器使用
Wireshark 设置了两个过滤器:捕获过滤器(capture fileter)、显示过滤器(display filter)。
-
捕获过滤器,用于在
开始捕获前
设置过滤条件,设置过滤条件后,抓包工具将仅捕获与条件匹配的数据包;使用捕获过滤器可以减少抓取的网络数据包,减轻抓包软件的负担,最终得到的抓包文件也较小,是提升效率必备技能。 -
显示过滤器,用于在
捕获数据后
设置过滤条件,设置过滤条件后,显示页面上将仅显示与条件匹配的数据包;
捕获过滤器的基本使用
打开 wireshark 软件后,如图所示的输入框就是输入捕获过滤条件
的地方:
点击上图中绿色的小标签(或者通过菜单:捕获->捕获过滤器)即可打开常用的捕获表达式:
**注: **捕获表达式中的冒号“:”,通常起解释说明的意思,无实意。
捕获过滤表达式的语法
Wireshark 捕获过滤器表达式遵循 libpcap 语法。过滤器表达式由一个或多个原语
组成。原语
通常由一个id
(名称或数字)和一个或多个修饰符
组成(如名字:老王,修饰符:隔壁的,组合起来的"隔壁的老王"就是一个原语)。
1)过滤表达式 = 原语1 + 原语2 + …
2)原语 = id + 修饰符1 + 修饰符2 +…
3)原语之间可以通过逻辑连接符
和括号()
进行组合,逻辑连接符包括:
与 | 可用符号“&&“ 或者文字 “and“来表示 |
---|---|
或 | 可用符号“||“ 或者文字 “or“来表示 |
非 | 可用符号“!“ 或者文字 “not“来表示 |
如下述示例表示仅捕获通过网关“snup”并且是属于 FTP 端口或者数据的数据包:
gateway snup and (port ftp or ftp-data)
4)常见的三种不同的修饰符:
类型(type) | 该修饰符表示id名称或编号所指的内容。可能的类型有主机、网络、端口和端口范围。例如,‘host foo’、‘net 128.3’、‘port 20’、‘portrange 6000-6008’。如果没有指定类型修饰符,则默认指定的是主机。 |
---|---|
方向(directions) | 该修饰符指定特定传输方向。可能的方向是src、dst、src或dst、src和dst、ra、ta、addr1、addr2、addr3和addr4。例如,‘src foo’、‘dst net 128.3’、‘src或dst port ftp data’。如果没有指定该修饰符,则假定为’src或dst’。ra、ta、addr1、addr2、addr3和addr4限定符仅对IEEE 802.11无线LAN链路层有效。 |
协议(protocol) | 该修饰符指定特定的协议。可能的协议有:以太网、fddi、tr、wlan、ip、ip6、arp、rarp、decnet、sctp、tcp和udp。例如,‘ether src foo’,‘arp net 128.3’,‘tcp port 21’,‘udp portrange 7000-7009’,‘wlan addr2 0:2:3:4:5:6’。如果没有指定该修饰符,则默认捕获所有协议的数据包。 |
除上述内容外,还有一些特殊的“原始”关键字没有遵循这种模式:gateway, broadcast, less, greater和算术表达式(常见的算术表达式如:len <= 1023,代表过滤长度小于 1023 的数据包)。
示例,过滤通过网关“snup”且其发送的长度超过513字节的IPv4数据包(ip[2:2]代表 ip 数据包的第二个字节起始的连续两个字节组成的数值):
gateway snup and ip[2:2] > 513
**注意: **更多捕获过滤器的使用可以参考说明 capture filters-wiki 以及 capture_filters_gitlab.
下一篇:显示过滤器的基本使用 .
(码字不易,谢谢点赞或收藏).