如何恢复丢失的 zip 文件密码?

信息安全 密码 密码破解 文件加密 压缩
2021-08-17 12:20:37

我有一些大学老师给我的文件,我可以追他,但我也可以尝试从石头上取血,他的反应率不是很好,我一年前完成了我的学位!

它们是存储在受密码保护的 zip 文件中的 pdf 文件。密码与网络相关,有大小写和数字,但据我记得没有特殊字符,有些是相互排列的“passwordL1”,“l2Password”等。

.zip 文件采用哪些不同的加密算法?

如何确定对我的 zip 文件使用的保护?

我在哪里可以找到好的论文和工具,最终将把被密码隐藏的 pdf 文件还给我?

4个回答

如果你还没有看过它,我会推荐几个来源。

  • 带有社区巨型补丁的开膛手约翰支持 zip 破解。如果您查看支持的模式,则有一些用于破解 zip 密码的选项(包括基本的暴力破解)。

  • Elcomsoft有很好的 zip 破解程序,包括在某些情况下保证恢复

  • 还有一些像这样的公司似乎有 GPU 加速的 zip 破解,这可能会根据您的硬件加快速度。

就方法而言,这听起来像是一个基于字典的攻击,带有突变规则(所以用像 leet speak 规则这样的东西来改变字典)将是最好的选择,特别是如果你知道这些词来自一个特定的域. 直接蛮力可能不是一个好主意,因为它往往会超过 8 个字符(除非你在上面投入了大量的 CPU/GPU 能力)

您也可以使用这个 shell 脚本。

资料来源:http ://synacl.wordpress.com/2012/08/18/decrypting-a-zip-using-john-the-ripper/

#!/bin/bash
echo "ZIP-JTR Decrypt Script";
if [ $# -ne 2 ]
then
echo "Usage $0 <zipfile> <wordlist>";
exit;
fi
unzip -l $1
for i in $(john --wordlist=$2 --rules --stdout) 
do
 echo -ne "\rtrying \"$i\" " 
 unzip -o -P $i $1 >/dev/null 2>&1 
 STATUS=$?
 if [ $STATUS -eq 0 ]; then
 echo -e "\nArchive password is: \"$i\"" 
 break
 fi
done

有不同的恢复套件可用。他们中的大多数实施这些解决方案:

  • 蛮力攻击
  • 字典攻击
  • Biham-Kocher 攻击(当你有部分文本时,这种攻击是可能的)
  • 保持攻击(也基于明文)

此外,这个链接(我从中获得了大部分信息)表明,如果您使用最近的 winzip(因为您去年对此进行了加密,所以怀疑它),加密是带有 128 位或 256 位密钥的 AES。这意味着您只能尝试暴力攻击。

只是想使用fcrackzipCLI 工具添加另一种方法。它存在于大多数 Linux 发行版存储库中,例如 Ubuntu 和 Fedora/CentOS。使用它非常简单:

$ fcrackzip -b -c a1:$% -l 1-6 -u myencrypted.zip

选项

  • -b - 蛮力
  • -c a1:$% - 指定要使用的字符集
  • -l 1-6 - 指定要尝试的密码长度
  • -u - 解压缩以清除错误密码

用法

$ fcrackzip --help

fcrackzip version 1.0, a fast/free zip password cracker
written by Marc Lehmann <pcg@goof.com> You can find more info on
http://www.goof.com/pcg/marc/

USAGE: fcrackzip
          [-b|--brute-force]            use brute force algorithm
          [-D|--dictionary]             use a dictionary
          [-B|--benchmark]              execute a small benchmark
          [-c|--charset characterset]   use characters from charset
          [-h|--help]                   show this message
          [--version]                   show the version of this program
          [-V|--validate]               sanity-check the algortihm
          [-v|--verbose]                be more verbose
          [-p|--init-password string]   use string as initial password/file
          [-l|--length min-max]         check password with length min to max
          [-u|--use-unzip]              use unzip to weed out wrong passwords
          [-m|--method num]             use method number "num" (see below)
          [-2|--modulo r/m]             only calculcate 1/m of the password
          file...                    the zipfiles to crack

methods compiled in (* = default):

 0: cpmask
 1: zip1
*2: zip2, USE_MULT_TAB