KeePassXを使用してテストDBファイル(.kdbx)を作成し、その後、keepass2john Python port from this site を使用しましたが、88行目を変更しました。
index += 2
に
index += 4
このフィールドのサイズが2ではなく4バイトであるためです(この変更を行わないと、プログラムは誤った結果を表示します)。 test.hash
を出力します:
$keepass$*2*0*253*e73cfb2502b6e543902ec7db45c751195c3dd8b8531b744537cbeebd8c641ecd**59ac17e7e0a201e1fae906371d65f6c6**8753d87e52c88988d168c9a4c75e76febecc74fd6ba40c7254d1c47f672d5bbf
その後、hashcat, v. 5.1.0
を次のように使用しました:
hashcat -a 0 -m 13400 test.hash example.dict
出力にエラーが表示されます:
Hashfile 'test.hash' on line 1 ($keepa...becc74fd6ba40c7254d1c47f672d5bbf):
Token length exception
No hashes loaded.
どうしましたか? KeepassはDBファイルのフォーマットを変更し、hashcatは正しくクラックできませんか?
この質問はハッシュキャットGitHubにクロス投稿され、 ここ と回答しました。
関連する keepass2johnコメント は、KeePass 2.36より前のバージョンのみが変換をサポートしていると述べています。
新しいバージョンはArgon2またはChaCha20を使用する可能性がありますが、hashcatはこの執筆時点ではこれらをサポートしていません。 John the Ripper GitHub issue の関連記事も参照してください。