このステップでは、John the Ripper で --format オプションを使用する方法を学びます。このオプションは、さまざまな種類のパスワードハッシュを扱う際に非常に重要です。なぜなら、John にどのハッシュタイプを期待し、どのように処理するかを指示するからです。John the Ripper は、従来の Unix crypt ハッシュから最新のアプリケーション固有のハッシュまで、幅広いハッシュフォーマットをサポートしています。
まず、John the Ripper がサポートする利用可能なハッシュフォーマットを一覧表示してみましょう。これにより、このツールの汎用性を把握できます。
john --list=formats
長いフォーマットのリストが表示されます。例えば、従来の Unix ハッシュ用の crypt、プレーンな MD5 ハッシュ用の raw-md5、Windows NT ハッシュ用の nt など、他にも多数あります。
次に、passwords.txt ファイルから、特定の既知のフォーマットをターゲットにしてパスワードをクラックしてみましょう。ここでは、SHA512 crypt ハッシュを持つユーザー user1 がいます。John に sha512crypt フォーマットを使用するように明示的に指示できます。
john --format=sha512crypt /home/labex/project/passwords.txt --wordlist=/home/labex/project/wordlist.txt
user1 のパスワード(この設定では password123)が単語リストに含まれている場合、John はそれをクラックします。
次に、passwords.txt ファイルから LM ハッシュ(user5)と NT ハッシュ(user6)をクラックしてみましょう。John はしばしばフォーマットを自動検出できますが、--format で明示的に指定すると、特に混合ハッシュタイプやあまり一般的でないフォーマットを扱う場合に、より高速で信頼性が高くなります。
john --format=lm /home/labex/project/passwords.txt --wordlist=/home/labex/project/wordlist.txt
john --format=nt /home/labex/project/passwords.txt --wordlist=/home/labex/project/wordlist.txt
クラッキングプロセスを示す、以下のような出力が表示される場合があります。
Using default input encoding: UTF-8
Loaded 1 password hash (sha512crypt, crypt(3) $6$ [SHA512 256/256 AVX2])
Press 'q' or Ctrl-C to abort, almost any other key for status
password123 (user1)
1g 0:00:00:00 DONE (2023-10-27 10:00) 100% (ETA: 10:00) 1.000g/s 1.000p/s 1.000c/s 1.000C/s password123
Session completed
このステップは、効率的で正確なパスワードクラッキングにおける --format オプションの重要性を示しています。