使用 John the Ripper 破解 Wi-Fi WPA/WPA2 握手包

Kali LinuxBeginner
立即练习

引言

在本实验中,你将使用一个常用的渗透测试工具 John the Ripper 来探索破解 Wi-Fi WPA/WPA2 密码的过程。虽然主要目标是教育性的,但理解这些技术对于提高网络安全至关重要。你将学习如何捕获 WPA/WPA2 握手包(handshake),其中包含离线密码破解所需的必要信息,然后使用专门的工具将此握手包转换为 John the Ripper 可以处理的格式。最后,你将尝试使用字典攻击来破解密码。本实验还将涵盖 WPA/WPA2 的底层安全漏洞,并提供创建强 Wi-Fi 密码的最佳实践,以保护你自己的网络。

捕获 WPA/WPA2 握手包

在本步骤中,你将理解捕获 WPA/WPA2 握手包(handshake)的概念。在实际场景中,这涉及到将你的无线网卡置于监听模式(monitor mode),并使用 airmon-ngairodump-ng 等工具来捕获客户端连接到 Wi-Fi 接入点时发生的 4 字节握手包。这个握手包包含了执行 Wi-Fi 密码离线暴力破解或字典攻击所需的加密材料。

为了本实验的目的,我们将模拟一个已捕获的握手包文件的存在。setup 脚本已在你的 ~/project 目录下创建了一个名为 dummy_capture.cap 的虚拟 .cap 文件。此文件代表一个捕获的网络流量文件,其中会包含一个 WPA/WPA2 握手包。

要验证此虚拟捕获文件的存在,请使用 ls 命令。

ls -lh ~/project/dummy_capture.cap

你应该会看到类似以下的输出,表明文件存在:

-rw-r--r-- 1 labex labex 48 Oct 26 08:00 /home/labex/project/dummy_capture.cap

本步骤侧重于概念理解,因为实际的网络接口操作超出了此虚拟实验环境的范围。

将握手包转换为 John the Ripper 格式

在本步骤中,你将学习如何将捕获的 WPA/WPA2 握手包文件(通常是 .cap 文件)转换为 John the Ripper 可以识别的格式。John the Ripper 默认情况下不直接处理 .cap 文件进行 WPA/WPA2 破解。相反,它需要一种特定的哈希格式(hash format),通常由 aircrack-nghcxpcaptool 等工具生成。aircrack-ng 套件包含一个实用程序,可以从 .cap 文件中提取 WPA/WPA2 握手包,并以适合破解的格式输出。

对于本实验,setup 脚本已在你的 ~/project 目录下创建了一个名为 dummy_handshake.hccapx 的虚拟 .hccapx 文件。此文件模拟了此类转换过程的输出,其中包含已提取的握手信息,格式已准备好供 John the Ripper 使用。

要验证此虚拟握手文件的存在,请使用 ls 命令。

ls -lh ~/project/dummy_handshake.hccapx

你应该会看到类似以下的输出,确认文件的存在:

-rw-r--r-- 1 labex labex 78 Oct 26 08:00 /home/labex/project/dummy_handshake.hccapx

本步骤强调了在使用 John the Ripper 进行 WPA/WPA2 破解之前进行格式转换的必要性。

使用 John the Ripper 破解 WPA/WPA2 握手包

在本步骤中,你将使用 John the Ripper 来尝试从转换后的握手包文件中破解 WPA/WPA2 密码。John the Ripper 是一个强大的密码破解工具,支持多种攻击模式,包括字典攻击(dictionary attack)。字典攻击涉及使用一个常用密码列表(wordlist)来尝试破解捕获的握手包。

你将使用 john 命令配合 --wordlist 选项来指定 wordlist 文件和握手包文件的路径。setup 脚本已在你的 ~/project 目录下创建了一个名为 wordlist.txt 的简单 wordlist。

执行以下命令来尝试破解虚拟握手包:

john --format=wpapsk --wordlist=~/project/wordlist.txt ~/project/dummy_handshake.hccapx
  • --format=wpapsk: 指定 John the Ripper 应该期望的哈希格式,对于 Wi-Fi 握手包,这是 WPA-PSK。
  • --wordlist=~/project/wordlist.txt: 指示 John 使用包含潜在密码的字典文件。
  • ~/project/dummy_handshake.hccapx: 转换后的握手包文件的路径。

