游客发表
去年帮朋友做渗透测试,用教拿到一台Windows服务器的用教NTLM哈希后,我盯着那个32位的用教十六进制字符串发了会儿呆。用John跑了一晚上没结果,用教换成hashcat,用教配合一张RTX 3080,用教不到四十分钟就撞出了明文——密码是用教 Summer2023!。这事儿让我彻底服了hashcat的用教算力调度。下面直接聊怎么用。用教
hashcat不认“密码”,只认哈希模式。用教跑之前必须确定 -m 参数。用教NTLM是用教1000,MD5是用教0,SHA1是用教100,bcrypt是3200,WPA/WPA2是22000。拿不准就执行:
hashcat --example-hashes | grep -i "ntlm" 会列出对应编号和示例哈希。别猜,猜错了跑一天也出不来。
字典攻击最常用:
hashcat -m 1000 hash.txt rockyou.txt rockyou.txt 约1400万条,对弱密码足够。但遇到带规则的变体,比如 P@ssw0rd123,纯字典就废了。加规则文件:
hashcat -m 1000 hash.txt rockyou.txt -r rules/best64.rule best64.rule 会把每个单词做64种变形,实际测试中命中率提升明显。
掩码攻击适合知道密码结构的情况。比如公司默认密码是“两个大写字母+四个数字+一个感叹号”:
hashcat -m 1000 hash.txt -a 3 ?u?u?d?d?d?d?s ?u 大写字母,?d 数字,?s 特殊符号。八位掩码在3080上大概几分钟跑完。
组合攻击把两个字典拼起来:
hashcat -m 1000 hash.txt -a 1 dict1.txt dict2.txt 混合模式则是字典+掩码,比如 password 后面跟三个数字:
hashcat -m 1000 hash.txt -a 6 rockyou.txt ?d?d?d 默认设置不一定最快。先跑基准测试:
hashcat -b -m 1000 看你的显卡能到多少MH/s。如果远低于预期,检查 -w 参数。工作负载从1到4,4最快但桌面会卡顿。我一般用3:
hashcat -m 1000 hash.txt rockyou.txt -w 3 多显卡用 -d 1,2 指定设备。笔记本用户注意散热,长时间跑建议 --hwmon-temp-abort=90,超过90度自动停。
跑大任务时按 s 保存进度,c 查看状态。意外中断后:
hashcat --restore 破解结果默认只显示在终端。加 -o cracked.txt 写入文件,配合 --outfile-format=2 只输出明文。想看已破解的哈希和密码对应关系:
hashcat -m 1000 hash.txt --show 有次跑NTLM哈希,字典加规则跑了六小时没结果。后来用 --username 发现哈希文件里混了用户名,格式错了导致全部跳过。hashcat不会报错,只是默默跑无效数据。现在养成的习惯:先 head -1 hash.txt 确认格式,再 --stdout 测试字典读取是否正常。
另外,别在虚拟机里跑hashcat。GPU直通损耗至少30%,物理机才是正路。如果只有CPU,放弃吧,NTLM在i7上也就每秒几百万次,跟显卡差两个数量级。
最后提醒:只在自己拥有或获得书面授权的系统上测试。hashcat是把刀,切菜还是伤人,看握刀的手。
友情链接