Hashcat
> Hashcat — 号称世界上最快的密码恢复工具,利用GPU暴力破解哈希,专治各种忘记密码和渗透测试需求。
---
兄弟们,今天聊点硬核的。如果你玩过渗透测试、做过CTF、或者不小心把自己加密压缩包的密码忘了(别问我是怎么知道的),那你一定听过Hashcat的大名。这玩意儿在安全圈里就是“暴力美学”的代名词——别的工具还在用CPU慢慢磨洋工,它直接拉满你的显卡,让GPU像矿机一样疯狂算哈希。
说白了,Hashcat就是一个**密码恢复工具**,但它不是靠猜,而是靠“算”。你给它一个哈希值(比如Windows的NTLM、Linux的shadow、WiFi的WPA2握手包),它就用字典、掩码、规则、甚至纯暴力穷举,把你显卡的每一丝算力都榨干,直到撞出明文密码。解决什么问题?解决“我知道密码是8位纯数字但就是想不起来具体是啥”这种蛋疼问题,也解决“甲方让我测一下员工密码强度”这种正经需求。
### 下载方式
老规矩,直接上官网:
[官网下载地址](https://hashcat.net/hashcat/)
官网提供Linux和macOS的源码包,Windows用户别慌,去下面的Release页面拿编译好的exe:
[GitHub Releases页面](https://github.com/hashcat/hashcat/releases)
解压即用,不需要安装,这点非常友好。
### 安装方法
**Windows用户:**
下载zip包,解压到任意目录,比如`C:\hashcat`。打开CMD,cd进去,直接敲`hashcat.exe --version`,能输出版本号就完事了。记得装好显卡驱动(N卡用GeForce Experience,A卡用Adrenalin),不然OpenCL跑不起来。
**Linux用户:**
用发行版自带包管理器装也行,但版本可能旧。推荐直接下源码编译:
```bash
wget https://hashcat.net/files/hashcat-6.2.6.tar.gz
tar -xzf hashcat-6.2.6.tar.gz
cd hashcat-6.2.6
make
sudo make install
```
装完跑一下`hashcat -I`,能看到你的GPU列表就说明驱动没问题。
**macOS用户:**
一样是源码编译,但注意Mac的M系列芯片用Metal后端,性能也不错,直接`brew install hashcat`也行,不过版本可能滞后。
### 基础使用教程
先看个最简单的例子,破解一个MD5哈希:
```bash
hashcat -m 0 -a 0 e2fc714c4727ee9395f324cd2e7f331f rockyou.txt
```
解释一下参数:
- `-m 0` 指定哈希类型,0代表MD5。常见类型:1000是NTLM,22000是WPA2,3200是bcrypt,你可以在`--example-hashes`文件里查。
- `-a 0` 指定攻击模式,0是字典攻击,3是掩码暴力,6是混合。
- 后面跟你要破解的哈希值,然后跟字典文件路径。
`rockyou.txt`是经典字典,如果你没有,去网上搜一下,或者用系统自带的`/usr/share/wordlists/rockyou.txt.gz`,解压后用。
**实战:破解一个8位纯数字密码(掩码攻击)**
```bash
hashcat -m 0 -a 3 ?d?d?d?d?d?d?d?d
```
`?d`代表数字,8个`?d`就是8位纯数字,不到一分钟就能跑完。掩码字符表:
- `?l` 小写字母
- `?u` 大写字母
- `?d` 数字
- `?s` 特殊符号
- `?a` 以上全部
**破解WPA2 WiFi密码(抓包后)**
先用aircrack-ng抓个握手包,转成hashcat格式:
```bash
aircrack-ng -J wpa.hccapx wifi.cap
```
然后跑:
```bash
hashcat -m 22000 wpa.hccapx wordlist.txt
```
这个比较吃GPU,但比CPU快几十倍。
### 进阶技巧
**1. 规则引擎——让字典变聪明**
光靠字典不够,加规则可以“变异”单词。比如把`password`变成`Password123`,用规则文件:
```bash
hashcat -m 0 -a 0 hash.txt rockyou.txt -r rules/best64.rule
```
`best64.rule`是内置的常用规则,能大幅提高命中率。你也可以自己写规则,比如`$1$2$3`就是在词尾加123。
**2. 组合攻击**
用`-a 1`把两个字典交叉组合:
```bash
hashcat -m 0 -a 1 hash.txt dict1.txt dict2.txt
```
适合“名字+生日”这种组合密码。
**3. 多GPU并行**
如果你有N张卡,加个`-d 1,2,3`指定设备,或者直接`-d 2`用第二块卡。用`--benchmark`先测速,看看哪张卡适合跑哪种哈希。
**4. 中断恢复**
跑了一半断电了?别慌,加`--restore`恢复会话:
```bash
hashcat -m 0 -a 0 hash.txt rockyou.txt --session myjob
# 中断后
hashcat --restore --session myjob
```
**5. 开启自动优化**
`-O`参数开启内核优化,`-w 3`把GPU负载拉满(小心显卡风扇起飞)。我一般用`-O -w 2`平衡温度和速度。
**6. 破解Linux shadow文件**
拿到`/etc/shadow`里的root哈希,格式是`$6$salt$hash`,用`-m 1800`(sha512crypt):
```bash
hashcat -m 1800 shadow.txt rockyou.txt
```
这个比较慢,但GPU多的话还是能出结果的。
### 最后说两句
Hashcat确实强大,但记住两条铁律:
1. **只破解自己有权破解的东西**。拿别人WiFi握手包试密码,那是违法行为。
2. **别太依赖GPU**。遇到强密码(比如20位随机大小写数字符号),就算4090也得跑到宇宙热寂。
日常使用,建议配合`cewl`(爬网站生成字典)和`crunch`(生成自定义字典)一起用,效果翻倍。如果你只是想找回自己忘记的压缩包密码,直接试试`-m 13000`(zip)或`-m 11600`(7z)模式,比下载那些付费软件靠谱多了。
好了,工具就介绍到这儿。如果你跑出过什么奇葩密码,欢迎评论区分享——我上次帮朋友解了个WiFi密码,结果是`12345678`,他媳妇儿设的,说好记。行吧,确实好记。
Peace.