捕获 WEP 攻击所需的 WEP 初始化向量

Beginner
立即练习

引言

WEP (Wired Equivalent Privacy) 是一种过时且不安全的 Wi-Fi 安全协议。其主要弱点在于初始化向量 (Initialization Vectors, IVs) 的实现方式,IVs 在加密过程中被使用。通过捕获大量 IVs,攻击者可以分析它们来发现 WEP 密钥。

在本实验中,你将学习 WEP 攻击的第一个也是最关键的阶段:捕获包含这些有价值 IVs 的网络数据包。你将使用 airodump-ng,这是 Aircrack-ng 套件中的一个强大工具,来监控目标 WEP 网络并收集必要的数据。本实验为你理解 WEP 漏洞如何在实践中被利用奠定了基础。

启动 airodump-ng 针对 WEP 加密网络

在此步骤中,你将首先把无线网卡置于“监听模式”(monitor mode)。此模式允许网卡监听空中所有的 Wi-Fi 流量,而不仅仅是发往自身地址的流量。然后,你将使用 airodump-ng 来开始捕获特定目标网络的流量包。

首先,让我们在 wlan0 接口上启用监听模式。airmon-ng 命令用于此目的。它可能会创建一个新的虚拟接口,通常命名为 wlan0mon

在你的终端中执行以下命令:

sudo airmon-ng start wlan0

输出将确认监听模式已启用。现在,你可以使用 airodump-ng 来针对特定网络。在本实验中,我们将假设我们的目标网络 BSSID 为 00:11:22:33:44:55,并且运行在信道 6 上。

运行以下命令。这将启动捕获过程,你的终端将充满关于目标网络的信息。

注意:此命令将占用你当前的终端窗口。你需要点击终端标签栏中的 "+" 图标打开一个新的终端来执行后续步骤。请保持此命令运行。

sudo airodump-ng --bssid 00:11:22:33:44:55 --channel 6 wlan0mon
  • --bssid 00:11:22:33:44:55: 此选项告诉 airodump-ng 只捕获来自此特定 MAC 地址接入点 (access point) 的流量包。
  • --channel 6: 此选项指定目标网络所在的信道。
  • wlan0mon: 这是我们处于监听模式的接口名称。

观察 airodump-ng 输出

在此步骤中,你将分析 airodump-ng 显示的信息。在你的第一个终端中,让上一步的命令继续运行,然后我们来检查它的输出。

airodump-ng 屏幕分为两个主要部分。上半部分列出了它检测到的接入点 (access points),下半部分列出了连接到它们的客户端。

以下是上半部分示例:

 BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC   CIPHER AUTH ESSID

 00:11:22:33:44:55  -30       10        0    0   6  54   WEP   WEP         MyWEPNetwork

让我们来解析一下对我们任务最重要的几列:

  • BSSID: 接入点的 MAC 地址。
  • PWR: 信号强度级别。数值越大(越接近 0),信号越强。
  • Beacons: 这是接入点发送的管理帧,用于宣告其存在。
  • #Data: 这是 WEP 攻击中最关键的一列。它统计了包含初始化向量 (IVs) 的已捕获数据包的数量。
  • CH: 网络运行的信道。
  • ESSID: Wi-Fi 网络的可读名称。

在有活跃用户的真实环境中,你会看到 #Data 计数稳定增加。每一次增加都代表捕获了一个新的 IV,让你离破解密钥更近一步。在本实验中,由于没有实时流量,该数字可能不会增加。

理解 IVs 在 WEP 破解中的重要性

在此步骤中,我们将花点时间来理解为什么收集数据包对于破解 WEP 加密如此重要。这是一个概念性的步骤,无需运行任何命令。

WEP 加密使用一个共享密钥,并结合一个称为初始化向量 (Initialization Vector, IV) 的 24 位值来加密每个数据包。IV 作为数据包的一部分以明文形式发送,这是一个根本性的设计缺陷。

