itunes_backup2john 徹底解説:iTunesバックアップのパスワード解析ガイド 🔑

セキュリティツール

忘れられたiTunesバックアップのパスワードを取り戻す方法を学びましょう。

はじめに:iTunesバックアップとパスワードの重要性

iPhoneやiPadユーザーにとって、iTunes(またはmacOS Catalina以降のFinder、WindowsのAppleデバイスアプリ)を使ったローカルバックアップは、デバイスのデータを安全に保管する重要な手段です。写真、連絡先、アプリデータなど、大切な情報のコピーをコンピュータ上に作成できます。

iTunesバックアップには、暗号化されていないバックアップ暗号化されたバックアップの2種類があります。

  • 暗号化されていないバックアップ:基本的なデータ(写真、ビデオ、メモなど)は含まれますが、機密性の高い情報(保存されたパスワード、Wi-Fi設定、ヘルスケアデータ、Webサイトの閲覧履歴、通話履歴など)は含まれません。
  • 暗号化されたバックアップ:上記の情報を含む、より包括的なバックアップです。セキュリティを強化するため、ユーザーが設定したパスワードで保護されます。このパスワードがないと、バックアップからデータを復元することはできません。

⚠️ 注意: 暗号化されたバックアップのパスワードを忘れてしまうと、通常の方法ではそのバックアップデータにアクセスできなくなります。Appleもこのパスワードをリセットしたり、回復したりする手段を提供していません。

このような状況で役立つのが、今回解説するitunes_backup2johnです。これは、著名なパスワードクラッキングツールであるJohn the Ripperスイートに含まれるユーティリティの一つで、暗号化されたiTunesバックアップからパスワードのハッシュ情報を抽出するために使用されます。抽出したハッシュをJohn the Ripper本体で解析(クラック)することで、元のパスワードを特定できる可能性があります。

この記事では、itunes_backup2johnの基本的な使い方から、関連する情報までを詳しく解説していきます。パスワードを忘れて困っている方の助けになれば幸いです 😊。

準備するもの:必要なツールとファイル

itunes_backup2johnを使用するには、いくつかの準備が必要です。

  1. John the Ripper スイート

    itunes_backup2johnはJohn the Ripper (JtR) の一部です。JtRの “Jumbo” バージョンをインストールすることをお勧めします。これは多くの追加機能やフォーマットに対応しています。公式サイトやGitHubリポジトリからダウンロード・コンパイルするか、お使いのOSのパッケージマネージャー(apt, yum, brewなど)を利用してインストールできます。

    itunes_backup2johnスクリプトは、通常、JtRのインストールディレクトリ内のrunまたは/usr/lib/john/、あるいは古いバージョンではextraディレクトリなどに含まれています。

    GitHubリポジトリ: https://github.com/openwall/john

  2. Python (またはPerl) 環境

    itunes_backup2johnは、多くの場合Perlスクリプト (itunes_backup2john.pl) として提供されていますが、バージョンや環境によってはPython実装が存在する可能性もあります。スクリプトを実行するために、対応するインタプリタ(PerlまたはPython)がシステムにインストールされている必要があります。多くのLinuxディストリビューションやmacOSにはデフォルトでインストールされていますが、Windowsの場合は別途インストールが必要になることがあります。

    Perlスクリプト? Pythonスクリプト? 🤔

    検索結果やJohn the Ripperのファイルリストを見ると、itunes_backup2john.pl (Perlスクリプト) が一般的ですが、他の `*2john` ツールにはPython実装 (.py) が多いです。John the Ripperの `run` ディレクトリを確認し、存在するスクリプトに合わせてPerlまたはPythonの実行環境を準備してください。この記事では主にPerlスクリプト (.pl) を想定して解説しますが、基本的な使い方はPython版でも同様です。
  3. 対象のiTunesバックアップファイル

    パスワードを解析したい暗号化されたiTunesバックアップが必要です。特に重要なのは、バックアップフォルダ内にあるManifest.plistファイルです。このファイルに、パスワードハッシュの解析に必要な情報が含まれています。

iTunesバックアップフォルダの場所を探す 📁

Manifest.plistファイルを見つけるには、まずiTunes (またはFinder/Appleデバイスアプリ) がバックアップを保存している場所を知る必要があります。場所はOSによって異なります。

