一、实验目的

掌握Wireshark 的简单使用,如:网络接口的选择、抓包任务的创建、启动与停止 抓包、查看分析数据包、显示过滤器的简单设置等。

二、实验器材

笔记本电脑、支持Kali的无线网卡,VMware虚拟机软件和Kali系统。

三、实验步骤

步骤一:

在VMware虚拟机软件启动Kali系统 过程(略)

步骤二:

连接、启动和设置USB无线网卡。 将USB无线网卡插入到笔记本电脑,并通过如下图所示方式确保将USB无线网卡连 接到虚拟机中的Kali系统。

或者插入无线网卡的时候就会蹦出弹窗,连接到虚拟机,选择所用虚拟机就好了

在控制终端输入如下图所示的命令,检查无线网卡的连接情况。

iwconfig

如果无线网卡处于关闭状态,则使用如下图所示的命令开启无线网卡。

ifconfig wlan0 up

再使用如下图所示的命令检查无线网卡的状态。

ifconfig wlan0

使用如下图所示命令将无线网卡设置为监听模式。

airmon-ng start wlan0

使用如下图所示命令查看无线网卡是否已经设置为监听模式。

iwconfig

步骤三:

运行Wireshark软件进行抓包操作。 可以使用如下图所示的方式启动Wireshark软件。

Wireshark 的主界面如下图所示。

在上图所示的界面中选择需要监听的信道(若没有出现上图所示的工具栏,可通过 勾选“视图”菜单中的“无线工具栏”显示该工具栏)和需要进行抓包的网络接口,单 击 开始抓包,抓包效果如下图所示。期间浏览一些网页(最好有表单数据提交,例 如登录功能),以便产生一些 HTTP 包,抓取一段时间后单击“ ”停止抓包。

问题1:如果抓不到包,通常是由以下原因导致的,可以按顺序排查:

1. 接口状态检查(最常见原因)

虽然 wlan0mon 显示在列表中,但它可能没有真正进入“监听模式”或没有正确绑定到信道。

  • 原因wlan0mon 通常是由 airmon-ng start wlan0 命令生成的。如果生成过程出错,或者在生成后网卡被其他进程(如 NetworkManager)重置了,它就无法抓包。
  • 解决方法
    • 在终端输入 iwconfig 查看 wlan0mon 的状态。确保其 Mode 显示为 Monitor
    • 如果没有显示 Monitor,请尝试重启监听模式:
      1airmon-ng check kill   # 杀掉干扰进程
      2airmon-ng stop wlan0mon # 停止旧的监听
      3airmon-ng start wlan0   # 重新开启

2. 信道未锁定

Wi-Fi 监听模式通常需要锁定在一个特定的信道上才能抓到包。如果网卡在自动跳频,或者锁定在了一个没有流量的信道上,就会显示为空。

  • 原因:网卡默认可能锁定在信道 1,而你周围的路由器都在信道 6 或 11。
  • 解决方法
    • 在终端手动切换信道测试(例如切换到信道 6):
      1iwconfig wlan0mon channel 6
    • 或者使用 airodump-ng wlan0mon 看看能否扫描到周围的 AP。如果 airodump-ng 能看到数据,但 Wireshark 看不到,说明是 Wireshark 的配置问题;如果 airodump-ng 也看不到,说明是网卡驱动或硬件问题。

3. 网卡驱动不支持注入/监听

并非所有无线网卡都支持真正的监听模式(Monitor Mode)。

  • 原因:很多板载网卡或廉价的 USB 网卡虽然能创建 wlan0mon 接口,但实际上无法接收所有数据包(特别是非自己连接的数据包)。
  • 解决方法
    • 确认你的网卡芯片型号(如 RTL8812AU, AR9271 等是常见的支持监听的芯片)。
    • 使用 airmon-ng 检查是否有 "packet injection" 失败的提示。

4. Wireshark 权限问题

