Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

中文 | English

hashcat-workbench

hashcat 的非官方图形界面,Python + Tkinter 写的桌面操作台,零第三方依赖。

本项目与 hashcat 项目没有隶属或背书关系。hashcat 采用 MIT 许可,本项目也是。

本仓库不包含 hashcat 本体。首次运行如果没找到 hashcat,可以在设置里从官方 GitHub Releases 在线下载并校验 SHA-256(约 19 MB),程序不替你分发或托管它。

快速开始

git clone https://github.com/<你的用户名>/hashcat-workbench.git
cd hashcat-workbench
python run_gui.py

需要 Python 3.9+ 且带 tkinter(python.org 官方安装包自带)。也可以用 python -m hashcat_gui 启动。

怎么弄到 hashcat

  1. 右上角设置里点「在线获取 hashcat」,自动下载最新版、校验 SHA-256、解压并填好路径。
  2. 自己从 https://hashcat.net/hashcat/ 下载,把压缩包放在桌面、下载目录或程序目录, 窗口顶部会出现提示条,点「一键解压并配置」,大约一到两分钟。
  3. 已经解压好了。程序会自动在程序目录、上级目录、用户目录、桌面、下载目录和 PATH 里搜索 hashcat.exe,也可以在设置里手动指定。

解压支持 7-Zip、Bandizip(bz.exe)和 WinRAR,都没有时会退回 Windows 自带的 tar, 它也能读 7z 和 zip。

启动参数:

  • python run_gui.py --pipe:管道模式,默认
  • python run_gui.py --conpty:伪控制台模式,支持暂停、继续等交互键,实验性

运行方式可以在设置里切换,默认管道模式,输出解析最稳。

界面

① 目标      粘贴哈希或选文件,搜索选择哈希模式(582 种,支持示例哈希一键填入)
② 攻击方式  [字典][组合][暴力破解][混合][关联] 分段选择,参数区随之切换
③ 运行      计算设备(自动检测 RTX 5070 等)、负载、会话名,然后点开始破解

右侧是运行状态面板,有状态灯、进度条、速度、预计完成时间和温度,下面是实时速度曲线, 再下面是破解结果、日志、命令、基准测试、设备和帮助几个页签。

「高级选项」折叠面板里有结果文件与格式、potfile、--show 查看已破解、运行时限、 内核调优(-n/-u/-T)、温度中止、自定义字符集、附加参数等。

攻击方式

方式 参数 说明
字典 字典文件 + 规则(内置规则库下拉) 按单词表逐个尝试,可用 -g 随机规则
组合 左字典 + 右字典 两两拼接
暴力破解 简单模式:勾选字符集 + 填位数范围 自动生成掩码穷举;也可切手动掩码写 ?a?a?a 这类表达式
混合 字典 + 掩码,或掩码 + 字典 单词前后追加穷举,方向可选
关联 hash:word 关联文件 每个哈希对应独立字典

暴力破解的简单模式

勾选字符集、填位数范围就能穷举,界面自动生成掩码并实时显示组合数。

