John the Ripperは、ハッシュ化されたパスワードや暗号化ファイルのパスフレーズを検証するためのオープンソースツールです。
「john the ripper 使い方」「john the ripper ダウンロード 方法」で調べている人向けに、インストールからZIPファイルの解析、結果確認までの基本コマンドをまとめます。
主な用途は次の通りです。
- 忘れたパスワードの解析
- 管理している環境のパスワード強度チェック
- セキュリティ診断やペネトレーションテストの学習
注意
John the Ripperは強力な解析ツールです。自分が所有しているファイル、検証用のラボ、または明示的に許可を得た環境だけで使ってください。第三者のファイルやアカウントに対して無断で使うのは避けましょう。
まず全体の流れ
John the Ripperでは、多くの場合いきなり元ファイルを解析するのではなく、次の流れで進めます。
- John the Ripperをインストールする
- 解析対象からハッシュファイルを作る
johnコマンドでハッシュを解析するjohn --showで解析結果を確認する
たとえばZIPファイルなら、zip2johnでハッシュを取り出してからjohnに渡します。
zip2john sample.zip > hash.txt
john --wordlist=password.lst hash.txt
john --show hash.txt
John the Ripperのインストール
Windows環境でのインストール
- John the Ripper公式サイトからWindows向けのパッケージを取得します。
- ZIPファイルを解凍し、任意のフォルダに配置します。
runフォルダに移動して、john.exeを実行できることを確認します。
cd C:\path\to\john\run
.\john.exe --list=build-info
Windowsでは、記事や資料によってjohnではなくjohn.exeと書かれている場合があります。コマンドプロンプトやPowerShellでは、実行ファイル名に合わせて読み替えてください。
Linux環境でのインストール
UbuntuやDebian系の環境では、次のようにインストールできます。
sudo apt update
sudo apt install john
インストール後は、次のコマンドで動作確認します。
john --list=build-info
Kali Linuxでは、John the Ripperがあらかじめ入っていることもあります。入っていない場合は同じくaptで追加できます。
ソースからビルドする場合
最新版やJumbo版の機能を使いたい場合は、ソースからビルドする方法もあります。ただし、初心者がまず試すなら、公式配布パッケージまたはOSのパッケージマネージャーから始めるのがおすすめです。
ビルドが必要になったら、公式ドキュメントの手順を確認してください。
ZIPファイルを解析する流れ
ZIPファイルを例にすると、最初にzip2johnでハッシュを抽出します。
zip2john sample.zip > hash.txt
次に、辞書ファイルを使って解析します。
john --wordlist=password.lst hash.txt
Kali Linuxなどでは、辞書ファイルとしてrockyou.txtを使う例もよく見かけます。環境によってパスが違うので、存在確認してから指定しましょう。
ls /usr/share/wordlists/
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
解析結果は次のコマンドで確認できます。
john --show hash.txt
よく使うコマンド早見表
| やりたいこと | コマンド例 |
|---|---|
| ZIPからハッシュを抽出 | zip2john sample.zip > hash.txt |
| 辞書攻撃で解析 | john --wordlist=password.lst hash.txt |
| 総当たり系の解析 | john --incremental hash.txt |
| 解析結果を見る | john --show hash.txt |
| 対応フォーマットを確認 | john --list=formats |
| セッションを再開 | john --restore |
解析方法の違い
辞書攻撃
辞書攻撃は、単語リストに含まれる候補を順番に試す方法です。
john --wordlist=password.lst hash.txt
「password」「company2024」のような、人間が選びがちなパスワードを検証したいときに向いています。現実的な診断では、総当たりよりもまず辞書攻撃から試すことが多いです。
辞書攻撃 + ルール
Johnには、単語を少し変形して試すルール機能があります。
john --wordlist=password.lst --rules hash.txt
たとえば、辞書にsummerがある場合にSummer2024のような変形候補も試せます。
総当たり・インクリメンタル
辞書にないパスワードを試す場合は、インクリメンタルモードを使います。
john --incremental hash.txt
ただし、文字数や文字種が増えるほど必要時間は急激に伸びます。実務では「何をどこまで試すか」を先に決めておかないと、終わりが見えなくなります。
フォーマットを明示する
Johnが自動判定できることもありますが、うまくいかない場合は--formatを指定します。
john --format=zip --wordlist=password.lst hash.txt
対応フォーマットの一覧は次で確認できます。
john --list=formats
応用例
SSH秘密鍵ファイルのパスフレーズ解析
SSH秘密鍵のパスフレーズを検証する場合は、ssh2johnを使ってハッシュを抽出します。
ssh2john id_rsa > ssh_hash.txt
john --wordlist=password.lst ssh_hash.txt
john --show ssh_hash.txt
環境によってはssh2john.pyという名前になっていることもあります。
PDFファイルの解析
PDFの場合は、pdf2johnでハッシュを取り出します。
pdf2john secret.pdf > pdf_hash.txt
john --wordlist=password.lst pdf_hash.txt
zip2john、ssh2john、pdf2johnのように、対象ファイルごとにハッシュ抽出用の補助コマンドが用意されている、と覚えると理解しやすいです。
解析がうまくいかないときの確認ポイント
1. ハッシュ抽出に失敗していないか
zip2johnなどの出力が空、またはエラーになっている場合、johnに渡しても解析できません。
cat hash.txt
ハッシュファイルに何も出ていなければ、対象ファイルや補助コマンドを確認します。
2. フォーマットが合っているか
Johnが別の形式として認識している場合は、--formatを指定します。
john --format=zip --wordlist=password.lst hash.txt
3. すでに解析済みではないか
Johnは解析結果をjohn.potに保存します。同じハッシュを再度解析すると、すでに結果が保存されていることがあります。
john --show hash.txt
4. 解析時間の見積もりが甘くないか
パスワードの長さ、文字種、暗号化方式によって解析時間は大きく変わります。短く単純なパスワードはすぐ見つかることがありますが、長くランダムなパスワードは現実的な時間で見つからないこともあります。
John the Ripperとhashcatの違い
John the Ripperとhashcatはどちらもパスワード解析で使われますが、ざっくり次のように使い分けられます。
| ツール | 向いている場面 |
|---|---|
| John the Ripper | CPU中心の検証、補助ツール込みでさっと試したい場合 |
| hashcat | GPUを使った高速解析、大量のハッシュを効率よく試したい場合 |
まずJohnで流れを理解し、より高速な解析が必要になったらhashcatも検討するとよいです。
関連記事: hashcatの使い方と基本操作ガイド
よくある質問
John the RipperはWindowsでも使えますか?
使えます。公式サイトからWindows向けのパッケージを取得し、runフォルダ内のjohn.exeを実行します。Linux向けの記事ではjohnと書かれることが多いので、Windowsではjohn.exeに読み替えてください。
zip2johnが見つからない場合は?
インストール方法やパッケージによって、補助コマンドの配置場所が違うことがあります。Johnのrunディレクトリや、OSのパッケージでインストールされたコマンド一覧を確認してください。
解析できないパスワードもありますか?
あります。長くランダムなパスワードや強い暗号化方式では、現実的な時間で解析できないことがあります。Johnは万能な解除ツールではなく、候補を試して一致するかを検証するツールです。
まとめ
John the Ripperの基本は、対象ファイルからハッシュを抽出し、johnで解析し、john --showで結果を見る流れです。
- ZIPなら
zip2john - SSH秘密鍵なら
ssh2john - PDFなら
pdf2john - 結果確認は
john --show
最初は検証用のファイルを自分で作り、短いパスワードで動作を確認するのがおすすめです。その上で、許可された範囲だけで利用しましょう。