运行命令后,John the Ripper 将尝试破解密码。如果 wordlist 中的密码匹配,它将被显示出来。对于我们的虚拟握手包和 wordlist,应该能找到密码 labex123

示例输出:

Using default input encoding: UTF-8
Loaded 1 password hash (WPA-PSK [PBKDF2-SHA1 256/256 AVX2])
Will run till completion
Press 'q' or Ctrl-C to abort, almost any other key for status
labex123         (dummy_essid)
1g 0:00:00:00 DONE (2023-10-26 08:00) 100% (ETA: 08:00) 1.000g/s 5.000p/s 5.000c/s 5.000C/s labex123
Session completed.

labex123 (dummy_essid) 这一行表示,对于 ESSID(网络名称)dummy_essid,密码 labex123 已成功破解。

理解 WPA/WPA2 安全漏洞

在本步骤中,你将更深入地理解 WPA/WPA2(Wi-Fi Protected Access II)固有的安全漏洞,这些漏洞使得握手包破解成为可能。虽然 WPA2 相较于其前身(WEP 和 WPA)有了显著的改进,但它仍然容易受到某些类型的攻击,主要是针对 4 握手(4-way handshake)的离线字典攻击。

核心漏洞在于,从 Pairwise Master Key (PMK) 派生出的 Pairwise Transient Key (PTK) 是基于预共享密钥(PSK)和握手过程中交换的随机数(nonces)。如果攻击者捕获了这个 4 握手,他们就可以对 PMK 执行离线暴力破解或字典攻击。这意味着攻击者不需要主动连接到网络就可以尝试不同的密码;他们只需要捕获到的握手包。

需要理解的关键点:

  • 离线攻击(Offline Attack):破解过程在离线状态下进行,这意味着攻击者可以获取捕获的握手包,并尝试数百万个密码,而无需与目标网络进行交互。这使得攻击难以被检测。
  • 字典/暴力破解(Dictionary/Brute-Force):此攻击的成功很大程度上取决于 Wi-Fi 密码的强度。如果密码较弱、常用或存在于字典中,则可以相对快速地被破解。
  • 无直接访问(No Direct Access):攻击者在破解过程中不会获得对网络的直接访问权限;他们只获取密码。

这一漏洞凸显了为 Wi-Fi 网络使用强大、唯一的密码至关重要。即使 WPA2 拥有强大的加密功能,一个弱密码也可能危及整个网络的安全。

实现强大的 Wi-Fi 密码

在最后这个步骤中,你将学习并理解实现强大 Wi-Fi 密码的最佳实践,以减轻 WPA/WPA2 握手包破解的风险。正如在前面的步骤中所演示的,弱密码是导致这些攻击成功的首要漏洞。

为了有效保护你的 Wi-Fi 网络,请考虑以下创建强密码的指南:

  1. 长度:目标是设置至少 12-16 个字符的密码。更长的密码会显著增加破解所需的时间和计算资源。
  2. 复杂度:使用大小写字母、数字和特殊字符(例如 !@#$%^&*)的组合。这使得字典攻击和暴力破解更加困难。
  3. 唯一性:不要在不同的服务或网络之间重复使用密码。如果一个密码泄露,其他密码仍然是安全的。
  4. 避免常用词语/短语:不要使用字典词汇、常用短语、个人信息(如生日、姓名)或顺序数字(例如 12345678)。这些是字典攻击的首要目标。
  5. 密码短语(Passphrases):考虑使用密码短语——即一系列不相关的单词。例如,CorrectHorseBatteryStapleP@$$w0rd! 更强大且更容易记住。
  6. 定期更改:虽然对于非常强的密码来说不是绝对必要,但定期更改你的 Wi-Fi 密码(例如,每年一次)可以增加额外的安全层。

通过遵循这些建议,你可以显著增强你的 Wi-Fi 网络的安全性,并使攻击者即使设法捕获了握手包,也极难破解你的 WPA/WPA2 密码。

总结

在本实验中,你获得了关于 Wi-Fi WPA/WPA2 安全的实践经验和理论知识。你学习了捕获 WPA/WPA2 握手包(概念上)、将其转换为适合 John the Ripper 的格式,然后使用 John the Ripper 通过字典攻击破解密码的过程。此外,你还探讨了导致这些攻击成为可能的基本安全漏洞,最重要的是,你理解了实施强大、复杂且唯一的 Wi-Fi 密码对于保护你的网络免受此类漏洞侵害的至关重要性。这些知识对于进攻性安全理解和防御性网络保护都至关重要。