虽然截图显示你是以 root 或 sudo 权限运行的(通常 Kali Linux 下默认如此),但如果权限不足,Wireshark 可能无法从底层接口读取数据。

  • 解决方法
    • 确保你是通过 sudo wireshark 启动的,或者已经将当前用户加入了 wireshark 用户组。

5. 物理环境问题

  • 原因:你所在的区域可能真的没有 Wi-Fi 信号,或者信号太弱。
  • 验证方法:看截图右侧的波形图,wlan0 有波动,说明有流量。但 wlan0mon 下面的波形是一条直线(或者波动极小),这确实表明它没有接收到数据帧。

建议的操作步骤

  1. 打开终端,运行 airodump-ng wlan0mon
  2. 观察终端里是否有数据跳动。
    • 如果有:说明网卡工作正常,关闭 Wireshark 重新打开,再次尝试选择 wlan0mon 开始捕获。
    • 如果没有:说明网卡监听模式有问题,请尝试更换信道或重启网卡。

我操作的时候是,当前的软件配置环境有问题,这直接导致了无法抓包。

简单来说:硬件是支持监听的,但被系统里的后台程序“干扰”了。

第一步:杀掉干扰进程

这是最关键的一步,直接解决截图中的警告。输入以下命令:

airmon-ng check kill

执行后,你会看到系统提示 Killing 了 NetworkManager 和 wpa_supplicant 等进程。

第二步:重启监听模式

杀掉进程后,之前的 wlan0mon 接口可能已经失效或状态不对,建议重新开启一次:

airmon-ng start wlan0

此时,系统应该不会再报“Found processes”的警告了。

第三步:锁定信道(可选但推荐)

为了防止网卡乱跳,建议手动锁定一个信道(比如信道 6,这是最常见的信道):

iwconfig wlan0mon channel 6

(注意:如果你的接口名变成了 wlan0mon,就用这个名字;如果变成了 mon0,就用 mon0)

第四步:验证与抓包
  1. 验证: 输入 iwconfig,确认 wlan0mon 的 Mode 是 Monitor
  2. 测试: 此时不要急着开 Wireshark,先用 airodump-ng wlan0mon 看看能不能刷出周围的 Wi-Fi 列表。
    • 如果能刷出列表:说明监听模式成功了!这时候再去打开 Wireshark,选择 wlan0mon 开始抓包,应该就能看到数据了。
    • 如果还是刷不出列表:那才需要考虑是否是 USB 接口接触不良,或者该版本的驱动与内核不兼容(虽然 RT5370 通常很稳)。

总结:驱动没问题,执行 airmon-ng check kill 清理一下环境即可。

步骤四:

在Wireshark中使用显示过滤器查看MAC层帧。

在上图所示界面中过滤器框中如下图所示的过滤表达式,按回车后,使网络报文列 表区只显示信标帧,并查看指定无线路由器的信道。

wlan.fc.subtype==8 &&wlan.fc.type==0

在上图所示界面中过滤器框中如下图所示的过滤表达式,按回车后,使网络报文列 表区只显示关联请求帧(需要较长时间才能抓紧它),并查看该帧的发送者和接收者MAC 地址。

过滤器框中如下图所示的过滤表达式,按回车后,使网络报文列表区只显示关联响应帧(需要较长时间才能抓紧它),并查看该帧的发送者和接收者 MAC 地址。

过滤器框中如下图所示的过滤表达式,按回车后,使网络报文列表区只显示授权帧 (需要较长时间才能抓紧它),并查看该帧的发送者和接收者 MAC 地址。

步骤五:

在Wireshark中使用显示过滤器查看应用层协议包。

过滤器框中如下图所示的过滤表达式,按回车后,网络报文列表区只显示 HTTP 相关的数据包

http

在数据包细节窗口查看该HTTP协议包的相关信息,重点查看IP层的源地址和目标 地址,TCP 层的源端口和目标端口,HTTP层的Host域等信息。(可对敏感信息显示部分进行处理)

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