问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Windows 上的 Wireshark 抓包教程

创作时间:
作者:
@小白创作中心

Windows 上的 Wireshark 抓包教程

引用
1
来源
1.
https://www.bilibili.com/read/mobile?id=35076961

Wireshark是一个功能强大的网络数据包分析工具,广泛应用于网络故障排查、性能优化和安全审计等领域。本文将详细介绍如何在Windows系统上安装和配置Wireshark,以及如何使用它来抓取和分析网络数据包。

安装Wireshark

关于Wireshark

Wireshark(前身Ethereal)是一个网络包分析工具。该工具主要是用来捕获网络数据包,并自动解析数据包,为用户显示数据包的详细信息,供用户对数据包进行分析。它可以运行在Windows和Linux操作系统上。可以使用该工具捕获并分析各类协议数据包,本文将讲解该工具的安装及基本使用方法。

下载及安装

Windows系统中默认没有安装Wireshark,需要从官网下载安装。进入Wireshark官网,单击Get started进入下载页面。在Stable Release部分可以看到目前Wireshark的最新版本,并提供了Windows(32位和64位)、Mac OS和源码包的下载地址。您可以根据自己的操作系统下载相应的软件包。

这里下载Windows64位的安装包。选择,进行下载,下载后的文件名为。双击下载的软件包进行安装。安装使用默认值单击按钮即可。过程中需要注意:Wireshark会向客户询问是否同步安装Npcap插件(默认勾选)。

Npcap是由Nmap项目创建的高级数据包捕获和网络嗅探软件工具,它是一个轻量级但功能强大的平台,使用户能够在Windows操作系统上执行实时网络流量分析和监控。该步骤需要注意Npcap的版本,早期的Npcap-1.7.1版本无法使用cmd打开网卡的monitor mode,在1.76版本后已修复。目前最新下载的Wireshark自带的是1.78版本,可以直接安装。

注意:Npcap会弹窗进入第二个安装页面,需要勾选下图两个选项(默认没有勾选),不然无法抓取802.11包。

安装好以后,在Windows的“开始”菜单中会出现Wireshark图标。

抓包网卡

监听模式(Monitor Mode)

监听模式,或RFMON(Radio Frequency Monitor),是指无线网卡可以接收所有经过它的数据流的工作方式,对应于IEEE 802.11网卡的其他模式,诸如Master(路由器)、Managed(普通模式的网卡)、Ad-hoc等。监听模式不区分所接收数据包的目标MAC地址,这点和混杂模式类似。然而和混杂模式不同的是,监听模式不需要和无线接入点(AP)或Ad-hoc网络建立连接。监听模式是无线网卡特有的特殊模式,而混杂模式应用于有线网卡和无线网卡。监听模式通常用于网络发现、流量监听和分组分析。

判断网卡支持的模式

可以通过Npcap工具查看当前网卡的模式、支持的模式并打开监听模式。或开始菜单输入打开cmd命令提示符窗口:

  1. 查看网卡的GUID,输入netsh wlan show interfaces
  2. 查看当前模式,复制GUID,然后再输WlanHelper.exe + GUID + modes,如:
    即可查看网卡支持的模式,许多笔记本自带的网卡只会有managed模式,此时就需要另外购买支持监听模式的无线网卡。
  3. 为网卡打开监听模式,输入,如:
    成功会提示

注意:
网卡挑选
根据抓包需求挑选合适的无线抓包网卡,如果需要抓取Wi-Fi 6的包,那就需要选择支持802.11 ax协议的无线网卡。Wi-Fi协议版本的对照表参考如下:

可以在购物网站搜索、等关键字,一般带有抓包功能的网卡都支持监听模式。如果商品没有详细介绍参数,但有提供所使用的无线芯片型号,可以直接搜索型号查看该芯片的详细参数:

本文以雷凌芯片RT3572的思科抓包网卡为例,该芯片支持802.11n最高速率300 Mbps,可以抓取Wi-Fi 4协议的空包。

配置网卡驱动

网卡到手后,需要安装对应的驱动程序,现在一些网卡是插上即用免安装,插上网卡后打开, 在栏中找到新插入的网卡,双击可查看详细信息,如驱动不适配,会有黄色三角形

如果您的网卡插上不能用,本文介绍三种方法获得网卡的驱动:

  • 使用购买网卡时商家提供的安装方法,包括但不限于:商家提供下载链接和安装方法,网卡自带储存盘内有对应驱动。
  • 使用驱动精灵、驱动大师等第三方一键装机软件,自动为网卡安装合适的驱动。
  • 搜索网卡型号或无线芯片的型号,去对应的芯片官网或第三方软件直接下载对应驱动。

