通过 ARP 重放攻击加速 WEP IV 捕获

Beginner
立即练习

引言

欢迎来到本次关于加速 WEP IV 捕获的实验。WEP (Wired Equivalent Privacy) 是一种过时且不安全的 Wi-Fi 安全协议。其主要弱点在于初始化向量 (Initialization Vectors, IVs) 的使用方式。要破解 WEP 密钥,攻击者需要捕获大量数据包,每个数据包都包含一个唯一的 IV。

被动等待网络生成足够的流量来捕获数万个 IV 可能需要数小时甚至数天。为了克服这个问题,我们可以使用一种称为 ARP 重放攻击 (ARP Replay Attack) 的主动技术。此攻击涉及捕获网络中的 ARP 数据包,然后将其重新注入(或“重放”)回去。这会欺骗接入点 (Access Point, AP) 生成大量新数据包,每个数据包都带有一个新的 IV,从而使我们能在几分钟内收集到所需数据。

在本次实验中,你将使用 Aircrack-ng 套件中的 aireplay-ng 工具来执行 ARP 重放攻击。我们将假定你已经将无线网卡置于监听模式 (monitor mode)。

使用 aireplay-ng 执行伪认证 -1

在此步骤中,你将与目标接入点 (AP) 执行“伪认证” (fake authentication)。在我们能够向网络注入任何数据包之前,我们的设备需要与 AP 关联。伪认证攻击建立这种关联,让 AP 认为我们是一个合法的客户端。

在本实验中,我们将使用以下模拟目标信息:

  • 接口 (Interface): wlan0mon
  • ESSID (网络名称): labex-wep
  • BSSID (AP MAC 地址): 00:11:22:33:44:55
  • 我们的 MAC 地址: 00:C0:CA:A1:B2:C3

现在,在你的终端中执行以下命令来执行伪认证。-1 指定伪认证攻击,0 将重关联时序设置为自动,-e 指定 ESSID,-a 指定 BSSID,-h 指定我们的源 MAC 地址。

sudo aireplay-ng -1 0 -e labex-wep -a 00:11:22:33:44:55 -h 00:C0:CA:A1:B2:C3 wlan0mon

在真实环境中,你将看到指示进度的输出。成功执行将显示类似“Authentication successful”和“Association successful”的消息。由于实验环境的限制,该命令可能不会产生完整的真实世界输出,但执行它是至关重要的第一步。

12:34:56  Waiting for beacon frame (BSSID: 00:11:22:33:44:55) on channel 6
12:34:56  Sending Authentication Request (Open System) [ACK]
12:34:57  Authentication successful
12:34:57  Sending Association Request [ACK]
12:34:57  Association successful :-) (AID: 1)

在建立关联后,我们可以继续进行主要攻击。

使用 aireplay-ng 发起 ARP 重放攻击 -3

在此步骤中,你将发起 ARP 重放攻击。此攻击由 aireplay-ng 中的 -3 标志指定,它会监听网络上的 ARP 数据包。一旦捕获到一个数据包,它将开始重放该数据包,以生成大量的新的 IV。

重要的是要在自己的终端窗口中运行此攻击,因为它将持续运行。请为该命令打开一个新的终端。你可以通过点击终端标签栏中的 + 图标来完成此操作。

新终端中,执行以下命令。-3 标志启动 ARP 重放攻击,-b 指定目标 BSSID(AP),-h 指定我们的源 MAC 地址(我们用于认证的地址)。

sudo aireplay-ng -3 -b 00:11:22:33:44:55 -h 00:C0:CA:A1:B2:C3 wlan0mon

运行命令后,aireplay-ng 将开始监听。输出最初会显示它正在等待 ARP 数据包。

Saving ARP requests in replay_arp-1234-567890.cap
You should also start airodump-ng to capture replies.
Read 0 packets (got 0 ARP requests, 0 ACKs), sent 0 packets...(0 pps)

该工具现在处于被动监听状态。它需要捕获至少一个 ARP 数据包才能开始重放过程。在下一步中,我们将设置一个监控工具来观察我们的进展。保持此终端运行。

使用 airodump-ng 监控 IV 捕获

在此步骤中,你将使用 airodump-ng 来监控网络,更重要的是,查看你的 ARP 重放攻击的结果。airodump-ng 将捕获攻击生成的所有数据包并将其保存到文件中。捕获的数据包 (IVs) 的数量是成功的关键指标。

此命令也需要在自己的终端中持续运行。请通过再次点击 + 图标打开第三个终端窗口。

