使用 airdecap-ng 解密 WPA 捕获文件

Beginner
立即练习

引言

欢迎来到本实验,我们将学习如何解密 WPA 捕获文件。airdecap-ng 是 Aircrack-ng 套件中一个强大的工具,用于解密无线流量。在捕获无线数据包并成功破解 WPA/WPA2 密码后,下一步就是解密捕获的数据以分析其内容。这时就需要用到 airdecap-ng

在本实验中,你将通过使用已知的网络 SSID 和密码,一步步学习如何使用 airdecap-ng 来解密一个已存在的捕获文件 (.cap)。这将帮助你理解将加密的、不可读的网络数据转换为清晰、可分析格式的工作流程。

获取破解的 WPA 密码

在本步骤中,我们将开始获取解密所需的最关键信息:WPA 密码。在实际场景中,你将通过使用 aircrack-ng 等工具,对捕获的 WPA 4 握手包执行字典攻击或暴力破解攻击来获得此密码。

为了本实验的目的,我们将假设此过程已成功完成。破解出的密码已保存在你当前目录 ~/project 下名为 cracked_password.txt 的文件中。

让我们查看此文件的内容以获取密码。使用 cat 命令在终端显示文件内容。

cat cracked_password.txt

你应该会看到以下输出,这就是我们将在解密过程中使用的密码:

password123

请记住这个密码,因为在后续步骤运行 airdecap-ng 命令时会用到它。

定位包含 WPA 握手的 .cap 文件

在本步骤中,我们需要找到包含加密无线流量的捕获文件。这些文件通常具有 .cap.pcap 扩展名,并由 airodump-ng 或 Wireshark 等数据包嗅探工具生成。

在本实验中,一个名为 wpa_handshake.cap 的示例捕获文件已放置在你的 ~/project 目录中。要确认文件存在,你可以使用 ls -l 命令列出当前目录的内容。此命令提供文件的详细列表。

在你的终端中执行以下命令:

ls -l

你的输出应该与此类似,确认 wpa_handshake.cap 的存在:

total 12
-rw-r--r-- 1 labex labex   12 Mar 18 10:00 cracked_password.txt
-rw-r--r-- 1 labex labex    9 Mar 18 10:00 ssid.txt
-rw-r--r-- 1 labex labex    0 Mar 18 10:00 wpa_handshake.cap

现在我们已经确认了密码和捕获文件的位置,可以准备解密命令了。

使用 airdecap-ng 的 -e SSID 和 -p Passphrase 参数

在本步骤中,我们将构建 airdecap-ng 命令。要解密 WPA/WPA2 捕获文件,airdecap-ng 需要两个关键信息:网络的名称(SSID)及其密码。

该命令使用特定的标志(选项)来接受这些信息:

  • -e <essid>:此标志用于指定目标网络的 ESSID(Extended Service Set Identifier)。
  • -p <passphrase>:此标志用于提供 WPA/WPA2 密码。

对于本实验,SSID 已存储在 ssid.txt 文件中。我们先查看一下:

cat ssid.txt

输出将是:

MyTestAP

结合第一步中的密码 "password123",我们命令的第一部分将是:airdecap-ng -e MyTestAP -p password123

此命令结构告诉 airdecap-ng 要查找哪个网络的流量以及使用什么密钥进行解密。在下一步中,我们将添加输入捕获文件来完成命令。

指定要解密的输入捕获文件

在本步骤中,我们将完成并执行 airdecap-ng 命令。我们已经有了 SSID(MyTestAP)、密码(password123)和输入文件(wpa_handshake.cap)。现在,我们只需要将它们组合成一个命令。

airdecap-ng 命令的最后一个参数是你想要解密的捕获文件的路径。

在你的终端中运行以下完整命令。这将指示 airdecap-ng 读取 wpa_handshake.cap,查找与 "MyTestAP" SSID 匹配的数据包,并尝试使用 "password123" 对其进行解密。

airdecap-ng -e MyTestAP -p password123 wpa_handshake.cap

运行命令后,你将看到类似以下的输出。请注意,由于我们的示例 .cap 文件是空的,数据包计数将为零。最重要的一行是最后一行,它确认了一个新的、已解密文件的创建。

Total number of packets read         1
Total number of WPA packets          0
Total number of WPA handshakes       0
Number of plaintext data packets     0
Number of decrypted WPA packets      0
Number of decrypted WEP packets      0
File wpa_handshake-dec.cap created.

"File wpa_handshake-dec.cap created." 的消息表明操作成功。airdecap-ng 已生成一个新文件,其中包含流量的解密版本。

检查新创建的已解密捕获文件

在最后一步中,我们将验证已解密文件是否已创建,并学习如何检查它。airdecap-ng 不会修改原始捕获文件。相反,它会创建一个包含已解密数据包的新文件,通常是通过在原始文件名后附加 -dec.cap 来实现的。

首先,再次使用 ls -l 命令查看目录中的新文件。

ls -l

你现在将看到已解密文件 wpa_handshake-dec.cap 与原始文件一起列出:

total 16
-rw-r--r-- 1 labex labex   12 Mar 18 10:00 cracked_password.txt
-rw-r--r-- 1 labex labex    9 Mar 18 10:00 ssid.txt
-rw-r--r-- 1 labex labex    0 Mar 18 10:00 wpa_handshake-dec.cap
-rw-r--r-- 1 labex labex    0 Mar 18 10:00 wpa_handshake.cap

这个新文件 wpa_handshake-dec.cap 包含了捕获数据的明文版本。你现在可以使用 Wireshark 或 tcpdump 等网络分析工具对其进行分析。为了演示,让我们使用 tcpdump-r 标志从新文件中读取。

tcpdump -r wpa_handshake-dec.cap

由于我们的源文件是空的,tcpdump 不会显示任何数据包。但是,它会确认它可以读取该文件,这就是本步骤的目标。

reading from file wpa_handshake-dec.cap, link-type EN10MB (Ethernet)

在包含实际数据包的真实场景中,此命令将显示已解密的数据包内容,例如 HTTP 请求、DNS 查询和其他明文流量。

总结

在本实验中,你已成功学会如何使用 airdecap-ng 来解密 WPA 加密的捕获文件。

你实践了完整的流程:

  1. 识别所需的密码和 SSID。
  2. 定位目标 .cap 文件。
  3. 使用 -e (SSID) 和 -p (密码) 标志构建 airdecap-ng 命令。
  4. 执行命令以生成一个新的、已解密的捕获文件(-dec.cap)。
  5. 验证已解密文件的创建,并了解如何使用 tcpdump 等工具对其进行分析。

这项技能在网络安全分析中至关重要,因为它弥合了破解网络密码与实际理解其中流量之间的差距。