Windows 上使用 Hashcat 进行 GPU 加速密码破解

Windows 上使用 Hashcat 进行 GPU 加速解密

在学习Hashcat的工具使用时,由于VM虚拟机 Kali Linux 无法使用 GPU 运行 Hashcat,因此我们转向物理机 Windows 系统进行操作。本指南将介绍如何下载、安装 CUDA 并配置 Hashcat,以便在 Windows 下使用 GPU 进行解密。


1. 如何确认 Windows 是否支持 GPU 加速?

在使用 Hashcat 之前,需要确认 Windows 设备是否支持 GPU 加速。

1.1 检查 GPU 设备信息

  1. 使用任务管理器检查

    • 右键任务栏 → 选择 任务管理器 → 切换到 性能 选项卡。
    • 如果 GPU 选项卡显示 NVIDIA 相关信息,说明系统支持 GPU。
  2. 使用 nvidia-smi 命令检查

    • CMD 或 PowerShell 中运行:
      nvidia-smi
      
    • 如果输出中包含 GPU 型号和 CUDA 版本,说明设备支持 CUDA 加速。
  3. 检查 GPU 计算能力


2. 驱动 & CUDA 兼容性对照表

选择适合你显卡的 NVIDIA 驱动版本CUDA 版本,确保兼容性。

GPU 型号计算能力推荐 CUDA 版本推荐驱动版本
RTX 40 系列8.9CUDA 12.x525.85 及以上
RTX 30 系列8.6CUDA 11.x - 12.x456.38 及以上
RTX 20 系列7.5CUDA 10.x - 11.x441.22 及以上
GTX 16 系列7.5CUDA 10.x - 11.x430.64 及以上
GTX 10 系列6.1CUDA 9.x - 10.x390.77 及以上
GTX 900 系列5.2CUDA 8.x - 9.x375.26 及以上

⚠️ 注意

  • 不同 CUDA 版本可能需要不同的 NVIDIA 驱动,建议使用 NVIDIA 官方驱动下载页面NVIDIA 驱动下载
  • Hashcat 近期版本支持 CUDA 11.x 及以上,建议使用 CUDA 11.6 及以上版本。

3. 安装 CUDA 11.6

✅ 保留现有的 NVIDIA 驱动(512.78),不需要升级,保持稳定性。
✅ 安装 CUDA 11.6(与你当前的驱动完全兼容)。
✅ 安装 cuDNN(可选,仅 AI 相关需要)。
✅ 安装 Hashcat(最新版本支持 CUDA 11.x)。

3.1 下载并安装 CUDA 11.6

  • 下载地址:CUDA 11.6 官方下载
  • 选择 Windows x86_64 → Windows 10 → exe (network)
  • 运行安装程序,仅勾选:
    • CUDA
    • Driver(不安装)
    • NVCC
    • 不要勾选 Visual Studio 插件等

3.2 配置环境变量

如果 CUDA 安装在 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6,需要手动添加以下路径:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\include

3.3 检查安装是否成功

运行以下命令,检查 CUDA 是否正确安装:

nvcc --version

如果输出类似 Cuda compilation tools, release 11.6,说明安装成功。


4. Hashcat 使用方法

4.1 Hashcat 主要破解模式

破解模式命令参数说明
字典破解-a 0使用字典文件进行匹配
掩码破解-a 3使用自定义规则进行暴力破解
组合破解-a 1将两个字典组合进行破解
规则破解-a 4结合规则文件进行优化破解

5. Windows 下使用 Hashcat 破解示例

5.1 使用 rockyou.txt 进行解密

(1)获取 rockyou.txt
  • Kali Linux 自带(如果有安装 Kali):

    gzip -d /usr/share/wordlists/rockyou.txt.gz
    
  • 从 GitHub 下载(如果 Windows 没有):

    wget https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
    
(2)运行 Hashcat 解密 ZIP 密码

在 Kali Linux 提取 ZIP 哈希

zip2john w.zip > w.zip.hash

然后将 w.zip.hash 复制到 Windows。

在 Windows 运行 Hashcat

