この記事では、John the Ripper スイートに含まれるユーティリティスクリプトの一つである filezilla2john
の使い方について詳しく解説します。filezilla2john
は、人気のFTPクライアントである FileZilla の設定ファイルから、保存されているパスワード情報を抽出し、John the Ripperで解析可能なハッシュ形式に変換するためのツールです。
FileZillaは多くのユーザーに利用されており、サイトマネージャー機能で多数のFTP/SFTP接続情報を保存できます。しかし、パスワードを忘れてしまった場合や、セキュリティ監査の一環として保存されたパスワードの強度を確認したい場合に、filezilla2john
が役立ちます。
John the Ripperは、強力なパスワードクラッキングツールであり、様々なハッシュ形式に対応しています。filezilla2john
は、FileZillaが保存するエンコードされたパスワードデータを、John the Ripperが理解できる形式に変換する役割を担います。これにより、辞書攻撃やブルートフォース攻撃などを通じて、元のパスワードを特定することが可能になります。
前提条件
filezilla2john
を使用するには、以下の準備が必要です。
- John the Ripperのインストール:
filezilla2john
はJohn the Ripperの一部として提供されることが多いです。Kali LinuxやParrot OSなどのペネトレーションテスト用ディストリビューションには、通常、John the Ripperがプリインストールされています。他のLinuxディストリビューションでは、パッケージマネージャー(例:sudo apt install john
やsudo yum install john
)でインストールできます。WindowsやmacOSの場合は、公式サイトからダウンロードしてインストールする必要があります。John the Ripperのインストールディレクトリ内のrun
ディレクトリにfilezilla2john
(またはfilezilla2john.py
) が含まれているか確認してください。 - Python環境:
filezilla2john
はPythonスクリプトであるため、Python(通常はPython 2または3)がインストールされている必要があります。 - FileZilla設定ファイルの場所の特定: パスワード情報が保存されているFileZillaの設定ファイル(主に
sitemanager.xml
やrecentservers.xml
)の場所を知る必要があります。これらのファイルの一般的な場所は以下の通りです。OS 一般的なパス Windows C:\Users\<ユーザー名>\AppData\Roaming\FileZilla\
macOS /Users/<ユーザー名>/.config/filezilla/
または/Users/<ユーザー名>/.filezilla/
Linux /home/<ユーザー名>/.config/filezilla/
または/home/<ユーザー名>/.filezilla/
※
<ユーザー名>
は実際のユーザー名に置き換えてください。また、バージョンや環境によってパスが異なる場合があります。
filezilla2john の使い方
filezilla2john
の基本的な使い方は非常にシンプルです。以下の手順に従ってください。
- ターミナルまたはコマンドプロンプトを開く: 作業を行うためのコマンドラインインターフェースを開きます。
filezilla2john
スクリプトの場所に移動する (任意): John the Ripperのインストールディレクトリ内のrun
ディレクトリに移動するか、スクリプトへのフルパスを指定します。filezilla2john
を実行する: スクリプトを実行し、引数としてFileZillaの設定ファイル(sitemanager.xml
またはrecentservers.xml
)のパスを指定します。例えば、Windows環境でユーザー名が “User” の場合、コマンドは以下のようになります(Johnのrunディレクトリから実行する場合)。
macOSやLinux環境でユーザー名が “user” の場合、コマンドは以下のようになります(Johnのrunディレクトリから実行する場合)。
- 出力(ハッシュ)を確認する:
filezilla2john
は、設定ファイル内に保存されているエンコードされたパスワード情報を読み取り、John the Ripperが解析できる形式のハッシュ文字列を標準出力に表示します。出力は通常、以下のような形式になります。
ここで、
example.com
はサイト名やホスト名、$fzV1$
はFileZillaのハッシュ形式を示す識別子、その後の文字列が実際のハッシュデータです。 - ハッシュをファイルに保存する: John the Ripperで解析するために、出力されたハッシュをテキストファイルに保存します。リダイレクトを使用すると便利です。
これにより、
filezilla_hashes.txt
というファイルにハッシュが保存されます。
John the Ripper でハッシュを解析する
filezilla2john
で抽出・保存したハッシュファイル(例: filezilla_hashes.txt
)を使用して、John the Ripperでパスワードクラッキングを試みます。
- John the Ripperを実行する: ターミナルで以下のコマンドを実行します。John the Ripperは自動的にハッシュ形式を検出し、デフォルトのクラッキングモード(シングルクラック、辞書、インクリメンタル)を順に試します。
- 辞書ファイルを使用する (推奨): より効率的にクラッキングを行うために、辞書ファイル(パスワード候補リスト)を指定することができます。
rockyou.txt
は有名な辞書ファイルの一つです。.gz
圧縮された辞書ファイルも直接指定できる場合があります。 - 特定のハッシュ形式を指定する: John the Ripperが自動で形式を判別できない場合や、特定の形式のみを試したい場合は、
--format=fz
オプションを使用します。 - 解析結果を確認する: クラッキングが成功すると、John the Ripperは対応するパスワードを表示します。処理が完了した後や、途中で中断した場合でも、以下のコマンドでクラック済みのパスワードを確認できます。
出力例:
この例では、
example.com
サイトのパスワードがCorrectPassword123
であることが特定されました。
クラッキングにかかる時間は、パスワードの複雑さ、使用する辞書ファイルの質、マシンの計算能力によって大きく異なります。単純なパスワードは数秒で見つかることもありますが、複雑なパスワードの場合は数時間、数日、あるいはそれ以上かかることもあります。
実践的な例
Linux環境で、ホームディレクトリの .config/filezilla/
にある sitemanager.xml
からパスワードハッシュを抽出し、rockyou.txt
を使って解析する具体的な手順を示します。
- John the Ripper の run ディレクトリに移動:
- filezilla2john でハッシュを抽出しファイルに保存:
ホームディレクトリに
fz_hashes.txt
が作成されます。 - John the Ripper で解析を開始 (rockyou.txt を使用):
- 進捗状況の確認 (実行中に任意のキーを押す): Johnの実行中にEnterキーなどを押すと、現在の状況(試行中のパスワード、速度など)が表示されます。
- 解析結果の表示:
セキュリティ上の考慮事項と倫理的な利用
注意:
filezilla2john
および John the Ripper は、強力なパスワード解析ツールです。これらのツールを使用する際は、以下の点に注意してください。
- 正当な目的での利用: 自分が管理権限を持つシステムや、明示的な許可を得たシステムに対してのみ使用してください。他人のアカウントやシステムのパスワードを不正に解析することは、法律で禁止されており、重大な犯罪となります。
- パスワード管理の重要性: FileZillaにパスワードを保存する機能は便利ですが、マスターパスワードを設定するなど、設定ファイル自体へのアクセスを保護することが推奨されます。また、可能であればパスワードを保存せず、パスワードマネージャーを使用するか、SSHキー認証など、より安全な認証方式を利用することを検討してください。
- セキュリティ監査: システム管理者が組織内のパスワードポリシーの遵守状況を確認したり、脆弱なパスワードが使用されていないかを監査したりする目的で、これらのツールが利用されることがあります。
- パスワード復旧: 自身が忘れてしまったパスワードを回復するために使用することも、正当な利用目的の一つです。
これらのツールは、セキュリティを強化するための知識や技術を学ぶ上で有用ですが、その力を悪用しないよう、常に倫理的な観点を持って利用することが求められます。
トラブルシューティング
filezilla2john
が見つからない: John the Ripperのインストールが不完全であるか、run
ディレクトリのパスが正しくない可能性があります。find / -name filezilla2john.py 2>/dev/null
のようなコマンドでスクリプトの場所を探してみてください。- Pythonエラーが発生する: Pythonのバージョンが古い、または必要なライブラリ(例:
xml.etree.ElementTree
)が利用できない可能性があります。Python環境を確認し、必要であればアップデートしてください。 - 設定ファイルが見つからない: FileZillaの設定ファイルのパスが間違っているか、FileZillaがその場所に設定ファイルを保存していない可能性があります。上記「前提条件」セクションのパスを確認するか、システム内で
sitemanager.xml
を検索してください。 - ハッシュが抽出されない: 設定ファイル内にパスワードが保存されていない、またはパスワードがエンコードされていない形式(古いバージョンなど)で保存されている可能性があります。ファイルの内容を確認してみてください。
- John the Ripperがハッシュを認識しない:
filezilla2john
の出力形式がJohn the Ripperの対応バージョンと異なるか、ハッシュが破損している可能性があります。--format=fz
オプションを明示的に指定してみてください。
まとめ
filezilla2john
は、FileZillaの設定ファイルからパスワードハッシュを抽出し、John the Ripperで解析するための便利なツールです。パスワードの復旧やセキュリティ監査の際に役立ちますが、その利用は常に倫理的かつ合法的な範囲に留める必要があります。この記事で紹介した手順に従えば、比較的簡単にFileZillaに保存されたパスワード情報の解析を試みることができます。パスワード管理の重要性を再認識し、より安全な方法での認証情報管理を心がけましょう。
参考情報
- John the Ripper official website: https://www.openwall.com/john/
- Kali Linux Tools – john: https://www.kali.org/tools/john/