オペレーティングシステム バックアップフォルダのパス 備考
macOS ~/Library/Application Support/MobileSync/Backup/ Finderで「移動」メニューを開き、Optionキーを押しながら「ライブラリ」を選択すると、非表示のLibraryフォルダにアクセスできます。
Windows (Microsoft Store版 iTunes/Appleデバイスアプリ) %USERPROFILE%\Apple\MobileSync\Backup\
または
%USERPROFILE%\Apple Computer\MobileSync\Backup\
エクスプローラーのアドレスバーに%USERPROFILE%\Apple\MobileSync\Backup\(または%USERPROFILE%\Apple Computer\MobileSync\Backup\)と入力してEnterキーを押します。
Windows (デスクトップ版 iTunes) %APPDATA%\Apple Computer\MobileSync\Backup\ エクスプローラーのアドレスバーに%APPDATA%\Apple Computer\MobileSync\Backup\と入力してEnterキーを押します。%APPDATA%は通常C:\Users\[ユーザー名]\AppData\Roamingを指します。AppDataフォルダは隠しフォルダになっている場合があります。

上記のBackupフォルダの中に、ランダムな文字列のような名前のサブフォルダが複数存在する場合があります。これらが個々のデバイスのバックアップデータです。解析したいバックアップに対応するフォルダを開き、その中にあるManifest.plistファイルがターゲットとなります。

itunes_backup2john の使い方:ハッシュ抽出

Manifest.plistファイルの場所がわかったら、いよいよitunes_backup2johnを使ってパスワードハッシュを抽出します。

ターミナル(macOS/Linux)またはコマンドプロンプト(Windows)を開き、John the Ripperのrunディレクトリに移動します(または、itunes_backup2john.plへのフルパスを指定します)。

基本的なコマンド構文は以下の通りです:


# Perlスクリプトの場合
perl itunes_backup2john.pl /path/to/your/backup/folder/Manifest.plist

# John the Ripperのrunディレクトリから直接実行できる場合 (Perl)
./itunes_backup2john.pl /path/to/your/backup/folder/Manifest.plist

# Pythonスクリプトの場合 (もし存在するなら)
python itunes_backup2john.py /path/to/your/backup/folder/Manifest.plist
      

/path/to/your/backup/folder/Manifest.plistの部分は、実際のManifest.plistファイルのパスに置き換えてください。

コマンドを実行すると、以下のような形式の文字列が出力されます。これがJohn the Ripperが解析できるハッシュ形式です。


<backup_name>:$itunes_backup$*<version>*<...long hex string...>
      
  • <backup_name>: バックアップフォルダ名など、識別のための情報。
  • $itunes_backup$: John the RipperにこれがiTunesバックアップハッシュであることを示す識別子。
  • *<version>*: iTunes/iOSのバージョンに関連する情報(例: *9**10*)。これは後述するhashcatでの解析にも関連します。
  • <...long hex string...>: 暗号化キーやソルトなどを含む、実際のハッシュデータ。

この出力されたハッシュ文字列を、テキストファイル(例: itunes_hash.txt)に保存します。リダイレクトを使うと便利です。


./itunes_backup2john.pl /path/to/your/backup/folder/Manifest.plist > itunes_hash.txt
      

これで、パスワード解析の準備が整いました。

オンラインツールについて

検索結果には、Manifest.plistをアップロードしてハッシュを抽出するオンラインツール (例: Hashes.com, Online Hash Crack) も存在します。これらは手軽ですが、機密情報を含む可能性のあるファイルを第三者のサーバーにアップロードすることになります。セキュリティリスクを十分に理解した上で利用を検討してください。ローカル環境でitunes_backup2johnを使用する方が一般的に安全です。

John the Ripperでのパスワード解析 🔨

itunes_backup2johnで抽出したハッシュファイル(例: itunes_hash.txt)を使って、John the Ripper本体でパスワードの解析(クラッキング)を行います。

基本的なコマンドは以下の通りです:


john itunes_hash.txt
      

John the Ripperは、デフォルトでいくつかの解析モード(シングルクラックモード、ワードリストモード、インクリメンタルモード)を順に試します。

  • シングルクラックモード: ハッシュファイル名などから推測される単語を試します。
  • ワードリストモード: 事前に用意された単語リスト(辞書ファイル)を使ってパスワードを試します。John the Ripperにはデフォルトの辞書 (password.lst) が付属していますが、より大規模な辞書を使うと成功率が上がることがあります。
  • インクリメンタルモード: すべての可能な文字の組み合わせを総当たりで試します。非常に時間がかかりますが、単純なパスワードなら見つけられる可能性があります。

特定の辞書ファイルを指定して解析を実行することもできます:


