John the Ripper (JtR) は、強力なパスワードクラッキングツールとして広く知られています。その豊富な機能の一部として、特定のファイル形式からパスワードハッシュを抽出するための一連の「*2john」ユーティリティが含まれています。この記事では、その中でも金融ソフトウェアのファイルに特化した money2john
の使い方について詳しく解説します。
金融関連のファイルを扱う際には、セキュリティが非常に重要です。money2john
は、セキュリティ監査やパスワードリカバリの文脈で、自身が所有する、あるいは分析する正当な権限を持つファイルのパスワード強度を評価するために使用されるツールです。注意:許可なく他人のファイルに対してこのツールを使用することは、法律で禁止されており、倫理的にも問題があります。必ず適切な権限の下で使用してください。
John the Ripper と *2john ユーティリティについて
John the Ripper は、もともとUnix系のシステムの弱いパスワードを検出するために開発されましたが、現在では非常に多くの種類のパスワードハッシュや暗号化形式に対応しています。WindowsのLM/NTLMハッシュ、各種アプリケーションのパスワード、暗号化されたアーカイブファイル(ZIP, RAR, 7zなど)、ドキュメントファイル(PDF, Office)、ディスクイメージ、暗号通貨ウォレット、SSH秘密鍵など、その対応範囲は広大です。
この多機能性を実現しているのが、John the Ripper の “Jumbo” バージョンです。Jumbo バージョンには、コミュニティによって開発・追加された多数の機能拡張が含まれており、その中核をなすのが「*2john」と呼ばれるスクリプト群です。これらのスクリプトは、特定のファイル形式(例: ZIPファイル、PDFファイル、Officeドキュメント、そして今回の主役である金融ソフトウェアファイルなど)を解析し、John the Ripper が解読可能な形式の「ハッシュ」を抽出する役割を担います。
money2john
は、この *2john ファミリーの一つであり、特にMicrosoft Moneyなどの金融管理ソフトウェアのファイルからパスワードハッシュを抽出するために設計されています。
money2john
のような多くの *2john ユーティリティは、Jumbo バージョンに含まれています。
money2john の入手とインストール
money2john
は通常、単体で配布されるのではなく、John the Ripper の Jumbo バージョンの一部として提供されます。したがって、money2john
を使用するには、John the Ripper Jumbo をインストールする必要があります。
インストール方法はOSによって異なりますが、一般的な手順は以下の通りです。
-
John the Ripper 公式サイトまたはリポジトリからソースコードまたはバイナリを入手する:
公式サイト (https://www.openwall.com/john/) から最新の Jumbo バージョンをダウンロードできます。ソースコードからビルドするか、提供されていればお使いのOS用のコンパイル済みバイナリを利用します。 -
ソースコードからビルドする場合 (Linux/macOS の例):
- 必要な開発ツールやライブラリをインストールします (例: `build-essential`, `libssl-dev`, `yasm`, `pkg-config`, `libgmp-dev`, `libpcap-dev`, `libbz2-dev` など)。
- ダウンロードしたソースコードを展開し、そのディレクトリに移動します。
- 通常、
./configure
コマンドでビルド設定を行い (オプションで特定の機能を有効化することも可能)、make -s clean && make -sj4
のようなコマンドでコンパイルします。(-sj4
は並列ビルドの例で、コア数に応じて調整します)
-
パッケージマネージャーを利用する場合 (一部の Linux ディストリビューション):
Kali Linux のようなペネトレーションテスト用ディストリビューションでは、パッケージマネージャー (例: `apt`) を使って `john` パッケージをインストールできる場合があります。これにより Jumbo バージョンがインストールされることが多いです。
sudo apt update && sudo apt install john
-
Homebrew を利用する場合 (macOS):
macOS では Homebrew を使ってインストールできることがあります。
brew install john-jumbo
またはbrew install john
(どちらがJumboを提供するかは時期によります)
インストールが完了すると、通常は John the Ripper の実行ファイルと同じディレクトリ (多くは `run` ディレクトリ内、またはシステムのパス上 `/usr/sbin/` や `/usr/share/john/` など) に `money2john` (多くは `money2john.py` という Python スクリプト) が配置されます。
# インストール後、money2john.py がどこにあるか確認する例 (Linux)
find /usr -name money2john.py 2>/dev/null
# または John の run ディレクトリ内で確認
cd path/to/john/run
ls money2john*
money2john が対応するファイル形式
money2john
は、特定のバージョンの金融ソフトウェアファイルからパスワードハッシュを抽出するように設計されています。確認されている主な対応ファイルは以下の通りです。
ソフトウェア | 対応バージョン/ファイル形式 | 備考 |
---|---|---|
Microsoft Money | MS Money 2002-2007 / Money Plus (.MNY ファイルなど) | 主要なターゲットファイルです。 |
Quicken (.QDF) | 一部のバージョンに対応している可能性がありますが、情報が限定的です。quicken2john という別のツールが存在する場合もあります。 |
動作確認が必要です。 |
QuickBooks (.QBW) | 対応状況は不明確です。quickbooks2john など、専用ツールが必要な場合があります。 |
動作確認が必要です。 |
上記の表は一般的な情報であり、John the Ripper のバージョンや `money2john` スクリプトの更新によって対応状況が変わる可能性があります。実際に使用する際には、対象のファイルでツールを実行し、ハッシュが正常に抽出されるかを確認するのが最も確実です。
money2john の基本的な使い方
money2john
の使い方は非常にシンプルです。ターミナル(コマンドプロンプト)から、money2john
スクリプトを実行し、引数としてパスワードハッシュを抽出したい金融ソフトウェアのファイルを指定します。
基本的なコマンド構文は以下のようになります(money2john.py
の場合):
# money2john.py がパス上にある場合、または John の run ディレクトリにいる場合
./money2john.py <対象の金融ファイル>
# スクリプトのパスを直接指定する場合
/path/to/john/run/money2john.py <対象の金融ファイル>
# Python インタプリタを明示的に指定する場合
python /path/to/john/run/money2john.py <対象の金融ファイル>
<対象の金融ファイル>
の部分には、解析したい `.MNY` ファイルなどのパスを指定します。複数のファイルを一度に処理することも可能です。
./money2john.py my_finances.mny old_finances.mny
money2john
は、成功すると標準出力に John the Ripper が解読できる形式のハッシュ文字列を出力します。このハッシュ文字列は通常、ファイル名とハッシュデータを含んだ形式になります。
出力例(形式はバージョン等により異なる場合があります):
my_finances.mny:$money$*0*16*...[ハッシュデータ]...
この出力されたハッシュ文字列をファイルに保存して、後で John the Ripper に渡します。リダイレクション(>
)を使うと便利です。
./money2john.py my_finances.mny > money_hash.txt
これにより、my_finances.mny
から抽出されたハッシュが money_hash.txt
というファイルに保存されます。
実践的な例 💻
ここでは、具体的なファイルを使って money2john
を実行し、その出力を John the Ripper で解析するまでの流れを示します。
ステップ1: money2john でハッシュを抽出する
現在のディレクトリに `budget_2024.mny` という名前の Microsoft Money ファイルがあると仮定します。このファイルからハッシュを抽出し、`budget_hash.txt` に保存します。
# John の run ディレクトリにいると仮定
./money2john.py budget_2024.mny > budget_hash.txt
成功すれば、`budget_hash.txt` ファイルが作成され、以下のような内容が含まれているはずです(ハッシュ部分は実際のものとは異なります)。
budget_2024.mny:$money$*0*16*a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6*...[残りのハッシュデータ]...
ステップ2: John the Ripper でハッシュを解析する
次に、抽出したハッシュが含まれる `budget_hash.txt` を使って、John the Ripper にパスワードクラックを実行させます。
最も基本的な実行方法は、John the Ripper にハッシュファイル名を渡すだけです。John はデフォルトのクラッキングモード(シングルクラックモード、辞書モード、インクリメンタルモード)を順に試します。
# John の実行ファイルがパス上にあるか、run ディレクトリにいる場合
john budget_hash.txt
より効率的に解析するために、辞書ファイル(パスワード候補リスト)を指定することも一般的です。有名な辞書ファイルには `rockyou.txt` などがあります。
# rockyou.txt を辞書ファイルとして使用する例
john --wordlist=/path/to/rockyou.txt budget_hash.txt
# ルール(辞書内の単語を変化させる規則)も適用する場合
john --wordlist=/path/to/rockyou.txt --rules budget_hash.txt
John the Ripper は解析を開始し、パスワードが見つかると画面に表示します。また、見つかったパスワードは `$JOHN/john.pot` (John の設定ディレクトリ内の `john.pot` ファイル) に保存されます。
# クラック状況を確認する (実行中に任意のキーを押す)
# クラックが完了または中断した後、見つかったパスワードを表示する
john --show budget_hash.txt
--show
オプションを使うと、`budget_hash.txt` に対応するクラック済みのパスワードが `john.pot` ファイルから検索され、表示されます。
出力例:
budget_2024.mny:CorrectPassword123
1 password hash cracked, 0 left
この例では、`budget_2024.mny` のパスワードが `CorrectPassword123` であることが判明しました。🎉
重要な考慮事項とヒント ✨
-
法的および倫理的な側面:
繰り返しになりますが、パスワードクラッキングツールは、自身が所有するファイル、またはテストする明確な許可を得ているファイルに対してのみ使用してください。不正アクセスは重大な犯罪です。 -
パフォーマンス:
パスワードクラックにかかる時間は、パスワードの複雑さ、使用するハードウェア(CPU、GPU)、および選択したクラッキングモード(辞書、ブルートフォースなど)に大きく依存します。強力なGPUを使用すると、多くの場合、CPUよりも大幅に高速な解析が可能です(John the Ripper が OpenCL や CUDA をサポートしている場合)。 -
対応していないファイル:
money2john
が特定のファイルを処理できない場合、エラーメッセージが表示されるか、有効なハッシュが出力されません。ファイル形式がサポートされていないか、ファイルが破損している可能性があります。John the Ripper の最新バージョンや、関連する *2john ツール (quicken2john
など) が存在しないか確認してみてください。 -
John the Ripper のオプション:
John the Ripper には非常に多くのオプションがあります。特定の文字種のみを試すマスクモード (`–mask`)、特定のハッシュ形式を強制する (`–format=money`)、セッションの復元 (`–restore`) など、公式ドキュメントを参照して活用してください。 -
辞書ファイルとルール:
効果的なパスワードクラックには、良質な辞書ファイルと、それを拡張するための適切なルールセットが重要です。Openwall プロジェクトは、多言語の単語リストを含む辞書コレクションを提供しています。
まとめ
money2john
は、John the Ripper スイートの一部として、Microsoft Money などの金融ソフトウェアファイルのパスワードハッシュを抽出するための便利なツールです。抽出されたハッシュは、John the Ripper 本体で解析され、パスワードのリカバリやセキュリティ評価に役立てることができます。
このツールを使用する際は、常に法的な側面と倫理的な問題を念頭に置き、正当な目的のためにのみ利用するようにしてください。適切な知識と注意をもって使用すれば、money2john
と John the Ripper は、パスワードセキュリティの理解を深めるための強力な味方となるでしょう。🛡️
参考情報
-
John the Ripper 公式サイト: https://www.openwall.com/john/
(ダウンロード、ドキュメント、関連リソースへのリンクがあります) -
John the Ripper Community Wiki: https://openwall.info/wiki/john/jumbo
(Jumbo バージョンに関する詳細情報や使い方など) -
John the Ripper GitHub リポジトリ (Jumbo): https://github.com/openwall/john
(最新のソースコードや issue トラッカー)
コメント