引言
在本实验中,你将学习使用 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) 进行身份验证时发生。在被动捕获场景中,这意味着你必须等待以下两种事件之一发生:
- 新客户端连接到 AP。
- 现有客户端断开连接然后重新连接到 AP。
此过程需要耐心,因为你无法控制这些事件何时发生。在主动攻击(本实验未涵盖)中,你将使用 aireplay-ng 等其他工具强制客户端断开连接,促使其立即重新连接并按需生成握手。
在本实验中,我们将模拟这个等待过程。客户端将自动连接到我们模拟环境中的“TestAP”网络。在此步骤中你无需运行任何命令。只需继续观察终端中的 airodump-ng 输出。
在输出中识别“WPA handshake”消息
在此步骤中,你将看到已成功捕获 WPA 握手的确认信息。
等待片刻后,模拟客户端已连接到 AP。当 airodump-ng 成功捕获四次握手数据包时,它会在显示屏的右上角显示一条确认消息。
查看你的 airodump-ng 终端窗口。你现在应该会看到两个重要变化:
- 出现了一条消息
WPA handshake: 00:11:22:33:44:55。 - 在下半部分出现了一个新条目,代表刚刚连接的客户端设备。
输出将类似于:
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 现在包含了尝试密码破解攻击(例如字典攻击)所需的所有必要信息,这是完整安全评估的逻辑下一步。恭喜你完成了这个实验!