john --wordlist=/path/to/dictionary.txt itunes_hash.txt
      

解析には、パスワードの複雑さやコンピュータの性能によって、数分から数日、あるいはそれ以上かかることがあります。特に長くて複雑なパスワードの場合、解析が現実的な時間内に終わらない可能性もあります。

パスワードが見つかると、John the Ripperはそれを画面に表示します。例えば以下のようになります(実際の表示とは異なる場合があります)。


Loaded 1 password hash ($itunes_backup$, iTunes Backup [PBKDF2-SHA1 iOS 4.x - 9.x])
Press 'q' or Ctrl-C to abort, almost any other key for status
password123      (<backup_name>)
1g 0:00:00:15 DONE (2025-03-31 08:24) 0.066g/s (6.66p/s)
Session completed
      

この例では、パスワード `password123` が見つかったことを示しています。

解析を途中で中断しても、John the Ripperは進捗状況を john.rec というファイルに保存します。再度同じコマンドを実行すると、中断したところから再開できます。

💡 ヒント: john --show itunes_hash.txt コマンドを使うと、すでに見つかっているパスワードを確認できます。

itunes_backup2john のオプション

itunes_backup2john.pl スクリプト自体には、通常、特別なコマンドラインオプションは用意されていないようです。主な機能はManifest.plistファイルを受け取ってハッシュを出力することに特化しています。

ただし、John the Ripper本体には多数のオプションがあり、解析方法を細かく制御できます。代表的なものをいくつか紹介します。

John オプション 説明
--wordlist=FILE 指定した辞書ファイルを使ってワードリストモードで解析します。
--rules ワードリストモードと組み合わせて使用し、辞書の単語に特定のルール(例: 大文字小文字変換、数字追加など)を適用して試行します。
--incremental[=MODE] インクリメンタルモード(総当たり)で解析します。モードを指定することも可能です (例: --incremental=Digits で数字のみを試す)。
--format=NAME 解析するハッシュのフォーマットを指定します。通常、John the Ripperは自動で判別しますが、明示的に指定したい場合に使用します (例: --format=itunes-backup)。
--fork=N N個のプロセスをフォークして並列処理を行います。CPUコア数に合わせて指定すると高速化が期待できます。
--show 指定したハッシュファイルに対して、既に見つかっているパスワードを表示します。
--status 現在の解析セッションのステータス(進捗状況など)を表示します。

これらのオプションを組み合わせることで、より効率的なパスワード解析が可能になります。詳細は john --help コマンドやJohn the Ripperのドキュメントを参照してください。

iOSバージョンと暗号化方式の変遷について

AppleはiOSのバージョンアップに伴い、iTunesバックアップの暗号化方式を強化してきました。これはitunes_backup2johnや関連ツールの動作にも影響を与えます。

  • iOS 4.x 〜 iOS 9.x: この時期のバックアップは、パスワードからPBKDF2-SHA1というアルゴリズムを使って暗号化キーを生成していました。比較的古い方式であり、現代のコンピュータでは解析がやや容易です。itunes_backup2johnが出力するハッシュのバージョン情報 (例: *9*) は、この世代のバックアップを示すことがあります。
  • iOS 10.0 / 10.1: 暗号化方式に脆弱性が見つかったバージョンです。特定の条件下でパスワード検証が迂回される可能性がありました(現在は修正済み)。
  • iOS 10.2 以降: 暗号化が大幅に強化されました。PBKDF2アルゴリズムの反復回数が大幅に増加し、パスワードの解析(ブルートフォース攻撃)に必要な計算量が劇的に増えました。これにより、同じパスワードであっても解析にかかる時間が格段に長くなっています。itunes_backup2johnが出力するハッシュのバージョン情報 (例: *10*) は、この世代以降のバックアップを示すことがあります。

このため、比較的新しいiOSデバイスのバックアップパスワードを解析する場合、古いバージョンに比べて非常に長い時間がかかることを覚悟する必要があります。

hashcatとの連携 🐱

John the Ripperと並んで有名なパスワード解析ツールにhashcatがあります。hashcatは特にGPUを利用した高速な解析を得意としています。 iTunesバックアップハッシュをhashcatで解析するためのツールとして、itunes_backup2hashcat.pl (philsmd氏作) が存在します。これはitunes_backup2johnと同様にManifest.plistからハッシュを抽出しますが、hashcatに適した形式で出力します。
  • iTunesバックアップ < v10.0 用モード: -m 14700
  • iTunesバックアップ >= v10.x 用モード: -m 14800
