パスワードを忘れたApple Notesをapplenotes2johnで解き明かす方法 🧐

セキュリティツール

John the Ripper を使って、ロックされたメモのパスワードを取り戻す手順

はじめに:パスワードを忘れるという悪夢 😱

Apple Notesは、アイデアを書き留めたり、情報を整理したりするのに非常に便利なツールです。しかし、セキュリティを高めるためにメモにパスワードを設定し、そのパスワードを忘れてしまった場合、重要な情報にアクセスできなくなる可能性があります。

Appleは公式には、忘れたパスワードを回復する方法を提供していません。パスワードをリセットすることはできますが、それは新しく作成するメモに適用されるだけで、既にロックされた古いメモを開くことはできません。これは、多くのユーザーにとって悪夢のような状況です。

しかし、諦めるのはまだ早いです!強力なパスワード回復ツールである John the Ripper と、その仲間である applenotes2john スクリプトを使えば、失われたパスワードを取り戻せる可能性があります。

⚠️ 重要: この方法は、ご自身が所有するデータに対してのみ使用してください。他人のメモに不正にアクセスすることは、法律で禁止されており、倫理的にも問題があります。

必要なものリスト ✅

パスワード回復作戦を開始する前に、以下のものが必要です。

  • John the Ripper (JtR): オープンソースのパスワードクラッキングツールです。多くのLinuxディストリビューションに含まれているか、公式サイトからダウンロードできます。macOSやWindows版もあります。
  • applenotes2john.py スクリプト: John the Ripper の Jumbo バージョンに含まれるPythonスクリプトです。Apple Notes のデータベースからパスワードハッシュを抽出する役割を担います。通常、JtRのインストールディレクトリ内の `run` フォルダにあります。GitHubのリポジトリからも入手できます。
  • Python: applenotes2john.py スクリプトを実行するために必要です。macOSには通常プリインストールされていますが、Windowsの場合は別途インストールが必要です。
  • NoteStore.sqlite ファイル: パスワードでロックされたメモの情報が含まれるSQLiteデータベースファイルです。このファイルの場所を見つけることが最初の関門となります。
  • (推奨)強力なコンピュータ: パスワードクラッキングは計算量が多く、時間がかかる場合があります。特に複雑なパスワードの場合、高性能なCPUやGPUがあると有利です。
  • (推奨)パスワードリスト(辞書): よく使われるパスワードや、心当たりのある単語などを集めたリストがあると、クラッキングの効率が上がります。

ステップ1:宝の地図を手に入れろ!NoteStore.sqliteを探す 🗺️

パスワード回復の鍵となる `NoteStore.sqlite` ファイルは、通常、以下の場所に隠されています。

Finderを開き、「移動」メニューから「フォルダへ移動…」を選択し、以下のパスを入力します。

~/Library/Group Containers/group.com.apple.notes/

このフォルダ内に `NoteStore.sqlite` があるはずです。見つけたら、安全な場所にコピーしておきましょう。元のファイルを直接操作するのは避けるのが賢明です。

注意: iCloud Notesを使用している場合、データの一部が別の場所 (`~/Library/Containers/com.apple.Notes/` など) にキャッシュされている可能性もありますが、主要なデータはこの `group.com.apple.notes` フォルダにあることが多いです。macOSのバージョンによって場所が変わる可能性もあります。

iPhoneやiPadのメモを回復したい場合、MacやPCに作成したiTunes(またはFinder)のバックアップから `NoteStore.sqlite` を抽出する必要があります。

