John the Ripper (JtR) は、広く利用されているパスワードクラッキングツールです。その強力な機能の一部として、様々なファイル形式からパスワードハッシュを抽出し、解析可能な形式に変換するための補助ツール群が提供されています。その中の一つが padlock2john
です。このツールは、Padlock パスワードマネージャーの暗号化されたデータベースファイル (通常 .padlock
拡張子) からハッシュ情報を抽出するために特化しています。
このブログ記事では、padlock2john
の基本的な使い方から、John the Ripper と連携して実際にパスワード解析を試みる手順までを詳しく解説します。セキュリティ評価やパスワードリカバリーの目的で Padlock ファイルを扱う必要がある場合に役立つでしょう。😊
John the Ripper と padlock2john の準備
padlock2john
を使用するには、まず John the Ripper スイートがシステムにインストールされている必要があります。多くの Linux ディストリビューション、特に Kali Linux などのペネトレーションテスト用ディストリビューションでは、John the Ripper は標準で含まれているか、簡単なコマンドでインストールできます。
John the Ripper の “Jumbo” バージョンには、padlock2john
を含む多数の `*2john` ツールが含まれています。通常、John the Ripper をインストールすると、これらのツールも一緒に /usr/share/john/
や /opt/john/
、あるいは John the Ripper の実行ファイルと同じディレクトリ内の `run` サブディレクトリなどに配置されます。
もし padlock2john
が見当たらない場合は、John the Ripper の Jumbo バージョンをインストールしているか確認してください。Jumbo バージョンは、Openwall の John the Ripper 公式ウェブサイトや、GitHub リポジトリから入手できます。
padlock2john
は Python スクリプトとして提供されていることが多いです。そのため、Python 実行環境も必要になります。
# Kali Linux や Debian/Ubuntu ベースのシステムでのインストール例
sudo apt update
sudo apt install john
# padlock2john の場所を探す例 (システムによってパスは異なります)
find / -name padlock2john.py 2>/dev/null
ls /usr/share/john/
ls /opt/john/
ls /path/to/john/run/ # John the Ripper のインストール場所に合わせて変更
padlock2john.py
ファイルを見つけたら、実行権限があることを確認してください。必要であれば `chmod +x padlock2john.py` で実行権限を付与します。
padlock2john の基本的な使い方
padlock2john
の使い方は非常にシンプルです。基本的な構文は以下の通りです。
python /path/to/padlock2john.py <padlock_database_file> > <output_hash_file>
# または、実行パスが通っている場合やカレントディレクトリにいる場合
./padlock2john.py <padlock_database_file> > <output_hash_file>
python /path/to/padlock2john.py
:padlock2john.py
スクリプトを実行します。Python インタープリタの指定が必要な場合があります。パスは実際のスクリプトの場所に合わせてください。<padlock_database_file>
: 解析したい Padlock データベースファイル (例:my_secrets.padlock
) へのパスを指定します。> <output_hash_file>
: 抽出されたハッシュ情報を保存するファイル名を指定します。リダイレクト演算子>
を使ってファイルに出力するのが一般的です。 (例:padlock_hash.txt
)
実行例
カレントディレクトリに my_database.padlock
というファイルがあり、padlock2john.py
が /usr/share/john/
にあると仮定します。ハッシュを hash_for_john.txt
というファイルに保存するには、次のように実行します。
python /usr/share/john/padlock2john.py my_database.padlock > hash_for_john.txt
成功すると、hash_for_john.txt
ファイルが生成され、その中には John the Ripper が理解できる形式のハッシュ文字列が含まれます。形式は通常、ファイル名とハッシュデータがコロン (:
) で区切られたものになります。
例 (出力されるハッシュ形式は Padlock のバージョン等により異なる可能性があります):
my_database.padlock:$padlock$*0*f8a3...*b2e1...
この出力されたハッシュ文字列が、次のステップで John the Ripper を使って解析する対象となります。
John the Ripper でハッシュを解析する 🔓
padlock2john
でハッシュファイルを生成したら、いよいよ John the Ripper 本体を使ってパスワードの解析を試みます。基本的なコマンド構文は以下の通りです。
john [オプション] <hash_file>
john
: John the Ripper の実行コマンドです。[オプション]
: 解析方法を指定するオプションです。よく使われるものをいくつか紹介します。<hash_file>
:padlock2john
で生成したハッシュファイル (例:hash_for_john.txt
) を指定します。
主な解析モードとオプション
オプション | 説明 | 例 |
---|---|---|
(オプションなし) | デフォルトモード (シングルクラック、ワードリスト、インクリメンタル) を順番に試します。まずはこれを試すのが簡単です。 | john hash_for_john.txt |
--wordlist=<wordlist_file> |
指定したワードリストファイルを使って辞書攻撃を行います。強力なワードリスト (例: rockyou.txt) を使うと効果的です。 | john --wordlist=/usr/share/wordlists/rockyou.txt hash_for_john.txt |
--rules |
ワードリストモードと組み合わせて使用し、単語にルール (文字置換、数値付加など) を適用して試行します。より複雑なパスワードに対応できる可能性があります。 | john --wordlist=/usr/share/wordlists/rockyou.txt --rules hash_for_john.txt |
--incremental[=<mode>] |
文字種 (数字、英字、記号など) を指定し、総当たり攻撃を行います。時間はかかりますが、辞書にないパスワードも見つけられる可能性があります。 | john --incremental=Digits hash_for_john.txt |
--format=padlock |
John the Ripper がハッシュ形式を自動認識できない場合に、明示的に ‘padlock’ 形式を指定します。通常は自動認識されますが、問題がある場合に試します。 | john --format=padlock --wordlist=pass.txt hash_for_john.txt |
--show |
既にクラックに成功したパスワードを表示します。解析が完了した後や中断した場合に、結果を確認するのに使います。 | john --show hash_for_john.txt |
解析の実行と結果
例えば、rockyou.txt
ワードリストを使って解析を開始するには、次のようにします。
john --wordlist=/usr/share/wordlists/rockyou.txt hash_for_john.txt
John the Ripper は解析を開始し、進捗状況をターミナルに表示します。パスワードが見つかると、通常は以下のように表示されます (実際の表示はバージョンや設定により異なります)。
Loaded 1 password hash (padlock, Padlock Password Manager [PBKDF2-SHA1 OpenSSL])
Cost 1 (iteration count) is 1000 for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
password123 (my_database.padlock)
1g 0:00:00:05 DONE (2025-03-31 12:55) 0.1886g/s 188.6p/s 188.6c/s 188.6C/s secret..password123
Session completed
この例では、my_database.padlock
のパスワードが password123
であることがわかりました 🎉。
解析には時間がかかることがあります。特に、複雑なパスワードや辞書にないパスワードの場合、数時間から数日、あるいはそれ以上かかることもあります。解析を中断したい場合は Ctrl+C
を押し、後で同じコマンドを実行すれば中断したところから再開できます (セッションファイル john.rec
が生成されている場合)。
再度、クラック済みのパスワードを確認するには --show
オプションを使います。
john --show hash_for_john.txt
出力:
my_database.padlock:password123
1 password hash cracked, 0 left
注意点とトラブルシューティング 🤔
-
ファイルの破損: 対象の
.padlock
ファイルが破損している場合、padlock2john
はハッシュを正しく抽出できないことがあります。 -
Padlock のバージョン: Padlock のバージョンによっては、
padlock2john
が対応していない形式である可能性も考えられます。John the Ripper とpadlock2john
を最新版にアップデートしてみてください。 -
JtR のフォーマット認識: John the Ripper がハッシュ形式を自動認識できない場合は、
--format=padlock
オプションを明示的に指定してみてください。 -
Python の依存関係:
padlock2john.py
が特定の Python ライブラリに依存している場合、それらがインストールされていないとエラーになることがあります。エラーメッセージを確認し、必要なライブラリをインストールしてください (通常は標準ライブラリ以外に依存することは少ないです)。 - パフォーマンス: パスワード解析は CPU リソースを大量に消費します。特にインクリメンタルモードや複雑なルールを使用する場合、時間がかかります。高性能な CPU や、場合によっては GPU を活用できるバージョンの John the Ripper を利用すると、解析速度が向上することがあります。
まとめ
padlock2john
は、Padlock パスワードマネージャーのデータベースファイルからパスワードハッシュを抽出し、John the Ripper で解析可能な形式に変換するための便利なツールです。
- John the Ripper (Jumbo 版推奨) をインストールし、
padlock2john.py
の場所を確認します。 padlock2john.py <padlock_file> > <hash_file>
コマンドでハッシュを抽出します。john [options] <hash_file>
コマンドで、抽出したハッシュの解析を開始します。--wordlist
,--rules
,--incremental
などのオプションを使い分けて、効率的に解析を進めます。- 解析結果は
john --show <hash_file>
で確認できます。
パスワードクラッキングツールの使用は、常に倫理的な配慮と法的遵守が求められます。許可された範囲内で、セキュリティ評価やパスワードリカバリーの目的のために、責任を持ってこれらのツールを活用してください。💻🛡️
コメント