使用脚本暴力破解GPG密码短语

13

我已经忘记了在Linux上GPG密钥的密码。请帮忙编写一个简单的脚本来使用暴力破解破解密钥吗?我还记得可能在密码中有几个单词,所以希望我的计算机能够很快地进行暴力破解。

如果我无法恢复密码,也不是一切都失去了,这意味着我将不能在接下来的10天内参与项目开发,直到回到工作中心获取文件的另一个副本,但这次需要新的密钥,我将记住密码。

然而,在这10天内能够参与项目开发会是件好事。

3个回答

8
也许是类似这样的内容:

可能是这样的:

#!/bin/bash
#

# try all word in words.txt
for word in $(cat words.txt); do 

  # try to decrypt with word
  echo "${word}" | gpg --passphrase-fd 0 --no-tty --decrypt somegpgfile.gpg --output somegpgfile;

  # if decrypt is successfull; stop
  if [ $? -eq 0 ]; then

    echo "GPG passphrase is: ${word}";
    exit 0;

  fi

done;

exit 1;

这只能适用于每行完整的单词吗?如果我只记得口令短语的一部分怎么办? - oshirowanen
1
您可以生成包含您记得的部分的密码短语列表。 - tersmitten

6

1) 这个脚本不会简单,至少不是你所想象的“简单”。

2) 它需要很长时间——这就是使用口令短语而不是简单密码的原因。编写这样的脚本,将你的单词(可能不在短语中)和尝试迭代结合起来,可能需要超过十天的时间。

3) 你很可能也会忘记下一个口令短语。

4) 哎呀!

抱歉,伙计,是时候开始一个新项目了(至少可以消磨接下来的十天——我建议一个口令破解器作为理想的消遣方式)。

圣诞快乐!

-Oisin


3
抱歉,伙计,是时候开始一个新项目了(至少在接下来的十天里打发时间)。我破解密码?:D - oshirowanen
是的,这个项目非常具有讽刺意味,开始写吧!(编辑后包括这个俏皮话 - 旨在双关) - x0n
1
哈哈,好的,我想我只能花接下来的10天时间大量食用火鸡和酒精了! - oshirowanen
我相信你现在可以在Github上找到一些东西,比如https://github.com/mathewmarcus/bruteforce-gpg。 - Максим Шатов
@МаксимШатов 他说的是接下来的十天,不是十年 ;) - x0n

5

Tersmitten的回答可能已过时。

echo "${word}" | gpg --passphrase-fd 0 -q --batch --allow-multiple-messages --no-tty  --output the_decrypted_file -d /some/input/file.gpg;

我使用了上面这行代码,搭配gpg 2.0.20和libcrypt 1.5.2版本,达成了预期结果。


将tersmitten代码的第8行替换为您的代码对我有用。 我使用了gpg(GnuPG)2.2.20和libgcrypt 1.8.7(截至2021年1月最新版本)。 - Ghazali

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接