はじめに
オフラインのパスワード復元は、ログインを試す代わりに、提供されたハッシュと候補を比較します。成功や失敗を解釈するには、形式、候補集合、保存された復元状態の理解が不可欠です。
この実習では、意図的に弱い演習用ハッシュ一つと、ごく小さな辞書を提供します。専用の pot とセッションを使い、範囲を限定した John の辞書復元を実行し、アカウントに対応する結果を表示して保存します。
提供された弱いパスワードをオフラインで復元する
このステップでは、既知の演習用ハッシュ形式に小さな候補一覧を使い、他の演習とは復元状態を分けます。
Kali に入り、提供された演習ディレクトリを選びます。
kali
cd /home/labex/project/password-practice
パスワードハッシュは、パスワードを平文で保存せずに照合するための、導出された表現です。ソルトは、同じパスワードから異なる保存ハッシュができるようにします。この演習では、ソルト付きの SHA512-crypt 形式で表した、意図的に弱い演習パスワードを提供します。これは生の SHA-512 ダイジェストとは別の形式です。
提供されたアカウントとハッシュのファイルを読みます。
cat hashes.txt
行は、演習アカウント名、コロン、$6$ で始まるハッシュの順です。ソルトと導出値は、保存された表現の一部です。ハッシュを生成・編集する必要はありません。
小さな候補一覧を調べます。
cat candidates.txt
各行はパスワード候補一つです。辞書復元は、提供されたハッシュに対して候補をオフラインでテストします。ネットワークサービスへログイン試行を送りません。
John はパスワード復元ツールです。--format=sha512crypt は提供形式を明示的に選び、--wordlist=candidates.txt は候補ファイルを選び、--pot=guided.pot は専用 pot ファイルに復元結果を保存します。--session=guided-session は、無関係なセッションと混ぜず、この実行の復元セッションを名付けます。
john --format=sha512crypt --wordlist=candidates.txt --pot=guided.pot --session=guided-session hashes.txt
完了を待ちます。出力は一つのパスワードの復元を報告するはずです。正確な性能値やスレッドのメッセージは異なります。pot ファイルは復元したハッシュとパスワードの対応を保存するので、同じ pot で再実行すると、復元済みのハッシュを飛ばす場合があります。これは新しい試行が再び復元した証明ではありません。
辞書実行は、候補の不在、形式の選択誤り、入力形式の不備によって失敗することがあります。失敗は、パスワードの復元が不可能な証拠ではありません。
確認した復元結果を表示して保存する
このステップでは、John で復元状態を読み、確認用にアカウントに対応する結果を保存します。
同じ演習ディレクトリにとどまってください。John の --show モードは、指定 pot と提供ハッシュファイルを照合し、復元したアカウントとパスワードの結果を表示します。
john --show --format=sha512crypt --pot=guided.pot hashes.txt
アカウント行には training-user:cedar42 があり、復元したハッシュが一つ、残りがないことを示す概要が続くはずです。パスワードは意図的に弱く、提供された候補一覧にあります。
復元成功の主張を手書きせず、この確認済みの表示を保存します。
john --show --format=sha512crypt --pot=guided.pot hashes.txt > recovered.txt
cat recovered.txt
保存ファイルには、アカウントに対応する結果と復元概要があるはずです。正確な演習データと結果を照合できるよう、提供ハッシュ、候補一覧、専用 pot を一緒に保持してください。
結果には平文の演習用認証情報が含まれます。実務では、復元パスワードは機密の証拠であり、許可された作業手順内だけで扱います。この演習は、実際のアカウントのテストや、デモ用パスワードの再利用を要求しません。
まとめ
ハッシュ、ソルト、平文を区別し、明示的な形式でオフライン辞書復元を実行し、pot とセッションを分離して、show モードの結果を保存しました。復元を、特定の提供ハッシュと候補集合に関する証拠として解釈しました。



