破解已知部分密码的 zip 文件

破解已知部分密码的 zip 文件

我有一个压缩由于忘记密码而无法打开的文件。我非常确定此密码的某些部分,但我不记得添加到其中的变体。我试过破解压缩包但我不知道如何表明我知道部分密码。总结一下:

  • 我知道密码的某些部分,例如“你好“,”世界“ 和 ”糟糕的通行证”。
  • 这些部件可以按任何顺序排列,并且不能全部使用。
  • 可能会出现一些额外的小部分,例如 3 到 5 个小写字母。

你知道有什么软件可以做到这一点吗?

答案1

方法概要:

  1. 使用像这样的实用程序crunch创建自定义词典文件。

  2. fcrackzip使用该自定义字典运行。

问题:

  • 最多 3 个字符串与 3-5 个小写字母混合可构成超过一万亿种可能的密码。仅仅生成该字典就需要一段时间。

  • crunch允许使用基于字符的通配符,但它对自定义字符串的处理不太灵活。为了解决这个问题,grep, ,sed似乎sort也需要,其中任何一个都会增加所需的时间,即几个小时,也许几天......

像这样的东西可能会起作用:

crunch 3 9 abcdefghijklmnopqrstuvwxyz123 | \
  grep '[123]' | # at least one number per dict entry
  egrep -v '([123]).*\1' | # remove repeated numbers
  sed 's/1/hello/;s/2/world/;s/3/shittypass/' | # replace numbers with strings
  sort -u | \
  fcrackzip -D -p /dev/stdin foo.zip 

具有较小问题集的测试用例(一个或两个字符串,最多两个小写字母,任意顺序):

echo foo > bar.txt  # file to archive
zip -P xhellobworld baz bar.txt   # archive with password
time crunch 2 4 abcdefghijklmnopqrstuvwxyz12 | \
     grep '[12]' | egrep -v '([12]).*\1' | \
     sed 's/1/hello/;s/2/world/' | \
     sort -n | fcrackzip -u -D -p /dev/stdin baz.zip 

输出:

Crunch will now generate the following amount of data: 3163440 bytes
3 MB
0 GB
0 TB
0 PB
Crunch will now generate the following number of lines: 637392 


PASSWORD FOUND!!!!: pw == xhellobworld

real    0m5.942s
user    0m2.240s
sys 0m1.040s

相关内容