はじめに
John the Ripper (JtR) は、広く利用されているオープンソースのパスワードクラッキングツールです。標準バージョンも強力ですが、「Jumbo」バージョンは、より多くのハッシュタイプ、クラッキングモード、ユーティリティのサポートを追加することで、その機能を大幅に拡張しています。この実験では、John the Ripper Jumbo のインストール方法と、その強化された機能の探索方法を解説します。新しいサポートハッシュフォーマットの特定方法、高度なクラッキングモードの利用方法、Jumbo パッケージに含まれる追加ツールの発見方法を学びます。この実験の終わりには、John the Ripper Jumbo をより包括的なパスワード監査およびリカバリタスクにどのように使用できるかについて、確かな理解を得られるでしょう。
John the Ripper Jumbo のインストール
このステップでは、公式 GitHub リポジトリから John the Ripper Jumbo をインストールします。これには、リポジトリのクローン、ソースディレクトリへの移動、およびソフトウェアのコンパイルが含まれます。
まず、ターミナルを開きます。~/project ディレクトリにいることを確認してください。
cd ~/project
次に、John the Ripper Jumbo リポジトリをクローンします。
git clone https://github.com/openwall/john-the-ripper.git
john-the-ripper/src ディレクトリに移動します。
cd john-the-ripper/src
John the Ripper Jumbo をコンパイルします。クリーンなビルドを保証し、ターミナルをすっきりさせるために冗長な出力を抑制するために make clean && make -s を使用します。
make clean && make -s
コンパイル後、john 実行可能ファイルは ~/project/john-the-ripper/run ディレクトリに配置されます。バージョンを確認することで、インストールの検証ができます。
~/project/john-the-ripper/run/john --version
以下のような出力が表示され、Jumbo バージョンであることが示されるはずです。
John the Ripper 1.9.0-jumbo-1 (linux-gnu 64-bit x86_64 AVX2)
Copyright (c) 1996-2023 by Solar Designer and others
...
Jumbo がサポートする新しいハッシュフォーマットの特定
このステップでは、John the Ripper Jumbo がサポートするハッシュフォーマットの広範なリストを探索します。Jumbo バージョンは、標準バージョンと比較してクラック可能なハッシュタイプの数を大幅に拡張しています。
サポートされているすべてのハッシュフォーマットを一覧表示するには、john 実行可能ファイルで --list=formats オプションを使用します。出力は非常に長いため、表示を容易にするために less にパイプします。
~/project/john-the-ripper/run/john --list=formats | less
リストを確認した後、less を終了するには q を押してください。
リストをフィルタリングして特定のハッシュタイプを見つけることもできます。たとえば、bcrypt に関連するフォーマットを表示するには、grep を使用できます。
~/project/john-the-ripper/run/john --list=formats | grep -i bcrypt
以下のような出力が表示され、さまざまな bcrypt フォーマットが示されるはずです。
bcrypt, bcrypt-opencl, bcrypt-cuda
これにより、Jumbo がより多くの最新かつ複雑なハッシュタイプをサポートしており、パスワード監査においてより汎用性が高いことがわかります。
Jumbo の新しいクラッキングモードの活用
このステップでは、John the Ripper Jumbo で利用可能な新しいクラッキングモードのいくつかについて学びます。Jumbo は、クラッキング効率を向上させることができる高度なクラッキング技術と最適化を導入しています。
強力な機能の 1 つは、ルール付き単語リストを使用できることです。基本的なクラッキング試行を実証するために、簡単なパスワードファイルと単語リストを作成しましょう。
まず、passwords.txt という名前のファイルにサンプルハッシュを作成します。デモンストレーションのために、簡単な MD5 ハッシュを使用します。
echo "user1:21232f297a57a5a743894a0e4a801fc3" > ~/project/passwords.txt
ハッシュ 21232f297a57a5a743894a0e4a801fc3 は、パスワード admin に対応します。
次に、wordlist.txt という名前の簡単な単語リストを作成します。
echo -e "password\nadmin\n123456" > ~/project/wordlist.txt
次に、単語リストモードを使用してハッシュをクラックしてみます。
~/project/john-the-ripper/run/john ~/project/passwords.txt --wordlist=~/project/wordlist.txt
パスワードがクラックされたことを示す出力が表示されるはずです。
Using default input encoding: UTF-8
Loaded 1 password hash (Raw-MD5 [MD5])
Cost 1 (iteration count) is not supported for this hash type.
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
admin (user1)
1g 0:00:00:00 DONE (2023-10-27 08:00) 100.0g/s 100.0p/s 100.0c/s 100.0C/s admin
Session completed.
クラックされたパスワードを表示するには、--show オプションを使用します。
~/project/john-the-ripper/run/john ~/project/passwords.txt --show
出力:
user1:admin
1 password hash cracked, 0 left
この基本的な例は、単語リストモードを示しています。Jumbo は、文字セット付きのインクリメンタルモード、外部モードなど、より複雑なモードもサポートしています。これらは、ドキュメントを使用してさらに詳しく調べることができます。
Jumbo の追加ユーティリティの探索
このステップでは、John the Ripper Jumbo にバンドルされている追加ユーティリティのいくつかを探ります。これらのユーティリティは、パスワードファイルの準備や単語リストの生成など、パスワード監査のさまざまな側面を支援するように設計されています。
便利なユーティリティの 1 つは unshadow です。これは /etc/passwd と /etc/shadow ファイルを結合して、John the Ripper が処理できる形式にします。システムファイルを変更しませんが、その使用法をシミュレートできます。
もう 1 つの重要なユーティリティは unique です。これは単語リストから重複エントリをフィルタリングできます。重複を含む単語リストを作成し、unique を使用してクリーニングしてみましょう。
duplicate_wordlist.txt という名前のファイルを作成します。
echo -e "apple\nbanana\napple\norange\nbanana" > ~/project/duplicate_wordlist.txt
次に、run ディレクトリにある unique ユーティリティを使用して重複を削除します。
~/project/john-the-ripper/run/unique ~/project/duplicate_wordlist.txt
出力には一意の単語のみが表示されるはずです。
apple
banana
orange
これにより、unique が単語リストを絞り込むためにどのように使用できるかがわかります。これは効率的なクラッキングにとって非常に重要です。他のユーティリティは ~/project/john-the-ripper/run ディレクトリで見つけることができます。
Jumbo と標準版 John the Ripper の比較
このステップでは、標準バージョンと比較した John the Ripper Jumbo の主な違いと利点を理解します。標準バージョンは堅牢なツールですが、Jumbo は大幅な機能強化を提供します。
Jumbo の主な利点は次のとおりです。
- 拡張されたハッシュサポート: Jumbo は、標準バージョンにはない多くの最新のアプリケーション固有のハッシュを含む、はるかに幅広いハッシュタイプをサポートしています。これはステップ 2 で実証されました。
- 最適化されたパフォーマンス: Jumbo には、多くの場合、最適化されたクラッキングアルゴリズムと、より高速なクラッキングのためのハードウェア (OpenCL/CUDA を介した GPU など、この実験ではカバーされていません) のより良い利用が含まれています。
- 追加ユーティリティ: ステップ 4 で見たように、Jumbo はパスワード監査プロセスを合理化するいくつかのヘルパーユーティリティをバンドルしています。
- 活発な開発: Jumbo バージョンは通常、コミュニティからより頻繁な更新と新機能を受け取ります。
要約すると、パスワード監査または回復を真剣に考えている場合、Jumbo バージョンの John the Ripper は、その拡張された機能と活発な開発により、ほぼ常に好ましい選択肢です。標準バージョンは基本的なタスクで十分かもしれませんが、Jumbo はより包括的で最新のツールキットを提供します。
John the Ripper Jumbo のインストール、新しいハッシュ形式サポートの探索、基本的なクラッキングモードの利用、および追加ユーティリティの 1 つの発見に成功しました。この実験では、Jumbo バージョンが提供する強化された機能の基本的な理解を得ました。
まとめ
この実験では、John the Ripper Jumbo をソースコードから正常にインストールし、強力なセキュリティツールのコンパイルプロセスを実証しました。次に、さまざまなハッシュ形式に対する広範なサポートを探索し、さまざまな種類のパスワードハッシュを処理する上での Jumbo の汎用性を強調しました。また、単語リストを使用してサンプル MD5 ハッシュをクラックすることにより、クラッキングモードの 1 つを使用する実践的な経験を得ました。さらに、より効率的なクラッキングのための単語リストの準備に役立つ追加ユーティリティ unique を発見して利用しました。最後に、Jumbo バージョンが標準の John the Ripper よりも優れている主な利点を理解し、そのより広範なハッシュサポート、パフォーマンス最適化、およびバンドルされたユーティリティを強調しました。この実験により、高度なパスワード監査および回復タスクに John the Ripper Jumbo を活用するための実践的なスキルと知識を習得しました。