バックアップファイルは通常、難解な名前のフォルダに保存されており、直接探すのは困難です。

  • Macの場合: `~/Library/Application Support/MobileSync/Backup/`
  • Windowsの場合: `%APPDATA%\Apple Computer\MobileSync\Backup\` または `%USERPROFILE%\Apple\MobileSync\Backup\`

これらのバックアップフォルダ内から `NoteStore.sqlite` を見つけ出すには、専用のiPhoneバックアップ抽出ツールを使用するのが一般的です。または、`applenotes2john.py` の元になったツールである Apple Cloud Notes Parser などがiTunesバックアップフォルダを直接指定して処理できる場合があります。

💡 ヒント: iTunes/Finderでバックアップを作成する際は、「iPhoneのバックアップを暗号化」オプションを解除しておく必要があります。暗号化されたバックアップからは、通常の方法では `NoteStore.sqlite` を簡単に取り出せません。

ステップ2:魔法の呪文を唱えよ!applenotes2johnでハッシュを抽出 ✨

`NoteStore.sqlite` ファイルを手に入れたら、いよいよ `applenotes2john.py` の出番です。このスクリプトは、データベースファイルからJohn the Ripperが理解できる形式の「ハッシュ」を抽出します。ハッシュとは、元のパスワードを特定の方法で変換したもので、直接パスワードが書かれているわけではありません。

ターミナル(またはコマンドプロンプト)を開き、`applenotes2john.py` スクリプトがあるディレクトリに移動するか、スクリプトへのフルパスを指定して実行します。

基本的なコマンドは以下のようになります。

python /path/to/john/run/applenotes2john.py /path/to/your/NoteStore.sqlite > notes_hash.txt

解説:

  • python: Pythonインタープリタを起動します。(環境によっては `python3` が必要な場合があります)
  • /path/to/john/run/applenotes2john.py: `applenotes2john.py` スクリプトの実際のパスに置き換えてください。John the Ripper をソースからビルドした場合などは `run` ディレクトリにあることが多いです。Kali Linuxなどでは `/usr/share/john/` にあるかもしれません。
  • /path/to/your/NoteStore.sqlite: ステップ1でコピーした `NoteStore.sqlite` ファイルのパスに置き換えてください。
  • > notes_hash.txt: スクリプトの出力(抽出されたハッシュ)を `notes_hash.txt` という名前のファイルに保存します。ファイル名は任意に変更可能です。

成功すれば、`notes_hash.txt` ファイルに以下のような形式の文字列が出力されているはずです(これはあくまで例です)。

$ASN$*iterations*salt*tag*iv*encrypted_data

この文字列が、John the Ripperがパスワードを解読するための重要な情報となります。

🚨 エラーが出た場合:
  • スクリプトやデータベースファイルのパスが正しいか確認してください。
  • Pythonが正しくインストールされているか確認してください。
  • `NoteStore.sqlite` ファイルが破損していないか、またはパスワードが設定されていないメモのファイルではないか確認してください。`applenotes2john.py` はパスワード保護されたノートが存在しない場合、何も出力しないかエラーを出すことがあります。
  • 古いバージョンのmacOS/iOSで作成されたノートの場合、スクリプトが対応していない可能性があります。

ステップ3:解読開始!John the Ripperでパスワードクラック 🔓

いよいよ最終ステップ、John the Ripperを使って抽出したハッシュから元のパスワードを推測(クラッキング)します。

最も基本的な使い方は、ハッシュファイル名を指定してJohn the Ripperを実行することです。

john notes_hash.txt

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

  • シングルクラックモード: ユーザー名(この場合はあまり関係ありません)や GECOS 情報からパスワードを推測します。Apple Notesの場合は効果が薄いことが多いです。
  • 辞書モード: 指定されたパスワードリスト(辞書ファイル)に含まれる単語を試します。多くの場合、これが最も効率的です。John the Ripperにはデフォルトの辞書 (`password.lst`) が付属しています。
  • インクリメンタルモード: 考えられる全ての文字の組み合わせを試します(ブルートフォース)。非常に時間がかかりますが、単純なパスワードなら見つけられる可能性があります。

特定の辞書ファイルを使いたい場合は、`–wordlist` オプションを使用します。

john --wordlist=/path/to/your/dictionary.txt notes_hash.txt

`/path/to/your/dictionary.txt` を使用したい辞書ファイルのパスに置き換えてください。有名な辞書ファイルとしては `rockyou.txt` などがあります(利用は自己責任でお願いします)。

さらに、`–rules` オプションを使うと、辞書の単語に数字を追加したり、大文字小文字を変えたりといった「マングルール」を適用して、より多くのバリエーションを試すことができます。

john --wordlist=/path/to/your/dictionary.txt --rules notes_hash.txt

特定の文字種や長さでブルートフォース攻撃を行いたい場合は、`–incremental` オプションを使います。

john --incremental=Digits notes_hash.txt

上記は数字のみを試す例です。`Alnum` (英数字), `Alpha` (英字のみ), `Lower` (小文字のみ), `Upper` (大文字のみ) など、様々なモードがあります。詳細はJohn the Ripperのドキュメントを参照してください。

クラッキングの実行中にキーボードの任意のキー(Enterなど)を押すと、現在の進捗状況(試行速度、経過時間、次に試すパスワード候補など)が表示されます。

パスワードが見つかると、John the Ripperはそれを画面に表示し、`$JOHN/john.pot` というファイル(Potファイル)に記録します。Potファイルは、John the Ripperのホームディレクトリ(通常はインストールディレクトリかユーザーのホームディレクトリ内の `.john`)にあります。

クラッキングが完了した後や、中断した後に見つかったパスワードを確認するには、`–show` オプションを使います。

john --show notes_hash.txt

これにより、`notes_hash.txt` に対応するクラック済みのパスワードが `ファイル名:パスワード` の形式で表示されます。🎉

やったね!🤩 パスワードが見つかったら

見つかったパスワードを使って、Apple Notesアプリで該当のメモを開いてみましょう。無事に開ければ成功です!忘れないように、パスワードマネージャーなどに記録しておくことをお勧めします。

😥 パスワードが見つからない場合

パスワードが非常に複雑だったり、使用した辞書に含まれていなかったりすると、クラッキングには膨大な時間がかかるか、見つからない可能性もあります。より大規模な辞書を使ったり、高性能なハードウェアを利用したり、ブルートフォースの範囲を広げたりする必要があるかもしれません。

注意点と倫理的な考慮事項 ⚖️

  • 互換性: `applenotes2john.py` スクリプトは、特定のバージョンのmacOS/iOSでテストされています。新しいOSバージョンではデータベース構造が変更され、スクリプトが動作しない可能性があります。常に最新のJohn the Ripper Jumboバージョンを使用することをお勧めします。
  • 処理時間: パスワードの複雑さによっては、クラッキングに数時間、数日、あるいはそれ以上かかることがあります。
  • 法的・倫理的側面: 繰り返しになりますが、この技術はご自身が所有し、アクセスする正当な権利を持つデータに対してのみ使用してください。他人のアカウントやデータに不正アクセスする目的で使用することは、重大な犯罪となる可能性があります。
  • Appleによる非推奨: Appleはパスワードを忘れた場合の回復手段を提供しておらず、このような方法はサポート対象外です。

まとめ ✨

Apple Notesのパスワードを忘れてしまうと非常に困りますが、`applenotes2john`とJohn the Ripperを使えば、パスワードを回復できる可能性があります。

  1. `NoteStore.sqlite` ファイルを見つけてコピーする。
  2. `applenotes2john.py` を使ってハッシュを抽出する。
  3. John the Ripperでハッシュファイルを指定してクラッキングを実行する。
  4. 見つかったパスワードでメモを開く。

このプロセスは少し技術的ですが、手順に従えば実行可能です。ただし、必ず倫理的な範囲内で、ご自身のデータに対してのみ使用するようにしてください。幸運を祈ります! 🤞

参考情報

コメント

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