padlock2john の使い方ガイド 🔑

セキュリティツール

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 で解析可能な形式に変換するための便利なツールです。

  1. John the Ripper (Jumbo 版推奨) をインストールし、padlock2john.py の場所を確認します。
  2. padlock2john.py <padlock_file> > <hash_file> コマンドでハッシュを抽出します。
  3. john [options] <hash_file> コマンドで、抽出したハッシュの解析を開始します。
  4. --wordlist, --rules, --incremental などのオプションを使い分けて、効率的に解析を進めます。
  5. 解析結果は john --show <hash_file> で確認できます。

パスワードクラッキングツールの使用は、常に倫理的な配慮と法的遵守が求められます。許可された範囲内で、セキュリティ評価やパスワードリカバリーの目的のために、責任を持ってこれらのツールを活用してください。💻🛡️

コメント

タイトルとURLをコピーしました