字符集有小写 a-z、大写 A-Z、数字 0-9、全部 33 种特殊符号,以及常用的 13 种 (!@#$%&*?._+-/)。也可以自己输入任意符号,比如 !@#,会和勾选项取并集去重。 四类全选时用内置的 ?a(95 个字符),其余组合自动生成自定义字符集 -1, 其中的 ? 会自动转义成 ??。

位数可以勾选限制(从 X 到 Y 位,相同就是固定位数),不勾选则是 1 到 16 位全量穷举, 走增量模式,理论上不设上限。组合数超过 10¹⁵ 时会显示黄色警示,RTX 5070 跑 MD5 大约 20 GH/s,?a 八位大概三天,量力而行。

掩码字符集:?l 小写、?u 大写、?d 数字、?s 特殊、?a 全部 95 个、?h 十六进制、 ?b 全部 256 个。支持 .hcmask 掩码文件、增量模式 -i(指定长度范围逐步穷举) 和自定义字符集 -1 到 -4。

运行控制

hashcat 在 Windows 上的 s/p/r/b/c/q 交互键只接受真实控制台输入,普通管道无效。 本程序通过 Windows 10 1809 以上的 ConPTY 伪控制台运行 hashcat,没有黑窗,可以:

按钮 键 作用
暂停 p 挂起计算,GPU 保留
继续 r 恢复计算
检查点 c 立即写恢复文件
跳过 b 跳过当前字典或掩码
退出 q 检查点后优雅退出
强制终止 无 立即终止进程

会话名配合「恢复会话」可以断点续跑。系统不支持 ConPTY 时自动回退管道模式, 交互键禁用,其余功能不变。

目录结构

hashcat_gui/
  app.py            主窗口
  runner.py         进程运行器,负责命令构建、输出解析和控制键
  conpty.py         Windows ConPTY 伪控制台封装,ctypes 实现
  zip2hash.py       ZIP 哈希提取,zipcrypto 与 WinZip AES,纯标准库
  sevenzip2hash.py  7z 哈希提取,mode 11600,纯标准库,不需要 7z2john
  modes.py          哈希模式与设备信息解析
  modes_data.py     内嵌的 582 个模式离线库
  theme.py          暗色主题
  dev_data/         开发时的抓取数据和自测脚本,不影响运行
run_gui.py          启动器
README.md           中文说明
README.en.md        English documentation
LICENSE             MIT 许可证
THIRD_PARTY_NOTICES.md  第三方组件与归属声明

自测

python hashcat_gui\dev_data\test_gui.py   77 项单元和冒烟测试
python hashcat_gui\dev_data\test_7z.py    7z 解析 24 项,加 --crack <hashcat.exe> 共 25 项
python hashcat_gui\dev_data\test_e2e.py   真实破解端到端,100 条 MD5

破解加密的 ZIP / 7z / RAR

ZIP

在「① 目标」选「选择文件」,直接选 .zip,程序用内置的 zip2hash.py 自动提取哈希 并选好哈希模式:

  • $pkzip2$… 传统 zipcrypto,模式 17210(存储)或 17200(deflate)
  • $zip2$… WinZip AES,模式 13600,AES-128/192/256 自动识别
  • 密文不超过 320KB 时输出全数据哈希,hashcat 做全量 CRC 校验,不会有假阳性
  • 密文超过 320KB 时(hashcat 的硬限制)自动切换到内置 CPU 验证模式,多进程逐候选 穷举,加魔数快筛和全量 CRC 终验,进度条实时显示,只报告真实密码

然后选「暴力破解」,配好字符集和位数就能开始,不用手动填掩码或模式。

7z

在「① 目标」选「选择文件」,直接选 .7z,程序用内置的 sevenzip2hash.py 自动解析 容器、提取哈希并选好模式 11600。

加密头部的归档(7-Zip 勾了「加密文件名」,或者 Bandizip 创建的,都是这种)文件名和 数据流的 AES 参数都在密文里,程序转而直接攻击头部流,也就是 AES 加 LZMA,一样能确定 密码。明文头部的归档(只加密数据)则用 LZMA 解出真实头部,再取数据流的 AES 参数。 纯标准库实现,不需要 7z2john 或 Perl。

需要注意的是 7z 比 ZIP 慢很多。每个候选要跑 2^19 轮 SHA-256,实测 RTX 5070 只有大约 1.5 万次每秒,ZIP 那边是两百亿次每秒的量级。?l?l?l?l 大约 30 秒,六位小写大约 5.7 小时,八位大约 161 天。所以 7z 的暴力破解只适合短密码,长密码请用字典攻击。 密钥空间面板对 7z 会单独给出耗时估算和更早的黄色告警。

另外,hashcat 的 11600 模块不接受带 salt 的 7z,这一条写死在 module_hash_decode() 里: if (salt_len != 0) return PARSER_SALT_VALUE;。遇到这类归档,程序会明确提示, 而不是给出一个永远破不出来的假哈希。

RAR

需要先用 John the Ripper 的 rar2john 提取哈希(jumbo 版可以自己下载),再把输出 粘贴到「① 目标」,或者点识别让它自动选模式。

常见问题

找不到 hashcat

用设置里的「在线获取 hashcat」,会自动下载并校验。或者点「一键解压压缩包并配置」, 也可以把解压好的 hashcat 文件夹放到桌面、下载目录或程序目录。

设备检测为空

检查显卡驱动和 OpenCL 运行时,也可以在高级选项里加 --force。

暂停和继续按钮没反应

看看命令页的传输标签。--pipe 模式或者系统低于 Win10 1809 时没有交互键。

破解出来的行没进结果表格

高级选项里的「格式」保持默认的 hash:plain。已经破解的可以用 --show 补读。

退出码 4294967295(-1)

参数或环境错误,看日志末尾 hashcat 的提示。

免责声明

本工具仅供合法授权的密码恢复和安全测试使用,请勿用于任何未获授权的系统或数据。 使用者需自行承担遵守当地法律法规的责任。

许可证

本项目以 MIT License 发布,详见 LICENSE。

本项目是 hashcat 的非官方前端,与 hashcat 项目没有隶属或背书关系。"hashcat" 是 该项目的名称,本项目对其的使用属于描述兼容性的指称性使用,不主张任何商标权。

本仓库不包含也不重新分发 hashcat。「在线获取」是由用户自己的机器直接从 hashcat 官方的 GitHub Releases 下载,因此本项目的分发不构成对 hashcat 的再分发。

仓库中派生自 hashcat 的数据(比如 modes_data.py 模式库)依其 MIT 许可保留归属, 第三方组件与归属详见 THIRD_PARTY_NOTICES.md。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages