bashを使用した無差別代入keepassxc

bashを使用した無差別代入keepassxc

Keepassxcデータベース(キーファイルを含む.kdbx)のパスワードの一部を忘れました。パスワードは20個の記号で構成され、そのうち17個が知られています。パスワードの不明な部分に使用されたと思われる文字(charlist.txtに入力されています)と、次のような小さな行を使用して、可能なすべての組み合わせのリストを生成しました。

for i in $(cat charlist.txt); do
  for j in $(cat charlist.txt); do
    for k in $(cat charlist); do
      echo $a$i$j$k
    done
  done
done > output.txt

Keepassxcを使用すると、stdinからパスワードを読み取ることができます(keepassxc --pw-stdinまたはを使用して最初のkeepassxc-cliものはstdin入力としてGUIを開き、2番目は「パスワード入力」の一般的な形式で入力する必要があります)。しかし、繰り返しの方法は理解できません。 Output.txtには5832行があり、手動無差別代入攻撃は不可能です。

Output.txtの内容や1行の出力をkeepassxcに渡す方法は?

答え1

たぶん、次のようなものがあります。

while read p; do
         echo "$p" | keepassxc --pw-stdin; 
done <output.txt

keepassxcが間違った入力を受けたときにどのように動作するかわかりません。 5831エラーウィンドウを開く準備ができました。

関連情報