你如何获得一个zip文件的密码哈希?

Fal*_*per 11 encryption passwords terminal hash

我正在做一个CTF样本,他们给了我文件哈希.我通过JtR运行它,我得到了我的密码样本.问题是,哈希给了我.有没有办法找到该文件的哈希值,如果它没有给出?

有两点需要解决才能击败密码.HASH和加密算法.

我一直在练习密码保护的zip文件,所以我认为它是使用zip 2.0或某种东西或某种AES,我可以在谷歌的帮助下解决这个问题.

但是,我无法找到如何访问该哈希数据的zip文件的元数据.由于它是一个标准,压缩的东西不需要在存储密码时使用其中的算法.但是,需要某种哈希值.

有谁知道如何使用密码保护的zip文件示例,知道如何做到这一点?

我现在正在使用macbook pro

Ate*_*omp 14

密码哈希不会从文件中提取.开膛手约翰(JtR)并没有这么做.您可以下载JtR的代码来弄清楚它是如何完成的.这是一篇关于如何使用zip2john和rar2john获取.zip和.rar文件的所谓"非哈希"信息的小文章:http://www.cybercrimetech.com/2014/07/how-to-cracking- 拉链和RAR-protected.html

为了纠正用词不当,JtR实际上并没有从文件中"检索哈希".它从文件中提取某些信息,例如,如rar2john代码中所述:

Output Line Format:
 *
 * For type = 0 for files encrypted with "rar -hp ..." option
 * archive_name:$RAR3$\*type\*hex(salt)\*hex(partial-file-contents):type::
       ::archive_name
 *
 * For type = 1 for files encrypted with "rar -p ..." option
 * archive_name:$RAR3$\*type\*hex(salt)\*hex(crc)\*PACK_SIZE\*UNP_SIZE\*0\*
       archive_name\*offset-for-ciphertext\*method:type::file_name
 *
 * or
 *
 * archive_name:$RAR3$\*type\*hex(salt)\*hex(crc)\*PACK_SIZE\*UNP_SIZE\*1\*
       hex(full encrypted file)\*method:type::file_name

因此,如上所示,不提取"密码哈希".此外,完全没有认为该文件是"完全"加密的(正如其他人回答类似问题所建议的那样).相反,检索关键的未加密和加密的文件项,例如salt,以生成"非哈希".JtR使用这些项目进行各种密码猜测来测试解密.它使用zip或rar密码哈希生成函数从猜测中创建一个哈希值,而该哈希值又用于生成密钥值.然后,生成的密钥值用于测试加密文件的小的,提取的和明确定义的部分.

因此,虽然JtR不是"提取密码哈希",可以发送到任何ol'password-hash-checker-rainbow-table-lookup-thingy,但它正在做下一个最好的事情 - 提取关键破解信息.破解的步骤主要是:1)从密码猜测生成哈希,2)添加一些额外的步骤来检查解密成功或失败(很多失败),以及3)重复.使rar破解如此困难的原因是每个rar文件都有不同的盐,更重要的是,在执行解密测试之前需要大量且可变数量的哈希迭代.较新的zip过程是类似的,但迭代不是可变的 - 最后我检查 - 使它更容易一些.

这是问题的"如何完成"的答案,答案是"你没有"获取zip文件的真实密码哈希,直到文件被破解之前.

问题的CTF练习的例子是误导性的.给定的"哈希"可能是为练习准备的一个简单的密码哈希,以简化学生的破解过程,或者它可能是一个特定的zip2john"非哈希",导致一个相当简单的密码JtR猜测 - 短,普通或两者兼而有之.提问者没有提供"哈希"或"哈希文件"来验证任何一种方式.


Eri*_*ric 5

为什么需要哈希?压缩文件被压缩然后加密。这不需要在文件中存储哈希,因为它不是进行身份验证,而是进行解密。文件中唯一可以存储的是盐,具体取决于所使用的加密。

  • @Fallenreaper 你误读了挑战。挑战在于他们希望您找到生成哈希值的明文数据。该 zip 文件只是一个证明,如果您成功,它将为您提供奖品(图像)。他们可以很容易地让你在网站上输入密码进行验证。想一想,如果 zip 文件存储了哈希值,为什么不直接用已知单词的哈希值替换该哈希值呢? (2认同)