【问题标题】:Vim encryption: how to break it?Vim 加密:如何破解?
【发布时间】:2010-10-09 05:11:15
【问题描述】:

最近我决定使用 vim 的 :X 加密我的工程日志 加密功能。我记下了密码,但显然我 拼写错误或搞砸了,因为解密文件只会给出 胡言乱语。更糟糕的是,所有我的备份不知何故 损坏(别问,我也不知道怎么弄的)。

我不会找借口:我知道我搞砸了。现在我想要 专注于如何解决我造成的混乱。

这是我尝试过的:

  1. 使用 vimzipper 将加密文件打包成一个 zip 文件,这样就可以 被标准的 zip 饼干破解,如 fcrackzip、zipcracker、 pkcrack、Advanced Zip Password Recovery 等。不幸的是,这 没有奏效。我从文件中恢复了一行明文 使用我的 VIMINFO 中寄存器的剩余信息,但我 文件中没有恢复的明文的偏移量。 无论如何,拉链开裂没有奏效,即使是简单的 带有三个字符的 vim 密码的测试文件。

    (见http://zeus.phys.uconn.edu/refs/crackers/vimzipper.c

  2. 无法恢复交换文件。当我重新打开 密码错误的加密文件,vim覆盖了“好” 交换文件。

  3. 使用大型明文数据库运行 unixcrypt-breaker(~30 古腾堡计划的书籍)作为参考数据。这导致 胡言乱语,即使我只用 恢复明文。此外,我似乎无法收支平衡 使用此方法使用 vim 加密的简单测试文件。 (仅供参考,我是 剥离 VimCrypt~01!在我运行之前的魔术头 解密,我在粘贴模式下使用 vim 将其剥离,所以我不 否则更改文件的内容)。

  4. 拼命猜出我能想象到的每一个密码和拼写错误。一世 至少花了六个小时猜测我可能拥有什么 拼写错误。 :)

为了从程序中快速尝试密码,我尝试编译 crypt/makekey 的旧 UNIX 副本,但结果不是 与使用 vim 的 -x 加密和加密相同的文件相同 相同的密码。

如果有人能提供帮助,我将不胜感激。如果没有,谢谢 读。 :)

【问题讨论】:

  • 在某些方面,我希望你不要为了其他人而成功......
  • 检索您在备份中保留的副本?
  • 那么,您的解决方案是什么?发生了什么?
  • 一个有趣的说明:Vim 7.3 (2010-08-15) 使用 Blowfish 加密。现在它已经发布了,你可以将set cm=blowfish 放在你的.vimrc 中开始使用它(并且再也无法恢复加密文件了!:))
  • ^ 除非你非常可以破解这种加密,因为vimblowfish 的原始实现很差,并且添加了严重的漏洞(超出了本机的漏洞)算法本身)。值得庆幸的是,它已经获得了blowfish2,这终于是一个受人尊敬的内置加密算法。所有这些的来源:dgl.cx/2014/10/vim-blowfish 和其中链接的 vim 补丁说明。

标签: encryption vim vi


【解决方案1】:

来自VIM documentation

  • 使用的算法是可破解的。大约一小时内一个 4 个字符的键,一个 6 一天之内的字符键(在 Pentium 133 PC 上)。这需要你知道 一些必须出现在文件中的文本。专家可以用任何键破解它。 当文本被解密后,这也意味着密钥可以被 可以解密其他使用相同密钥加密的文件。

如果它在 Pentium 133 上是可行的,我认为你有很好的机会。 :)

我会使用 #vim 询问算法的详细信息,或者浏览源代码以了解加密的工作原理,然后编写密码分析程序。

【讨论】:

    【解决方案2】:

    不确定这是否有帮助:

    解释如何破解使用“crypt”加密的文件,可能会给你一个起点(至少对于旧版本的 vi,加密是基于 crypt)。

    【讨论】:

      【解决方案3】:

      这个古老的newsgroup post和你有类似的问题:

      我的问题是我不小心使用 vi 加密了一个脚本并且无法调用密钥。 非常感谢所有回复的人。

      建议如下:

      • 使用 vi -x 并猜测密钥(我曾尝试过但没有成功)
      • 编写一个程序来进行加密调用并尝试可能的组合键。 提出这个建议的人估计大约需要 5 分钟才能破解
      • 从档案中下载 CWB(密码破解工作台),这将有助于破解
      • 将问题发布到 sci.crypt.newsgroup,包括加密后文件的前 128 个字节 以及加密前的这些字节(如果我记得的话)和组中的某个人可能会破解 给我的
      • 重新输入脚本

      你要打破这一点的一个婴儿床是你知道密码“应该”是什么。因此,即使您有一个随机的拼写错误,它仍然会与您的预期密码略有相似。也许您可以从那里开始,编写一个程序来生成您想要的密码与 1 或 2 个字符拼写错误的所有可能组合。

      无论如何,多么巧妙的练习/消遣!

      【讨论】:

        【解决方案4】:

        除了加密问题之外,您还可能遇到数据损坏问题吗?

        如果我要强制执行此操作,我想我会编写一个算法,开始尝试我可以使用的所有密码变体,然后再进行字典攻击。然而,在听完您的故事后 - 我有一种烦人的感觉,您并没有忘记密码,而是在某个地方出现了数据损坏问题,弄乱了您的密码/密码文本/密码密钥/其他任何东西。

        【讨论】:

        • 你知道,现在你这么说似乎很明显,但你可能是绝对正确的。这可以解释一些事情。我经常做备份,但不做完整性检查。这不是恶意软件(我定期扫描),但很可能我有数据损坏问题。我会调查的。感谢您的帮助。
        【解决方案5】:

        这个问题很老了。这是一个现代解决方案:

        使用 hashcat (https://hashcat.net/hashcat/)。 Hashcat 有一个适用于广泛加密算法的插件,它允许您指定和播种您的(蛮力起点-)字典文件,其中包含您仍然记得的有关丢失密码的提示。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-06-01
          • 2011-07-30
          • 1970-01-01
          • 1970-01-01
          • 2011-08-28
          • 2011-02-15
          • 2017-07-21
          相关资源
          最近更新 更多