安装完毕后,有些网卡需要重启电脑来适配。安装成功后,点开右下角的即可搜索到周围的路由器:

Wireshark捕获数据包

安装好Wireshark以后,就可以运行它来捕获数据包了,启动Wireshark:

该图为Wireshark的主界面,界面中显示了当前可使用的接口,例如、等。要想捕获数据包,必须先选择一个接口,表示捕获该接口上的数据包。关于网络结构和协议的基础概念,可以参考博客:关于Wi-Fi网络基本原理了解

抓取以太网数据包

可以使用Wireshark抓取本机网卡的数据包,并分析抓取的数据包。

注意:本机访问本机的回环数据localhost是不经过网卡的,需要指定回环数据也要先转发到网关,才能使用Wireshark抓取。也可以使用Wireshark打开其他抓包工具生成的抓包文件,使用Wireshark分析该抓包文件。

选择捕获以太网4接口上的数据包,然后单击左上角的开始捕获或直接双击接口名,将进行捕获网络数据,当本地计算机浏览网站时,本地连接接口的数据将会被Wireshark捕获到:

Wireshark将一直捕获上的数据。如果不需要再捕获,可以单击左上角的按钮,停止捕获。

抓取Wi-Fi无线数据包

设置捕获选项

菜单栏捕获-选项(快捷键Ctrl + k)可进入捕获选项设置界面:

需要选择刚才配置好的无线网卡,点开下拉菜单可查看对应IP地址:

注意:连接路由器前后的IP地址会变,请通过捕获-刷新接口列表(快捷键F5)获取最新的接口信息:

选择抓包网卡

不同的电脑配置的网络接口名称可能会不一样,可以通过以下几个方法确认抓包的无线网卡:

方法1:
连上一个无线网络后,win+R或开始菜单输入cmd打开cmd命令提示符窗口:

在命令栏输入ipconfig后回车,可以看到当前网络的接口信息,对应IP地址可确定无线网卡为WLAN 2:

方法2:
您也可以直接拔掉网卡,再在Wireshark中尝试使用WLAN 2捕获,系统提示找不到接口,或菜单-捕获-刷新接口列表,也可确定该网卡的接口名。

方法3:
打开cmd命令提示符窗口,输入netsh wlan show interfaces,即可查看到对应的无线网络接口信息。

确定需要抓取的信道

选择需要抓取的Wi-Fi信道,如果想抓取被测路由器的交互信息,可以按如下方法确认路由器的信道、带宽等信息:

方法1
打开cmd命令提示符窗口,电脑连接上被测路由器,输入netsh wlan show interfaces,即可查看当前连接的信道。

方法2
去路由器管理员设置界面查看,此处不展开。

方法3
手机下载Wi-Fi嗅探软件,如WiFi魔盒、wifiman、WiFi Analyzer、inSSIDer、WirelessMon等,都可查看周围的AP信息和信道分析。

设置网卡monitor信道

打开cmd命令提示符窗口,按照前文:判断网卡支持的模式章节介绍的方法打开网卡的监听模式。

注意:打开该模式后已连接的网络会断连,这属于正常现象,因为普通网卡模式是managed,后续抓包完成后可改回来。

打开监听模式,输入WlanHelper.exe + GUID + mode monitor如:

配置需要监听的信道,输入WlanHelper.exe + GUID + channel [value],如信道60:

配置Wireshark捕获选项

在input栏位选择对应网卡接口,不勾选混杂模式,勾选监控模式。

在输出栏位选择需要保存的路径和存储的格式。

点击开始或双击接口名即可抓取空中的无线网络数据包了。

Wireshark过滤器的使用

Wireshark设置了两个过滤器:捕获过滤器(capture filter)、显示过滤器(display filter)。

  1. 捕获过滤器:
    用于在开始捕获前设置过滤条件,设置过滤条件后,抓包工具将仅捕获与条件匹配的数据包;使用捕获过滤器可以减少抓取的网络数据包,减轻抓包软件和储存空间的负担,最终得到的抓包文件也较小,是提升效率必备技能;
  2. 显示过滤器:
    用于在捕获数据后设置过滤条件,设置过滤条件后,显示页面上将仅显示与条件匹配的数据包,有助于工程师分析报文。

捕获过滤器的基本使用

打开Wireshark软件后,如图所示的输入框就是输入捕获过滤条件的地方:

点击上图中绿色的小标签(或者通过菜单:捕获-捕获过滤器)即可打开常用的捕获表达式:

注:捕获表达式中的冒号:,通常起解释说明的意思,无实意。

捕获过滤表达式的语法

