ハッキング学習やTryHackMeなどのCTF(Capture The Flag)に挑戦していると、パスワード解析ツール「John the Ripper(ジョン・ザ・リッパー)」を使用する場面が多くあります。しかし、実際に使っていると以下のようなメッセージに悩まされることがあります。
No password hashes left to crack (see FAQ)
この記事では、このエラーメッセージの原因と、具体的な対処方法について、初心者の方にも分かりやすく解説いたします。
エラーの原因:「すでにクラック結果が保存されている」
John the Ripperでは、一度パスワードの解析(クラック)に成功すると、その結果を自動的に保存する仕組みになっています。
具体的には、以下の場所に解析結果が記録されます。
~/.john/john.pot
このファイルには、すでに解析されたハッシュ値と対応するパスワードが保存されています。そのため、同じハッシュを再度john
にかけても「すでに解析済み」と判断され、冒頭のエラーメッセージが表示されます。
実際の状況例
私自身、TryHackMeのRoomで以下の流れを経験いたしました。
ssh2john
コマンドで、RSA秘密鍵からハッシュを抽出john
コマンドでパスワードを解析- 別の日に同じ形式の鍵ファイル(中身が同じ)を再度解析しようとしたところ、以下のエラーが表示
No password hashes left to crack (see FAQ)
この場合、IPアドレスやサーバーが違っていても、鍵ファイルの内容が同じであれば、john
は同一のものと判断します。
対処法:クラック結果の確認と再実行
すでに解析済みかどうかは、以下のコマンドで確認できます。
john --show hash
これにより、保存されたパスワードが表示されるはずです。
もし再度解析をやり直したい場合は、以下のようにjohn.pot
を削除してから再実行できます。
rm ~/.john/john.pot
john hash --wordlist=/usr/share/wordlists/rockyou.txt
ただし、john.pot
を削除すると、過去すべての解析結果が消えるため注意してください。
まとめ
- 「No password hashes left to crack」は、
john
が過去の結果を記録していることが原因 john --show hash
でパスワードを確認できる- 必要に応じて
john.pot
を削除し、再実行可能
John the Ripperを使いこなす上で、こうした仕組みを理解しておくと、不要なエラーや混乱を避けられます。
CTFや実践練習でのトラブル回避に、ぜひご活用ください。