itunes_backup2johnが出力したハッシュのバージョン情報 (*9* or *10*) は、hashcatでどちらのモードを使うべきかの判断材料にもなります。

GitHubリポジトリ: https://github.com/philsmd/itunes_backup2hashcat

トラブルシューティング:よくある問題と対処法 🤔

itunes_backup2john.pl: command not found または No such file or directory

John the Ripperが正しくインストールされていないか、itunes_backup2john.plがPATH環境変数に含まれるディレクトリにない、またはrunディレクトリ以外にある可能性があります。

対処法:

  • John the Ripperのインストールを確認し、必要であれば再インストールします。
  • find / -name itunes_backup2john.pl 2>/dev/null (Linux/macOS) などでスクリプトの場所を探し、フルパスで指定して実行します。
  • John the Ripperのrunディレクトリに移動してから./itunes_backup2john.pl ...のように実行します。
Can't locate some/module.pm in @INC (...) のようなPerlのエラー

スクリプトが必要とするPerlモジュールが不足している可能性があります。

対処法:

  • エラーメッセージに表示されているモジュール名を特定し、CPAN (cpan install Module::Name) やOSのパッケージマネージャー (例: sudo apt-get install libmodule-name-perl) を使ってインストールします。
Manifest.plist: No such file or directory

指定したManifest.plistへのパスが間違っています。

対処法:

  • 「iTunesバックアップフォルダの場所を探す」セクションを参照し、正しいパスを確認して再入力します。
  • ファイル名やディレクトリ名の大文字・小文字が区別されるOS (Linuxなど) では、正確に入力しているか確認します。
ハッシュは抽出できたが、John the Ripperでパスワードが見つからない

パスワードが非常に複雑、長い、または使用している辞書に含まれていない可能性があります。

対処法:

  • より大規模な辞書ファイルを使用してみます。
  • --rulesオプションを使って、辞書の単語に変化を加えるルールを適用します。
  • --incrementalモードで総当たり攻撃を試みます(時間がかかることを覚悟してください)。
  • GPUが利用できる場合は、hashcatの使用を検討します。
  • 残念ながら、解析が現実的な時間内に終わらない可能性も受け入れる必要があります。
古いバックアップ形式のエラー

非常に古いiOS/iTunesバージョンのバックアップの場合、現在のitunes_backup2johnが対応していない可能性があります。

対処法:

  • John the Ripperを最新のJumboバージョンにアップデートしてみます。
  • 関連するフォーラムやGitHubのIssueで、同様のケースがないか調べてみます。

セキュリティと倫理に関する注意点 ⚖️

🚨 重要: itunes_backup2johnやJohn the Ripper、hashcatなどのパスワード解析ツールは、強力な機能を持つ一方で、悪用される危険性もあります。これらのツールの使用にあたっては、以下の点を必ず遵守してください。

  • 自分が所有するデバイスのバックアップ、または明示的な許可を得たバックアップに対してのみ使用してください。 他人のバックアップデータに対して無断でパスワード解析を行うことは、プライバシーの侵害であり、多くの国や地域で違法行為となります。
  • 法律と倫理を守ってください。 不正アクセス禁止法などの関連法規を理解し、遵守することが不可欠です。
  • ツールの使用は自己責任です。 これらのツールを使用した結果生じたいかなる問題についても、開発者および情報提供者は責任を負いません。

これらのツールは、あくまで自分が忘れてしまったパスワードを回復する、あるいはセキュリティ監査の一環としてパスワード強度をテストするなど、正当な目的のために設計されています。倫理的な利用を強くお願いします。

まとめ

itunes_backup2johnは、暗号化されたiTunesバックアップのパスワードを忘れてしまった場合に、そのパスワードハッシュを抽出し、John the Ripperによる解析を可能にするための重要なツールです。

この記事で解説した手順を追うことで、以下のことができるようになります:

  • John the Ripperと必要なファイルを準備する。
  • 対象となるiTunesバックアップのManifest.plistを見つける。
  • itunes_backup2johnを使ってパスワードハッシュを抽出する。
  • John the Ripper本体でハッシュの解析を試みる。

パスワード解析は時間と計算能力を要する作業であり、特に最近のiOSバージョンでは暗号化が強化されているため、成功が保証されるものではありません。しかし、他に手段がない場合には試してみる価値があるでしょう。

繰り返しになりますが、これらのツールは倫理的かつ合法的な目的にのみ使用してください。 🙏


参考情報

コメント

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