这就是为什么这是一个问题:

  1. IV 大小有限: 24 位的 IV 意味着只有大约 1670 万个可能的 IV。在繁忙的网络中,这些 IV 会很快被重复使用。
  2. IV 重复使用: 当相同的 IV 与相同的密钥重复使用时,会在加密数据中产生可供分析的模式。
  3. 弱 IV: 这些 IV 中的一部分被认为是“弱的”。捕获到的弱 IV 会泄露少量关于密钥本身的信息。

WEP 攻击的核心原理是收集大量数据包,从中提取 IV,并分析这些 IV 的集合(尤其是弱 IV)来统计推导出原始 WEP 密钥。你在 airodump-ng 中观察到的 #Data 列,直接统计了你收集到的这些关键 IV 的数量。如果没有足够数量的 IV,像 aircrack-ng 这样的破解工具将没有数据可用,从而导致失败。

等待足够的数据包累积

在此步骤中,你通常需要等待 airodump-ng 中的 #Data 计数达到足够高的数字。这是真实世界 WEP 攻击中最耗时的部分。

多少 IV 才算“足够”?

  • 对于 64 位 WEP 密钥(通常称为 40 位),你通常需要大约 5,000 到 10,000 个 IV。
  • 对于 128 位 WEP 密钥(通常称为 104 位),需求要高得多,通常在 20,000 到 100,000 个 IV 之间,甚至更多。

你收集的 IV 越多,成功破解的概率就越高。在真实场景中,你会让 airodump-ng 进程持续运行,等待这个数字增长。为了加快速度,攻击者可能会执行“ARP 重放攻击”来主动生成大量流量,但这超出了本实验的范围。

在本实验中,我们将假设已经过去了足够的时间,并收集了足够数量的数据包。你现在可以继续进行最后一步,保存捕获的数据。

将包含 IVs 的捕获数据保存到文件

在最后一步,你将停止捕获进程并将所有收集到的数据保存到文件中。这个文件随后可以被其他工具(如 aircrack-ng)使用,以执行实际的密钥破解。

首先,回到运行 airodump-ng 的终端,按下 Ctrl+C 来停止它。

现在,我们将再次运行该命令,但这次会添加 --write(或 -w)选项来保存输出。这会告诉 airodump-ng 将所有捕获的数据包写入文件。

在你的终端中,运行以下命令。我们将捕获文件命名为 wep_capture

sudo airodump-ng --bssid 00:11:22:33:44:55 --channel 6 --write wep_capture wlan0mon

让该命令运行几秒钟,然后按下 Ctrl+C 来停止它。

现在,使用 ls 命令查看在你的 ~/project 目录中创建的文件。

ls -l

你应该会看到几个以 wep_capture 开头的文件,包括 wep_capture-01.cap

-rw-r--r-- 1 root root  1234 Jan 01 12:00 wep_capture-01.cap
-rw-r--r-- 1 root root  5678 Jan 01 12:00 wep_capture-01.csv
...

最重要的文件是 wep_capture-01.cap。这个 .cap 文件包含原始数据包数据,包括你收集到的所有 IV。它是 WEP 破解过程的主要输入。

总结

在本实验中,你成功完成了 WEP 攻击的第一阶段,也是最基础的阶段。你学会了如何使用 Aircrack-ng 套件中的工具来捕获破解 WEP 密钥所需的数据。

具体来说,你学会了:

  • 使用 airmon-ng 在无线接口上启用监听模式(monitor mode)。
  • 使用 airodump-ng 通过 BSSID 和信道来定位特定的 WEP 加密网络。
  • 理解 airodump-ng 的输出,特别是 #Data 列的重要性,该列统计了捕获到的初始化向量(IVs)数量。
  • 认识到为什么需要大量的 IVs 来利用 WEP 协议的弱点。
  • 将捕获的数据包数据保存到 .cap 文件,该文件现在已准备好进行分析。

你创建的 wep_capture-01.cap 文件是此过程的关键产物。在后续的实验中,你将把这个文件输入到 aircrack-ng 中,以执行最后一步:破解 WEP 密钥。