Wireshark捕获过滤器表达式遵循libpcap语法。过滤器表达式由一个或多个原语组成。原语通常由一个id(名称或数字)和一个或多个修饰符组成。

  1. 过滤表达式 = 原语1 + 原语2 + ...
  2. 原语 = id + 修饰符1 + 修饰符2 + ...
  3. 原语之间可以通过逻辑连接符和括号()进行组合,逻辑连接符包括:
  • 与:可用符号&&或者文字and来表示
  • 或:可用符号‖或者文字or来表示
  • 非:可用符号!或者文字not来表示

如该示例表示仅捕获通过网关sup并且属于FTP端口或者数据的数据包:

如该示例表示不捕获arp类型的数据包:

如该示例表示仅捕获tcp或udp类型的数据包:

值得一提的是,该过滤器自带语法检测,底框绿色即代表语法正确。

更多捕获过滤器的使用方法与示例可参考Wireshark官方说明capture filters wiki以及capture filters Gitlab。

显示过滤器的基本使用

进入到抓包页面后,点击下图中的标签,或者通过菜单分析- display filters即可打开常用的显示过滤表达式:

显示过滤表达式的语法

与捕获过滤表达式类似,显示过滤表达式也可看作原语的组合。不同的是,显示过滤表达式的原语由“选项+选项关系+选项值”组成。如tcp.port == 80中,tcp.port是选项,==是选项关系,80是选项值,整个表达式表示的是:仅显示tcp端口号(包括发送、接收)为80的数据包。

再次提醒,显示过滤表达式和捕获过滤表达式不能混淆,捕获过滤表达式的形式为:tcp port80。表达式中三个部分分别介绍如下:

  • 选项:选项可以是协议(如tcp、udp、http等)、帧(frame)等对象,这个在使用中参考已经有的示例或者直接输入协议名字,看是否有提示即可
  • 选项关系:用于定义选项与选项值的关系。常见的选项关系如下:
    表格来源:Wireshark官网
  • 选项值:选项值可以是数字,如十进制数字1500、十六进制数字0x5dc、二进制数字0b10111011100、布尔值(如1代表true,0代表false)、MAC地址类的数字(如eth.dst == ff:ff:ff:ff:ff:ff)、ip地址(如ip.addr == 192.168.0.1)、字符串(如http.request.uri == "https://ww.wireshark.org/")、时间(如ntp.xmt ge "2020-07-0412:34:56")等。

多个表达式也可以通过逻辑连接符连接起来,组合出高级的显示过滤表达式。

表格来源:Wireshark官网
其中,[…]表示子串选择符,如eth.src[0:3] == 00:00:83表示从偏移地址0开始的3个字节的数据为00:00:83的数据包。其中in表示成员选择符,常用于组成选项值的集合。如tcp.port in {80,441,8081}指的是过滤tcp端口为80、441、8081的数据包。其等同于tcp.port == 80 ‖ tcp.port == 441 ‖ tcp.port == 8081。

分析封包

在掌握Wireshark抓包方法后,即可对抓取到的包进行初步分析,下面是一些优秀的抓包分析示例:

  • Wireshark抓包分析WLAN连接过程
  • 使用wireshark分析Ping通信的具体流程
  • Wireshark抓包分析TCP三次握手

本文最后再分享一些分析封包中的Wireshark使用小技巧

小技巧1
除了手动在输入框内输入显示过滤表达式外,还可以选中抓包数据的某个选项,右键选择作为过滤器应用(Apply as Filter),根据需求选择选中或非选中或下面更高级的and or逻辑操作,如下图过滤了subtype为0x001b的RTS封包,该操作等同于在显示过滤器栏输入wlan.fc.type_subtype == 0x001b。

小技巧2
使用着色器协助进行各类封包的分析,选中抓包数据的某个选项,右键选择用过滤器应用着色即可对满足特定条件的封包着色,如下图把Receiver address为Espressif_4d:d4:ac (68:b6:b3:4d:d4:ac)的封包着色为颜色3:

可在视图-对话着色中管理或重置现有规则:

小技巧3
您可以将感兴趣的任意一项字段拖动到列表栏进行显示,比如下图把current channel栏位拖动到了Packet List Pane(数据包列表),这样就可以方便地对每一包的channel信息进行查看:

右键列表栏可管理每一个column的设置规则:

也可选择Edit column进行设置:

小技巧4
有时我们需要对复杂问题进行debug,会在不同设备抓取多份log,设置绝对时间戳可帮助跨设备定位复杂问题,按小技巧3的方法打开column设置栏,选择Absolute date,可显示每一包的绝对时间:

设置好后:

参考文档

  • 网络抓包工具Wireshark下载安装 & 使用详细教程
  • Wireshark基础使用-启用抓包与过滤
  • Wireshark基础使用-过滤并查看抓包数据
  • Windows下Wi-Fi抓包教程
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号