
一组小型工具,用于将捕获文件中的数据包转换为哈希文件,以便与Hashcat或John the Ripper配合使用。
=========
一套小型工具集,用于将捕获文件中的数据包转换为哈希文件,以供 Hashcat 或 John the Ripper 使用。
这些工具与 Hashcat 和 John the Ripper 100% 兼容,并得到 Hashcat 的官方认可。
hcxtools 的主要目的是通过分析哈希值来检测自己 WiFi 网络中的薄弱点。因此,将转储文件转换为 WPA-PBKDF2-PMKID+EAPOL 哈希文件,使用户能够检查 WLAN 密钥或 PMK 是否以未加密方式传输。或者将“未清理”的转储文件(pcapng、pcap、cap)上传至此处,以通过常用字典或弱密码生成算法判断你的 AP 或客户端是否存在漏洞。
支持 Hashcat 哈希模式:4800、5500、2200x、16100、250x(已弃用)和 1680x(已弃用)。
支持 John the Ripper 哈希模式:WPAPSK-PMK、PBKDF2-HMAC-SHA1、chap、netntlm 和 tacacs-plus。
支持 gzip (.gz) 单文件压缩。
关于 Hashcat 模式 22000 的概述 - (https://hashcat.net/wiki/doku.php?id=cracking_wpawpa2)
由 Hashcat 论坛的 atom 撰写的关于利用 PMKID 对 WPA/WPA2 发起新攻击的旧文,但仍具参考价值。 - (https://hashcat.net/forum/thread-7717.html)
由 Hashcat 论坛的 atom 撰写的关于 Hashcat 模式 22000 的详细介绍。 - (https://hashcat.net/forum/thread-10253.html)
不支持: Windows 操作系统、macOS、Android、模拟器或包装器!
它们不破解 WPA PSK 相关哈希值。(请使用 Hashcat 或 JtR 恢复 PSK。)
它们不破解 WEP。(请改用 aircrack-ng 套件。)
它们不破解 WPS。(请改用 Reaver 或 Bully。)
它们不解密加密流量。(请使用 tshark 或 Wireshark 进行解密。)
hcxdumptool -> hcxpcapngtool -> hcxhashtool(附加 hcxpsktool/hcxeiutool) -> hashcat 或 JtR
在大多数发行版中,hcxtools 可通过包管理器获得。
如果你决定编译最新的 git 头版本,请确保你的发行版已更新到最新版本,并确保所有头文件和依赖项已安装!
git clone https://github.com/ZerBea/hcxtools.git
cd hcxtools
make -j $(nproc)
安装到 /usr/bin:
make install (以超级用户身份)
或安装到 /usr/local/bin:
make install PREFIX=/usr/local (以超级用户身份)
你可能会认为我会推荐每个人都使用 hcxdumptool/hcxtools。但事实是,hcxdumptool/hcxtools 不推荐给没有经验的用户或新手使用。如果你不熟悉 Linux 的一般使用,或者你至少不具备“要求”部分所提及的基本知识水平,那么 hcxdumptool/hcxtools 可能不是你要找的工具。然而,如果你具备这些知识,这些工具可以发挥神奇的作用。
如果你决定编译最新的 git 头版本,请确保你的发行版已更新到最新版本!
| 脚本 | 描述 |
|---|---|
| piwritecard | 恢复 SD 卡的示例脚本 |
| pireadcard | 备份 SD 卡的示例脚本 |
| hcxgrep.py | 基于正则表达式从 m22000 哈希行/hccapx/pmkid 文件中提取记录 |
大多数输出文件将追加到现有文件(pcapng、pcap、cap 文件除外)。
建议使用哈希模式 22000 (22001) 而非已弃用的哈希模式 2500 (2501) 和 16800 (16801)。
hcxtools 被设计为分析工具。这意味着默认情况下所有内容都会被转换,不需要的信息必须过滤掉!
警告: 不要合并转储文件!这将会破坏由自定义块分配的哈希值!
工具不执行 NONCE 错误校正!如果发生数据包丢失,你将得到错误的 PTK。
此分支与 Hashcat 和 John the Ripper 仓库保持紧密同步。
WPA*02* 哈希行中的每个 EAPOL 哈希由两个握手消息构建而成。一个消息提供 EAPOL 帧(其中包含要验证的 MIC 和已嵌入在字节偏移 17 处的一个 nonce)。另一个消息提供帧中不存在的第二个 nonce。两者共同为 hashcat 提供所需的一切:ANonce + SNonce + MIC + EAPOL 帧。
从完整的 4 次握手构建哈希时有三个独立的选择:
因此得到 2 x 2 x 3 = 12 种理论组合。
但 EAPOL 帧已在字节偏移 17 处嵌入了一个 nonce(M2/M4 中为 SNonce,M3 中为 ANonce)。Hashcat 会自动提取该 nonce。它只需要外部提供另一个 nonce。因此实际模型为:3 个 EAPOL 来源 x 2 个外部 nonce 来源 = 6 个消息对。
在同一握手会话中,M1 和 M3 携带相同的 ANonce 值,M2 和 M4 携带相同的 SNonce 值。交换外部 nonce 的来源并不会改变 nonce 本身。因此,共享相同 EAPOL 来源的每对消息对会产生相同的哈希。6 个对缩减为 3 个唯一哈希,每个 EAPOL 来源对应一个。
行按 EAPOL 来源分组(哈希 1/2/3)。同一组内的消息对产生相同的可破解哈希。
ID 列使用格式 N{nonce 来源}E{eapol 来源}。例如,N1E2 表示外部 nonce 来自 M1,EAPOL 帧来自 M2。
“挑战”表示只需要 M1 和 M2。AP 尚未确认密码正确(不需要 M3)。“已授权”表示涉及 M3 或 M4,它们仅在双方验证 MIC 后才存在。密码既被发送也被验证。
根据 IEEE 802.11i-2004 第 8.5.3.4 节,M4 的密钥 Nonce 应为 0。大多数实现符合规范并将其清零。有些则复用 M2 中的 SNonce。当清零时,消息对 0x01 和 0x05 不可用,因为 hashcat 无法重建两个 nonce。实际上,大多数捕获只能得到哈希 1 和哈希 2。
你可能会认为我会推荐每个人都使用 hcxdumptool/hcxtools。但事实是,hcxdumptool/hcxtools 不推荐给没有经验的用户或新手使用。
如果你不熟悉 Linux 的一般使用,或者你至少不具备“要求”部分所提及的基本知识水平,那么 hcxdumptool/hcxtools 可能不是你要找的工具。然而,如果你具备这些知识,hcxdumptool/hcxtools 可以为你发挥神奇的作用。
整个工具集(hcxdumptool 和 hcxtools)被设计为分析工具包。
https://www.kernel.org/doc/html/latest/
https://www.kernel.org/doc/html/latest/bpf/index.html
https://www.freecodecamp.org/news/the-linux-commands-handbook/
https://en.wikipedia.org/wiki/Wpa2
| 工具 | 描述 |
|---|
| hcxpcapngtool | 将原始捕获文件转换为 Hashcat 和 JtR 可读格式的工具。 |
| hcxhashtool | 根据用户输入从 HC22000 文件中过滤哈希值的工具。 |
| hcxpmktool | 计算和验证 PSK 和/或 PMK 的工具。 |
| hcxpottool | 处理 hashcat pot 文件的 ASCII 格式和多种 UTF 格式的工具。 |
| hcxpsktool | 从哈希文件或用户输入中获取弱 PSK 候选的工具。 |
| hcxeiutool | 将 hcxpcapngtool 的 -E -I -U 输出准备为 Hashcat + 规则或 JtR + 规则可用的格式。 |
| hcxwltool | 基于混合字典为 Hashcat 和 JtR 计算候选的工具。 |
| hcxhash2cap | 将哈希文件(PMKID&EAPOL、PMKID、EAPOL-hccapx、EAPOL-hccap、WPAPSK-john)转换为 cap 文件。 |
| wlancap2wpasec | 将多个(gzip 压缩的)pcapng、pcap 和 cap 文件上传至 https://wpa-sec.stanev.org 的工具。 |
| whoismac | 显示厂商信息和/或下载 OUI 参考列表的工具。 |
| ID | 位 | 十六进制 | 消息 | EAPOL 来自 | 外部 Nonce | 唯一哈希 | 状态 |
|---|
| N1E2 | 000 | 0x00 | M1+M2 | M2(MIC + SNonce) | M1(ANonce) | 哈希 1 | 挑战,默认 |
| N3E2 | 010 | 0x02 | M2+M3 | M2(MIC + SNonce) | M3(ANonce) | 哈希 1 | 已授权,默认 |
| N2E3 | 011 | 0x03 | M2+M3 | M3(MIC + ANonce) | M2(SNonce) | 哈希 2 | 已授权,--all |
| N4E3 | 100 | 0x04 | M3+M4 | M3(MIC + ANonce) | M4(SNonce) | 哈希 2 | 已授权,--all(要求 M4 nonce 非零) |
| N1E4 | 001 | 0x01 | M1+M4 | M4(MIC + SNonce) | M1(ANonce) | 哈希 3 | 已授权,--all(要求 M4 nonce 非零) |
| N3E4 | 101 | 0x05 | M3+M4 | M4(MIC + SNonce) | M3(ANonce) | 哈希 3 | 已授权,--all(要求 M4 nonce 非零) |
| 位 | 十六进制 | 意义 |
|---|
| 3 | 0x08 | 保留 |
| 4 | 0x10 | 无 AP 攻击(无需 nonce 错误校正) |
| 5 | 0x20 | 检测到 LE 路由器(仅需对 LE 进行 nonce 错误校正) |
| 6 | 0x40 | 检测到 BE 路由器(仅需对 BE 进行 nonce 错误校正) |
| 7 | 0x80 | 未检查重放计数(肯定需要 nonce 错误校正) |