hashcat -m 17200 w.zip.hash rockyou.txt --force
  • -m 17200:指定 ZIP(加密的 PKZIP)模式。
  • w.zip.hash:使用 zip2john 生成的哈希文件。
  • rockyou.txt:密码字典文件。
  • --force:强制执行,绕过一些可能的警告。

6. Hashcat 哈希模式速查表

模式编号哈希类型
1000NTLM (Windows 登录密码)
3000LM (Windows 旧版登录密码)
5500NetNTLMv1 / NetNTLMv1+ESS
5600NetNTLMv2
1500DES (Unix)
3200bcrypt (Blowfish)
500MD5crypt (Unix)
17200ZIP (PKZIP 加密)
13600RAR5 (RAR 压缩加密)

完整模式请参考:Hashcat 官方文档


7. 常见问题排查

7.1 rockyou.txt: No such file or directory

  • 确保 rockyou.txt 路径正确。
  • 使用绝对路径,例如:
    hashcat -m 17200 w.zip.hash D:\Tools\wordlists\rockyou.txt --force
    

7.2 hashcat -I 无法检测 GPU

  • 确保 CUDA 11.6 已正确安装,并在 nvcc --version 中显示。
  • 重新启动计算机。

总结

  • Kali Linux 无法使用 GPU 运行 Hashcat,因此切换到 Windows 物理机。
  • 安装 CUDA 11.6(兼容现有驱动 512.78)。
  • 安装 Hashcat,并使用 hashcat -I 确认 GPU 识别正常。
  • 使用 rockyou.txt 进行破解,路径需正确。

8. 免责声明

本文章仅用于技术研究与网络安全学习,旨在帮助用户提高安全意识,防范潜在的网络威胁。所有内容均基于合法合规的测试环境,任何组织或个人不得将其用于非法用途,否则由使用者自行承担法律责任。本文作者不承担因使用本工具导致的任何直接或间接后果。

### 配置和使用 Hashcat 进行 GPU 加速密码破解 #### 安装必要的依赖项 为了使 Hashcat 能够利用 GPU,在 WSL 中安装 NVIDIA CUDA Toolkit 是必需的操作。确保已经安装了适用于 Windows 的最新版本 NVIDIA 显卡驱动程序。 ```bash sudo apt update && sudo apt install -y nvidia-cuda-toolkit ocl-icd-opencl-dev ``` 此命令将安装 OpenCL 和 CUDA 开发环境所需的软件包[^1]。 #### 下载并编译 Hashcat 下载最新的 Hashcat 版本源代码,并按照官方说明进行编译: ```bash git clone https://github.com/hashcat/hashcat.git cd hashcat make ``` 完成上述操作后,Hashcat 将能够识别到本地可用的 GPU 设备。 #### 设置环境变量 为了让系统找到 OpenCL 库文件路径,需设置 `LD_LIBRARY_PATH` 环境变量指向 CUDA 安装位置下的 lib 文件夹: ```bash export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH ``` 建议把这条语句加入 `.bashrc` 或者其他 shell 初始化脚本中以便每次启动终端都能生效。 #### 测试 GPU 支持情况 运行如下命令验证是否成功启用了 GPU 加速功能: ```bash ./hashcat64.bin -I ``` 如果一切正常,则应该能看到列出的一个或多个支持 OpenCL 的设备列表,其中包括显卡型号信息。 #### 执行实际攻击任务 准备好目标散列值之后就可以开始执行具体的破解工作了。这里给出一个简单的例子展示如何加载字典文件来进行离线暴力破解尝试: ```bash ./hashcat64.bin -m 0 -a 0 example.hash wordlist.txt --potfile-path ./my_potfile.pot --force ``` 其中 `-m 0` 表示 MD5 散列算法;`example.hash` 是待解密的目标散列值文件名;而 `wordlist.txt` 则是要使用的单词表名称。参数 `--potfile-path` 可用于指定自定义的结果保存路径,这样即使遇到 "All hashes found in potfile!" 提醒也能方便查看之前已知的答案。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值