当前位置:首页 > 热点

hashcat最详细使用教程

hashcat 跑一张 RTX 4090,详细对着 NTLM 哈希,使用速度能到 300 GH/s 以上。教程这个数字意味着什么?详细一个 8 位纯小写字母的密码空间是 26^8,大概 2080 亿种组合,使用理论上不到一秒就能穷举完。教程所以如果你还在用那种密码,详细别管什么哈希算法,使用先换成 16 位随机串再说。教程

装 hashcat 本身没什么好说的详细。Windows 直接下 7z 包解压,使用Linux 用 apt 或从源码编译。教程真正卡人的详细是驱动——N 卡必须装 CUDA Toolkit,A 卡走 ROCm,使用别用系统自带的教程老驱动,版本对不上会直接报 CL_PLATFORM_NOT_FOUND。我见过有人折腾一晚上,最后发现是显卡驱动太旧。

先搞清楚你要打的是什么哈希

hashcat 用 -m 指定哈希类型。NTLM 是 1000,MD5 是 0,bcrypt 是 3200,WPA 是 22000。这个编号必须对,填错了要么报错要么跑出错误结果。最省事的办法是拿 hashid 或 hash-identifier 先过一遍,或者直接看哈希长度和前缀特征。比如 $2a$ 开头就是 bcrypt,$6$ 是 SHA-512 crypt。

hashcat -m 1000 hash.txt wordlist.txt

这就是最基本的字典攻击。hash.txt 里一行一个哈希,wordlist 就是你的字典文件。跑之前建议加 -O 优化内核,但注意优化模式会限制密码最大长度,超过 31 字符的别加这个参数。

字典不够用的时候怎么办

rockyou.txt 只有 1400 万条,早就不够看了。现在实际渗透中,弱口令基本被扫干净了,剩下的都是带规则的变体。hashcat 的规则引擎用 -r 加载,比如 best64.rule 会把 password 变成 Password1、p@ssword、drowssap 这类变体。规则文件在 rules/ 目录下,自己也可以写,语法不复杂。

另一个方向是掩码攻击,也就是暴力破解的精细化版本。-a 3 启用掩码模式,?l 代表小写字母,?u 大写,?d 数字,?s 特殊符号。比如你知道目标密码是 8 位、首字母大写、后面跟 7 位数字,那就用 ?u?d?d?d?d?d?d?d。这种定向爆破比无脑跑 ?a?a?a?a?a?a?a?a 快几个数量级。

hashcat -m 1000 -a 3 hash.txt ?u?d?d?d?d?d?d?d

组合攻击和混合模式

实际场景里最常用的是 -a 6 和 -a 7。6 是字典加掩码,7 是掩码加字典。比如你知道密码是 companyname 加上 4 位数字,那就用 -a 6 wordlist.txt ?d?d?d?d。这个比纯掩码省时间,因为字典部分只跑你关心的词。

还有一种情况是已经拿到了部分明文,比如 admin2024,但不确定大小写和符号变体。这时候用 --rule-left 和 --rule-right 在单词两侧加字符,比写完整规则文件快。

跑起来之后看什么

按 s 看状态,会显示速度、进度、预计剩余时间。按 p 暂停,r 恢复,q 退出。如果速度突然掉到零,大概率是温度墙或者显存不够。N 卡可以用 nvidia-smi 看功耗和温度,A 卡用 rocm-smi。

还有个坑是 --potfile-path。hashcat 默认把跑出来的结果存到 ~/.hashcat/hashcat.potfile,下次跑同样的哈希会直接跳过。如果你在测试环境反复跑同一批哈希,记得加 --potfile-disable,不然会以为程序没跑。

分布式和云上跑

单卡跑不动的时候,hashcat 支持 --backend-devices 指定多卡。但跨机器分布式原生不支持,得靠 hashtopolis 这类调度工具。云上租 GPU 跑 hashcat 性价比其实一般,除非你用的是按秒计费的竞价实例,否则跑长字典的成本比自建机器还高。

最后说一句,hashcat 的 wiki 写得比大部分教程都清楚,遇到报错先查 hashcat --example-hashes,再不行去 hashcat.net/forum 搜错误码。别一上来就发帖问,那边的人脾气不太好。

分享到: