John the Ripperは、パスワードクラッキングを目的とした、非常に汎用性の高い自由ソフトウェアツールです。当初は
UNIX環境向けに開発されましたが、現在では15種類以上のプラットフォームで利用可能です。このツールは、複数のパスワードクラッカーを一つのパッケージに統合しており、与えられたパスワードハッシュの種類を自動的に識別する機能も備えています。
John the Ripperの最大の特徴の一つは、そのカスタマイズ性です。ユーザーは、さまざまなパスワード解読アプローチを試すことができ、頻繁に使用されるパスワードのテストや解読に非常に役立ちます。対応する
暗号化されたパスワード形式も多岐にわたり、一般的な
UNIXシステムで見られるcryptハッシュ、Kerberos AFS、Windows NT/2000/XP/2003の
LMハッシュなどが含まれます。さらに、モジュールを追加することで、
MD4ベースのパスワードハッシュや、LDAP、
MySQLなどのデータベースに保存されたパスワードにも対応可能です。
Debian環境での使用例
以下は、Debian環境でJohn the Ripperを使用する際の例です。
1. `cat pass.txt` : このコマンドは、`pass.txt`ファイルの内容を表示します。
2. `AZl:zWwxIh15Q` : ファイルの内容は、ユーザー名(`AZl`)とそのパスワードハッシュ(`zWwxIh15Q`)です。
3. `john -w password.lst pass.txt` : このコマンドは、John the Ripperを実行します。`-w`フラグは、単語リストを含むファイル(この場合は`password.lst`)を指定し、`pass.txt`ファイルに記載されたハッシュの解読を試みます。
実行結果を見ると、1つのパスワードハッシュがロードされ(catコマンドで表示されたもの)、ハッシュの種類(この場合は従来のDES)が特定されていることがわかります。また、この試行は0秒で完了し、1つの推測が行われ、推測率は100%であることが示されています。
攻撃の種類
John the Ripperは、複数の攻撃手法を提供していますが、その中でも代表的なものに以下の二つがあります。
辞書攻撃
この攻撃手法では、あらかじめ用意された単語リスト(辞書)から単語を取り出し、解読対象のパスワードと同じ形式で
暗号化します。その後、生成されたハッシュ値を解読対象のハッシュ値と比較することで、パスワードの特定を試みます。辞書内の単語だけでなく、一般的なパスワードの変更パターン(文字の置換や数字の追加など)も試すことができます。このプロセスは、Johnのシングルアタックモードでも利用され、ハッシュ値と関連するプレーンテキストの変更を検証するのに役立ちます。
総当たり攻撃(ブルートフォースアタック)
この攻撃では、プログラムはすべての可能なプレーンテキストに対して、
暗号化
ハッシュ関数を適用し、生成されたハッシュ値を解読対象のハッシュ値と比較します。John the Ripperは、文字の出現頻度に基づいたテーブルを利用して、より頻繁に使用される文字を含むプレーンテキストから試行します。この手法は、辞書に含まれていない複雑なパスワードを解読する際に有効ですが、非常に時間がかかることがあります。
関連情報
力まかせ探索:
総当たり攻撃とも呼ばれ、すべての可能性を試す方法です。
Crack:パスワードを解読する行為や、そのためのツールを指します。
Openwall Project:John the Ripperの開発を支援するプロジェクトです。
パスワードクラック:パスワードを解読する行為全般を指します。
外部リンク
*
公式ウェブサイト