绕过zip密码提取文件
上个月帮朋友抢救毕业论文,绕过他忘了压缩包密码,密码提里面是取文改了七版的终稿。试了十几个常用密码都不对,绕过他急得在咖啡厅来回踱步。密码提我打开终端,取文敲了几行命令,绕过三分钟后就拿到了那份docx文件。密码提他瞪大眼睛问:这算黑客技术吗?取文其实不算,我只是绕过利用了zip格式的一个设计漏洞。
大多数zip加密工具默认使用ZipCrypto算法,密码提而不是取文更安全的AES。ZipCrypto有个著名的绕过已知明文攻击弱点——只要你知道压缩包里任何一个文件的几个字节内容,就能在几秒内解出密钥。密码提论文嘛,取文开头总写着“摘要”或“目录”,这就是现成的已知明文。我用了pkcrack工具,把“摘要”两个字的UTF-8编码作为已知片段,暴力推导内部状态,然后直接解密整个包。整个过程甚至不需要知道密码本身。
当然,不是所有zip都这么脆弱。WinRAR和7-Zip默认用AES-256加密,那种情况下暴力破解基本没戏。但很多人图方便,勾选“zip加密”时用的还是老式加密,尤其是国内一些压缩软件的老版本。另一个更笨但有效的办法是检查压缩包注释和文件名。有些马大哈会把密码写在注释栏里,或者文件名就叫“密码123.zip”。我见过一个客户,密码直接是文件名的后六位。
如果连已知明文都没有,还有招。字典攻击——拿常见密码列表去试,比如“123456”“password”“生日组合”。有个叫hashcat的工具,配合GPU能每秒试几十亿次。但前提是你电脑够猛,或者愿意花几块钱租个云服务器。我上次帮人破一个四位纯数字密码的zip,用CPU跑了不到两分钟就出来了。那种加密强度,防的不是黑客,是普通人的好奇心。
最让我无语的是,有些加密工具其实根本没把数据加密,只是给文件名做了个掩码。用十六进制编辑器打开zip文件,直接能看到文件内容的明文。你看着那个“加密”的压缩包,里面藏着一封情书,但用记事本打开就能读到全部内容。这种事情发生过不止一次。我甚至怀疑,某些所谓“密码找回软件”就是干这个的——把文件头改一下,假装破解了。
说回正事。如果你真忘了密码,别急着找什么“万能破解工具”,那基本都是骗钱的。先试已知明文,再试字典,最后才考虑暴力。而且提前做好备份,比什么都强。我那个朋友后来把密码改成了“论文终版绝对不改2024”,结果三天后又忘了。这次他学乖了,直接在微信文件传输助手存了一份没加密的。
技术这东西,永远在道高一尺魔高一丈。但人的习惯,总是最薄弱的环节。