你手里有个加密的解压教程zip文件,密码忘了,缩包里面可能是解压教程十年前的照片,也可能是缩包某个项目的合同。别急着放弃,解压教程hashcat能帮你把密码“撞”出来——前提是缩包密码别太复杂,比如超过8位且带特殊符号的解压教程随机串,那基本没戏。缩包但如果是解压教程生日、姓名拼音、缩包或者常见键盘序列,解压教程这工具大概率能救你一把。缩包
先说原理。解压教程hashcat不直接攻击压缩包,缩包它需要你先提取出密码的解压教程hash值。什么是hash?你可以把它想象成压缩包密码的“指纹”,一段固定长度的乱码。提取工具有两个常用:zip2john(来自John the Ripper套件)和hashcat自带的hcxtools里的zip2hashcat。我用的是后者,因为它输出格式直接适配hashcat,省去转换步骤。
第一步,提取hash。打开终端,输入:
zip2hashcat encrypted.zip > hash.txt
如果提示找不到命令,就装一下hashcat-utils包。跑完打开hash.txt,你会看到一行类似$zip2$0$3$0$...$...的字符串。这就是密码的hash。注意:如果你的压缩包是rar格式,得用rar2john,命令类似,但输出格式不同。
第二步,选择攻击模式。hashcat的招牌是字典攻击和暴力破解。字典攻击就是拿一个密码列表去试,比如rockyou.txt(互联网泄露密码合集,约1400万条)。暴力破解则是穷举所有字符组合,速度慢得吓人,但适合短密码。先用字典试试,因为大多数人设密码都图省事。
命令长这样:
hashcat -m 17225 -a 0 hash.txt /path/to/rockyou.txt
-m 17225是zip2格式的代号,-a 0指定字典攻击。如果你的hash是rar,代号换成-m 13000。跑起来后屏幕会刷数字,那是每秒尝试的密码数。我的老显卡GTX 1060能跑到每秒200万次,一个千万级字典大约5分钟跑完。
如果字典没中,别灰心。很多人的密码是“生日+名字”这种组合,字典里没有。这时候用规则攻击,它会在字典基础上做变形,比如把“john”变成“John123”或“john1990”。命令加一个-r参数指向规则文件:
hashcat -m 17225 -a 0 hash.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule
best64.rule是常用变形规则,速度比纯字典慢几倍,但命中率提升明显。
暴力破解是最后一招,只推荐密码长度≤6位的情况。比如你知道密码是6位纯数字,那直接:
hashcat -m 17225 -a 3 hash.txt ?d?d?d?d?d?d
?d代表数字,6个就是6位。如果包含小写字母,用?l,混合就用?a(所有可打印字符)。但注意,8位纯数字有1亿种组合,我的显卡要跑50秒;8位纯小写字母就2000亿种,得跑一周。所以暴力破解前,先估算下时间成本。
实际案例:上个月我帮同事破解一个5年前的zip备份,密码是他前女友的英文名+数字后缀。字典没中,但用规则攻击时,best64.rule里的“加年份”规则直接命中——密码是“lily2017”。整个过程不到3分钟。这哥们儿当场愣住,然后苦笑说密码早忘了,但那个名字他记得清清楚楚。
最后提醒两点。第一,hashcat极其依赖GPU,CPU跑得慢到你怀疑人生。第二,破解他人文件前先确认授权,这工具能拿来救人也能拿来闯祸。技术本身没立场,但用的人得有底线。如果密码是15位随机字符,直接放弃,那已经不是算力问题,而是物理定律问题。