filezilla2john の使い方:FileZillaのパスワードハッシュを抽出してJohn the Ripperで解析する

セキュリティツール

この記事では、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 johnsudo yum install john)でインストールできます。WindowsやmacOSの場合は、公式サイトからダウンロードしてインストールする必要があります。John the Ripperのインストールディレクトリ内の run ディレクトリに filezilla2john (または filezilla2john.py) が含まれているか確認してください。
  • Python環境: filezilla2john はPythonスクリプトであるため、Python(通常はPython 2または3)がインストールされている必要があります。
  • FileZilla設定ファイルの場所の特定: パスワード情報が保存されているFileZillaの設定ファイル(主に sitemanager.xmlrecentservers.xml)の場所を知る必要があります。これらのファイルの一般的な場所は以下の通りです。
    OS 一般的なパス
    Windows C:\Users\<ユーザー名>\AppData\Roaming\FileZilla\
    macOS /Users/<ユーザー名>/.config/filezilla/ または /Users/<ユーザー名>/.filezilla/
    Linux /home/<ユーザー名>/.config/filezilla/ または /home/<ユーザー名>/.filezilla/

    <ユーザー名> は実際のユーザー名に置き換えてください。また、バージョンや環境によってパスが異なる場合があります。

filezilla2john の使い方

filezilla2john の基本的な使い方は非常にシンプルです。以下の手順に従ってください。

  1. ターミナルまたはコマンドプロンプトを開く: 作業を行うためのコマンドラインインターフェースを開きます。
  2. filezilla2john スクリプトの場所に移動する (任意): John the Ripperのインストールディレクトリ内の run ディレクトリに移動するか、スクリプトへのフルパスを指定します。
    # 例: John the Ripperのrunディレクトリに移動する場合
    cd /path/to/john/run
  3. filezilla2john を実行する: スクリプトを実行し、引数としてFileZillaの設定ファイル(sitemanager.xml または recentservers.xml)のパスを指定します。
    # スクリプトがPythonファイルの場合
    python filezilla2john.py /path/to/your/FileZilla/sitemanager.xml
    
    # または直接実行可能な場合
    ./filezilla2john /path/to/your/FileZilla/sitemanager.xml

    例えば、Windows環境でユーザー名が “User” の場合、コマンドは以下のようになります(Johnのrunディレクトリから実行する場合)。

    python filezilla2john.py C:\Users\User\AppData\Roaming\FileZilla\sitemanager.xml

    macOSやLinux環境でユーザー名が “user” の場合、コマンドは以下のようになります(Johnのrunディレクトリから実行する場合)。

    python filezilla2john.py /home/user/.config/filezilla/sitemanager.xml
  4. 出力(ハッシュ)を確認する: filezilla2john は、設定ファイル内に保存されているエンコードされたパスワード情報を読み取り、John the Ripperが解析できる形式のハッシュ文字列を標準出力に表示します。

    出力は通常、以下のような形式になります。

    example.com:$fzV1$1.1fca1a1b1c1d1e1f...

    ここで、example.com はサイト名やホスト名、$fzV1$ はFileZillaのハッシュ形式を示す識別子、その後の文字列が実際のハッシュデータです。

  5. ハッシュをファイルに保存する: John the Ripperで解析するために、出力されたハッシュをテキストファイルに保存します。リダイレクトを使用すると便利です。
    python filezilla2john.py /path/to/your/FileZilla/sitemanager.xml > filezilla_hashes.txt

    これにより、filezilla_hashes.txt というファイルにハッシュが保存されます。

John the Ripper でハッシュを解析する

filezilla2john で抽出・保存したハッシュファイル(例: filezilla_hashes.txt)を使用して、John the Ripperでパスワードクラッキングを試みます。

  1. John the Ripperを実行する: ターミナルで以下のコマンドを実行します。John the Ripperは自動的にハッシュ形式を検出し、デフォルトのクラッキングモード(シングルクラック、辞書、インクリメンタル)を順に試します。
    john filezilla_hashes.txt
  2. 辞書ファイルを使用する (推奨): より効率的にクラッキングを行うために、辞書ファイル(パスワード候補リスト)を指定することができます。rockyou.txt は有名な辞書ファイルの一つです。
    john --wordlist=/path/to/your/wordlist.txt filezilla_hashes.txt
    
    # 例: Kali Linuxにデフォルトで含まれるrockyou.txtを使用する場合
    john --wordlist=/usr/share/wordlists/rockyou.txt.gz filezilla_hashes.txt

    .gz 圧縮された辞書ファイルも直接指定できる場合があります。

  3. 特定のハッシュ形式を指定する: John the Ripperが自動で形式を判別できない場合や、特定の形式のみを試したい場合は、--format=fz オプションを使用します。
    john --format=fz --wordlist=/path/to/your/wordlist.txt filezilla_hashes.txt
  4. 解析結果を確認する: クラッキングが成功すると、John the Ripperは対応するパスワードを表示します。処理が完了した後や、途中で中断した場合でも、以下のコマンドでクラック済みのパスワードを確認できます。
    john --show filezilla_hashes.txt

    出力例:

    example.com:CorrectPassword123:User:...

    この例では、example.com サイトのパスワードが CorrectPassword123 であることが特定されました。

クラッキングにかかる時間は、パスワードの複雑さ、使用する辞書ファイルの質、マシンの計算能力によって大きく異なります。単純なパスワードは数秒で見つかることもありますが、複雑なパスワードの場合は数時間、数日、あるいはそれ以上かかることもあります。🕰️

実践的な例

Linux環境で、ホームディレクトリの .config/filezilla/ にある sitemanager.xml からパスワードハッシュを抽出し、rockyou.txt を使って解析する具体的な手順を示します。

  1. John the Ripper の run ディレクトリに移動:
    cd /opt/john/run  # Johnのインストール場所によってパスは異なります
  2. filezilla2john でハッシュを抽出しファイルに保存:
    python filezilla2john.py ~/.config/filezilla/sitemanager.xml > ~/fz_hashes.txt

    ホームディレクトリに fz_hashes.txt が作成されます。

  3. John the Ripper で解析を開始 (rockyou.txt を使用):
    ./john --wordlist=/usr/share/wordlists/rockyou.txt.gz ~/fz_hashes.txt
  4. 進捗状況の確認 (実行中に任意のキーを押す): Johnの実行中にEnterキーなどを押すと、現在の状況(試行中のパスワード、速度など)が表示されます。
  5. 解析結果の表示:
    ./john --show ~/fz_hashes.txt

⚠️ 注意:

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に保存されたパスワード情報の解析を試みることができます。パスワード管理の重要性を再認識し、より安全な方法での認証情報管理を心がけましょう。🛡️

参考情報

コメント

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