Windows 上的 Wireshark 抓包教程 |
您所在的位置:网站首页 › ce抓包 › Windows 上的 Wireshark 抓包教程 |
在 Windows 10 系统下使用 Wireshark 抓 Wi-Fi 无线空包的详细教程 安装 Wireshark 关于 Wireshark Wireshark(前身 Ethereal)是一个网络包分析工具。该工具主要是用来捕获网络数据包,并自动解析数据包,为用户显示数据包的详细信息,供用户对数据包进行分析。它可以运行在 Windows 和 Linux 操作系统上。可以使用该工具捕获并分析各类协议数据包,本文将讲解该工具的安装及基本使用方法。 下载及安装 Kali Linux 系统自带 Wireshark 工具,而 Windows 系统中默认没有安装该工具。 进入 Wireshark 官网,单击 Get started 进入下载页面。 在 Stable Release 部分可以看到目前 Wireshark 的最新版本是 4.2.4,并提供了 Windows(32 位和64 位)、Mac OS 和源码包的下载地址。您可以根据自己的操作系统下载相应的软件包。 这里下载 Windows64 位的安装包。选择 Windows Installer(64-bit),进行下载,下载后的文件名为 Wireshark-win64-4.2.4.exe。双击下载的软件包进行安装。安装使用默认值单击 Next 按钮即可。过程中需要注意: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),其次需要考虑的是网卡支持的无线协议和传输速率。 监听模式(Monitor Mode) 监听模式,或 RFMON(Radio Frequency Monitor),是指无线网卡可以接收所有经过它的数据流的工作方式,对应于 IEEE 802.11 网卡的其他模式,诸如 Master(路由器)、Managed(普通模式的网卡)、Ad-hoc 等。监听模式不区分所接收数据包的目标 MAC 地址,这点和混杂模式类似。然而和混杂模式不同的是,监听模式不需要和无线接入点(AP)或 Ad-hoc 网络建立连接。监听模式是无线网卡特有的特殊模式,而混杂模式应用于有线网卡和无线网卡。监听模式通常用于网络发现、流量监听和分组分析。 (来源:https://en.wikipedia.org/wiki/Monitor_mode) 判断网卡支持的模式 可以通过 Npcap 工具查看当前网卡的模式、支持的模式并打开监听模式。 1.win+R 或开始菜单输入 cmd 打开 cmd 命令提示符窗口: 2. 查看网卡的 GUID,输入 netsh wlan show interfaces 3. 查看当前模式,复制 GUID,然后再输 WIanHelper.exe + GUID + modes,如: 即可查看网卡支持的模式,许多笔记本自带的网卡只会有 managed 模式,此时就需要另外购买支持监听模式的无线网卡。 4. 为网卡打开监听模式,输入 WlanHelper.exe + GUID + mode monitor,如: 成功会提示 Success 注意:cmd 需要用管理员权限打开,否则无法打开监听模式并报错。也可输入 mode 查看当前的模式,更多 WlanHelper 的用法可键入 WlanHelper.exe -h 查看。 网卡挑选 根据抓包需求挑选合适的无线抓包网卡,如果需要抓取 Wi-Fi 6 的包,那就需要选择支持 802.11 ax 协议的无线网卡。Wi-Fi 协议版本的对照表参考如下: 可以在购物网站搜索 无线抓包、 抓包网卡 等关键字,一般带有抓包功能的网卡都支持监听模式。 如果商品没有详细介绍参数,但有提供所使用的无线芯片型号,可以直接搜索型号查看该芯片的详细参数: 本文以雷凌芯片 RT3572 的思科抓包网卡为例,该芯片支持 802.11n 最高速率 300 Mbps,可以抓取 Wi-Fi 4 协议的空包。 配置网卡驱动网卡到手后,需要安装对应的驱动程序,现在一些网卡是插上即用免安装,插上网卡后打开 控制面板 - 设备管理器,在 网络适配器 栏中找到新插入的网卡,双击可查看详细信息,如驱动不适配,会有黄色三角形 如果您的网卡插上不能用,本文介绍三种方法获得网卡的驱动: 使用购买网卡时商家提供的安装方法,包括但不限于:商家提供下载链接和安装方法,网卡自带储存盘内有对应驱动。 使用驱动精灵、驱动大师等第三方一键装机软件,自动为网卡安装合适的驱动。 搜索网卡型号或无线芯片的型号,去对应的芯片官网或第三方软件直接下载对应驱动。 安装完毕后,有些网卡需要重启电脑来适配。安装成功后,点开右下角的 网络适配器 - WLAN 即可搜索到周围的路由器: Wireshark 捕获数据包 安装好 Wireshark 以后,就可以运行它来捕获数据包了,启动 Wireshark: 该图为 Wireshark 的主界面,界面中显示了当前可使用的接口,例如 本地连接8 、 WLAN 2 等。要想捕获数据包,必须先选择一个接口,表示捕获该接口上的数据包。关于网络结构和协议的基础概念,可以参考博客: 关于 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 命令提示符窗口,按照前文 :ref:`判断网卡支持的模式` 章节介绍的方法打开网卡的监听模式。 注意:打开该模式后已连接的网络会断连,这属于正常现象,因为普通网卡模式是 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 抓包教程 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |