sensepost/hash-cracker

GitHub: sensepost/hash-cracker

围绕 hashcat 的 Bash 封装工具,通过交互式菜单将多种精选密码破解工作流自动化,降低使用门槛并集成最佳实践。

Stars: 84 | Forks: 13

# hash-cracker 围绕 `hashcat` 的简单 Bash 封装,用于通过交互式菜单运行一组精选的破解工作流。背景介绍和使用理念在[这篇博客文章](https://sensepost.com/blog/2023/hash-cracker-password-cracking-done-effectively/)中有所介绍。 有用的字典源: - - 如果 `hashcat` 输出值为 `$HEX[...]`,请参阅 [hex-to-readable](https://github.com/crypt0rr/hex-to-readable) 或使用 [CyberChef](https://cyberchef.offsec.nl/)。 ## 安装 ``` git clone https://github.com/crypt0rr/hash-cracker cd hash-cracker chmod +x hash-cracker.sh ``` ## 要求 ### 必要条件 - 必须安装 `hashcat` 且可执行 - 仓库根目录中必须存在 `hash-cracker.conf` 在启动时,`hash-cracker` 会检查: - `HASHCAT` 指向一个可执行的 `hashcat` 二进制文件 - `POTFILE` 存在,或者可以被创建 - `hash-cracker.conf` 中设置了必需的配置键 ### 可选依赖项 这些仅用于特定的菜单选项。 #### Linux - `python2` - 选项 `12` (PACK rulegen) 和选项 `13` (PACK mask) 所需 - 工具文本建议对选项 `12` 使用 `python2 -m pip install pyenchant==3.0.0a1` - `cewl` - 选项 `18` 所需 - `scripts/extensions/common-substr-linux` - 选项 `10` 和 `11` 所需 - `scripts/extensions/hashcat-utils-linux/bin/expander.bin` - 选项 `14` 所需 #### macOS - `scripts/extensions/cewl/cewl.rb` - 选项 `18` 所需 - `scripts/extensions/common-substr-mac` - 选项 `10` 和 `11` 所需 - `scripts/extensions/hashcat-utils-mac/bin/expander.bin` - 选项 `14` 所需 - `python3` - 选项 `13` (PACK mask) 使用 注意: - 选项 `12` 目前在 macOS 上不可用。 - 选项 `13` 使用捆绑的 PACK 脚本,并从现有的 potfile 生成掩码。 ## 配置 `hash-cracker.conf` 是必需的,并在每次启动时自动加载。 该文件必须位于仓库根目录,并定义以下设置: - `HASHCAT` - `hashcat` 二进制文件的路径 - `DEVICE` - 传递给 `hashcat -d` 的值 - `HASHTYPE` - 哈希模式,例如 `1000` 代表 NTLM - `HASHLIST` - 包含目标哈希的文件 - `POTFILE` - 要使用或创建的 potfile 路径 - `WORDLIST` - 主字典路径 - `WORDLIST2` - 组合器风格工作流使用的辅助字典路径 当前示例: ``` # Hashcat 路径 HASHCAT=(/usr/local/bin/hashcat) # 要使用的设备 (hashcat -d $DEVICE) DEVICE=1 # Hashtype HASHTYPE=1000 # 包含目标 hashes 的文件 HASHLIST=input # 您要使用的 Potfile POTFILE=hash-cracker.pot # Wordlist(s) WORDLIST=wordlists/ignis-1M.txt WORDLIST2=wordlists/ignis-1K.txt ``` ## 使用方法 从仓库根目录运行: ``` ./hash-cracker.sh ``` 带标志运行: ``` ./hash-cracker.sh [FLAG] ``` 帮助: ``` ./hash-cracker.sh --help ``` 显示模块描述: ``` ./hash-cracker.sh --module-info ``` 搜索本地哈希类型列表: ``` ./hash-cracker.sh --search ntlm ``` ## 标志 默认情况下,`hash-cracker` 启用优化内核,启用回环,禁用硬件监控,并在标准输出上显示已破解的哈希。 - `-l`, `--no-loopback` - 禁用回环功能 - `-n`, `--no-limit` - 禁用优化内核 - `--hwmon-enable` - 启用硬件监控 - `-m`, `--module-info` - 打印可用模块的描述并退出 - `-s [hash-name]`, `--search [hash-name]` - 搜索本地哈希类型数据库并退出 - `-d`, `--disable-cracked` - 通过将已破解的哈希写入 `/dev/null` 来禁止在标准输出上显示 ## 菜单选项 当工具成功启动时,它会打开一个包含以下选项的交互式菜单: 1. 暴力破解 2. 轻规则 3. 重规则 4. 输入特定单词/姓名/公司 5. 输入特定单词/姓名/公司 (暴力破解) 6. 混合模式 7. 切换大小写 8. 组合器 9. 迭代结果 10. 前缀后缀 11. 常见子串 12. PACK 规则生成 13. PACK 掩码 14. 指纹攻击 15. 字典目录纯文本及随后使用 `OneRuleToRuleThemAll` 16. 用户名迭代 (仅限完整的 NTDS) 17. 马尔可夫链密码生成器 18. CeWL 字典生成器 19. 数字移除器 20. 堆叠器 21. 自定义暴力破解 22. 字典目录纯文本及随后使用 `buka_400k` ## 模块说明 - 选项 `2`、`3`、`6`、`7` 和 `20` 会询问是使用单个字典还是多个字典。 - 选项 `8` 使用配置文件中的 `WORDLIST` 和 `WORDLIST2`。 - 选项 `15` 和 `22` 会要求提供一个包含多个字典的目录。 - 选项 `4` 和 `5` 会提示输入自定义单词或公司名称。 - 选项 `16` 需要一个 NTDS 风格的输入文件,并从 `HASHLIST` 中提取用户名。 - 选项 `17` 可以从 potfile 或选定的字典生成候选者。 - 选项 `18` 会提示输入 URL、输出字典名称、抓取深度和最小单词长度。 - 选项 `21` 会提示输入暴力破解长度以及是否应启用递增模式。 ## 示例哈希 示例哈希位于 `example-hashes/` 目录中: - MD5 (`-m 0`) - SHA1 (`-m 100`) - NTLM (`-m 1000`) 对于大型公共数据集,请参阅 [Have I Been Pwned Passwords](https://haveibeenpwned.com/Passwords)。 ## 版本日志 参见 [VERSION.md](VERSION.md)。 ## 许可证 GNU GPLv3
标签:Bitdefender, CyberChef, DOS头擦除, Hashcat, PACK, VEH, 二进制发布, 交互式菜单, 口令破解, 字典攻击, 客户端加密, 密码破解, 应用安全, 开源工具, 弱口令, 攻击脚本, 数据展示, 爆破, 用户模式钩子绕过, 红队, 网络安全, 网络调试, 自动化, 逆向工具, 隐私保护