使用 Aircrack-ng 被动捕获 WPA 握手

Beginner
立即练习

引言

在本实验中,你将学习使用 Aircrack-ng 工具集捕获 WPA/WPA2 握手的基本知识。WPA 握手是客户端设备与无线接入点 (AP) 之间进行的四次消息交换,用于将客户端认证到网络。捕获此握手是测试 Wi-Fi 密码强度的第一步。

我们将专注于一种“被动”捕获方法。这意味着我们不会主动干扰网络或强制客户端断开连接。相反,我们将简单地监听无线电波,等待客户端自然连接或重新连接到目标 AP。这是无线安全审计的一种更隐蔽的方法。

你将使用 airmon-ng 在无线接口上启用监听模式 (monitor mode),并使用 airodump-ng 来捕获网络流量。在本实验结束时,你将拥有一个包含有效 WPA 握手的捕获文件,并且知道如何验证其内容。

使用 --bssid 和 --channel 锁定特定 AP

在此步骤中,你将准备无线接口以捕获数据包,然后开始监听特定接入点 (AP) 的流量。

首先,你需要将无线接口置于“监听模式”(monitor mode)。此模式允许网卡监听空气中的所有 Wi-Fi 流量,而不仅仅是发往自身地址的流量。我们将使用 airmon-ng 工具来实现这一点。我们模拟的无线接口名为 wlan0

在终端中执行以下命令以启动监听模式:

sudo airmon-ng start wlan0

你应该会看到输出表明监听模式已启用。新的监听接口很可能被命名为 wlan0mon

PHY     Interface       Driver          Chipset

phy0    wlan0           mac80211_hwsim  Software simulator
                (monitor mode enabled on wlan0mon)

现在监听模式已激活,你可以使用 airodump-ng 开始捕获。为了避免捕获附近所有网络的不必要流量,我们将锁定一个特定的 AP。在本实验中,我们将使用一个具有以下详细信息的模拟 AP:

  • BSSID (MAC 地址): 00:11:22:33:44:55
  • 信道 (Channel): 6

使用 --bssid--channel 标志来使 airodump-ng 专注于我们的目标。运行此命令:

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

你的终端现在将显示 airodump-ng 界面,其中包含目标 AP 的信息。保持此命令运行,然后继续下一步。

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

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

 00:11:22:33:44:55  -30       10        0    0   6  54e  WPA2 CCMP   PSK  TestAP

 BSSID              STATION            PWR   Rate    Lost    Frames  Probe

使用 -w 将捕获内容写入 .cap 文件

在上一步中,airodump-ng 仅在屏幕上显示实时流量。为了以后进行任何分析,你需要将捕获的数据包保存到文件中。

首先,通过在其终端中按 Ctrl+C 来停止正在运行的 airodump-ng 命令。

现在,你将再次运行相同的命令,但添加 -w (write) 标志。此标志告诉 airodump-ng 将捕获的数据包写入文件。你指定一个文件名前缀,airodump-ng 将使用该前缀创建几个文件,其中最重要的一个以 .cap 结尾。

让我们使用 passive_capture 作为文件名前缀。执行以下命令:

sudo airodump-ng --bssid 00:11:22:33:44:55 --channel 6 -w passive_capture wlan0mon

屏幕上的输出将与上一步相同,但现在所有原始数据包数据都将被保存到当前目录 (~/project) 中的文件中。主文件将命名为 passive_capture-01.cap

在进行下一步之前,请保持此命令运行,在下一步中我们将等待关键握手的发生。

等待客户端自然连接或重新连接

在此步骤中,你将了解捕获 WPA 握手所需的条件。在 airodump-ng 运行并保存到文件的情况下,你的设置已准备就绪。现在,你只需要等待握手发生。

WPA 握手仅在客户端设备向接入点 (AP) 进行身份验证时发生。在被动捕获场景中,这意味着你必须等待以下两种事件之一发生:

  1. 新客户端连接到 AP。
  2. 现有客户端断开连接然后重新连接到 AP。

此过程需要耐心,因为你无法控制这些事件何时发生。在主动攻击(本实验未涵盖)中,你将使用 aireplay-ng 等其他工具强制客户端断开连接,促使其立即重新连接并按需生成握手。

在本实验中,我们将模拟这个等待过程。客户端将自动连接到我们模拟环境中的“TestAP”网络。在此步骤中你无需运行任何命令。只需继续观察终端中的 airodump-ng 输出。

在输出中识别“WPA handshake”消息

在此步骤中,你将看到已成功捕获 WPA 握手的确认信息。

等待片刻后,模拟客户端已连接到 AP。当 airodump-ng 成功捕获四次握手数据包时,它会在显示屏的右上角显示一条确认消息。

查看你的 airodump-ng 终端窗口。你现在应该会看到两个重要变化:

  1. 出现了一条消息 WPA handshake: 00:11:22:33:44:55
  2. 在下半部分出现了一个新条目,代表刚刚连接的客户端设备。

输出将类似于:

CH  6 ][ Elapsed: 45 s ][ 2023-10-27 10:05 ][ WPA handshake: 00:11:22:33:44:55

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

 00:11:22:33:44:55  -30       55       20    1   6  54e  WPA2 CCMP   PSK  TestAP

 BSSID              STATION            PWR   Rate    Lost    Frames  Probe

 00:11:22:33:44:55  AA:BB:CC:DD:EE:FF  -40   54-54      0        20

这条“WPA handshake”消息是你已捕获所需数据的信号。你现在可以停止捕获过程。

停止捕获并验证 .cap 文件

在最后一步中,你将停止数据包捕获,并使用 aircrack-ng 来验证捕获文件中是否存在有效握手。

既然你已看到“WPA handshake”消息,现在可以停止 airodump-ng 了。在运行它的终端中按下 Ctrl+C

现在,列出当前目录中的文件,以查看 airodump-ng 创建的文件。

ls -l

你应该会看到你的捕获文件。其中最重要的文件是 passive_capture-01.cap

-rw-r--r-- 1 root root 1234 Oct 27 10:06 passive_capture-01.cap
-rw-r--r-- 1 root root 5678 Oct 27 10:06 passive_capture-01.csv
...

为了确认 .cap 文件确实包含一个可用的握手,你可以使用 aircrack-ng 本身来检查它。只需运行 aircrack-ng 并指定你的 .cap 文件。

aircrack-ng passive_capture-01.cap

Aircrack-ng 将分析文件并报告其发现。需要查找的关键信息是 (1 handshake)。这证实了该文件包含目标网络的完整、可破解的 WPA 握手。

Opening passive_capture-01.cap
Read 1500 packets.

   ##  BSSID              ESSID                     Encryption

   1  00:11:22:33:44:55  TestAP                    WPA (1 handshake)

Choosing first network as target.

你现在已成功被动捕获了 WPA 握手并验证了其完整性。

总结

在此实验中,你已成功执行了 WPA/WPA2 握被动捕获,这是无线网络安全审计中的一项基本技能。

你学会了如何:

  • 使用 sudo airmon-ng start wlan0 在无线接口上启用监控模式 (monitor mode)。
  • 使用 airodump-ng 并通过 --bssid--channel 标志来定位特定 AP。
  • 使用 -w 标志将捕获的网络流量保存到文件中。
  • 识别 airodump-ng 输出中的“WPA handshake”确认消息。
  • 使用 aircrack-ng 分析捕获文件并验证是否存在有效握手。

你生成的捕获文件 passive_capture-01.cap 现在包含了尝试密码破解攻击(例如字典攻击)所需的所有必要信息,这是完整安全评估的逻辑下一步。恭喜你完成了这个实验!