在此新终端中,运行以下 airodump-ng 命令。

  • --bssid: 将捕获范围聚焦于我们的目标 AP。
  • -c 6: 将通道设置为 6(假设 AP 在此通道上)。
  • --write wep_capture: 告诉 airodump-ng 将捕获的数据包保存到以 wep_capture 为前缀的文件中。
  • wlan0mon: 要使用的监控模式接口。
sudo airodump-ng --bssid 00:11:22:33:44:55 -c 6 --write wep_capture wlan0mon

运行命令后,你将看到 airodump-ng 界面。密切关注我们目标 BSSID 的 #Data 列。这个数字代表捕获的 IVs 的计数。

 CH  6 ][ Elapsed: 0 s ][ 2023-10-27 10:10

 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         labex-wep

 BSSID              STATION            PWR   Rate    Lost    Frames  Probe

最初,#Data 计数将为零或非常低。一旦 aireplay-ng 攻击(来自步骤 2)捕获了一个 ARP 数据包并开始注入,你将看到这个数字迅速增加。保持此终端运行,并继续下一步以理解该过程。

理解 ARP 重放如何生成可注入流量

此步骤是概念性的;你无需运行任何新命令。目标是理解你的三个终端窗口正在发生什么。

在实际场景中,你现在会等待网络上的合法客户端发送 ARP 请求(例如,当它首次加入网络或尝试查找其他设备时)。

  1. 捕获 (Capture): 你的 aireplay-ng -3 进程(在第二个终端中)正在等待这种情况发生。一旦它捕获到一个 ARP 数据包,其输出将会改变。它会指示已读取一个数据包,并正在保存它。

    Read 147 packets (got 1 ARP request), sent 0 packets...(0 pps)
  2. 重放 (Replay): 在捕获 ARP 数据包后,aireplay-ng 会立即开始将其重放注入网络。你将看到“sent”计数器快速增加。

    Read 250 packets (got 1 ARP request), sent 86 packets...(102 pps)
  3. 生成 (Generate): AP 接收到这些重放的 ARP 数据包。对于它收到的每一个数据包,它都会广播一个回复。每个回复都使用 WEP 加密,并包含一个新颖的、唯一的 IV。

  4. 监控 (Monitor): 你的 airodump-ng 进程(在第三个终端中)捕获了 AP 发送的所有这些回复。你将看到目标网络的 #Data 列开始急剧上升,通常每秒增加数百个。

这个反馈循环是攻击的核心。我们使用一个捕获的 ARP 数据包来欺骗 AP 为我们生成数千个新数据包,从而极大地加速了 IV 收集过程。

收集超过 20000 个 IVs 后停止攻击

在此最后一步中,你将在收集到足够数量的 IVs 后停止攻击。要破解 WEP 密钥,通常的目标是 20,000 到 40,000 个 IVs,尽管根据密钥强度可能需要更多。

对于本次实验,我们将计数超过 20,000 后停止。

请在你的 airodump-ng 终端(你打开的第三个终端)中观察 #Data 列。一旦该值大于 20,000,你就可以停止捕获和攻击。

要停止进程,请转到两个正在运行的终端(airodump-ngaireplay-ng)中的每一个,然后按 Ctrl+C。最好先停止 airodump-ng,以确保所有数据包都已写入文件。

停止进程后,airodump-ng 命令将在你的 ~/project 目录中创建几个文件。其中最重要的是捕获文件,其后缀为 .cap。让我们列出文件以确认它已被创建。

ls -l

你应该会看到类似以下的输出,确认 wep_capture-01.cap 的存在。

-rw-r--r-- 1 root root 2450000 Oct 27 10:15 wep_capture-01.cap
-rw-r--r-- 1 root root   78123 Oct 27 10:15 wep_capture-01.csv
...

这个 .cap 文件包含了你收集到的所有 IVs,现在可以与 aircrack-ng 一起使用来破解 WEP 密钥。

总结

在本次实验中,你已成功学会了如何对受 WEP 保护的网络执行最有效的攻击之一。

你首先使用 aireplay-ng -1 执行了伪造身份验证,将你的设备与目标接入点(Access Point)关联。然后,你启动了本次实验的核心——ARP 重放攻击,使用 aireplay-ng -3 来监听和重放 ARP 数据包。你还设置了 airodump-ng 来监控网络并捕获产生的流量。

你了解到此攻击如何创建一个反馈循环,欺骗 AP 每分钟生成数千个新的数据包(IVs)。最后,你在收集到足够数量的 IVs 后停止了攻击,得到一个可用于破解的 .cap 文件。这种主动技术比被动等待网络流量要高效得多。下一步,也是本次实验范围之外的,将是使用 aircrack-ngwep_capture-01.cap 文件进行操作以恢复 WEP 密钥。