
カーネル認証情報をlaunchd + task_tポインタから盗む試み (CVE-2017-7047に基づく)
launchd からカーネル認証情報と task_t ポインタを盗み出そうと試みます(CVE-2017-7047 に基づく)
Triple Fetch は iOS 10.3.3 より前の iOS デバイス向けのエクスプロイトです。 これは libxpc の論理エラーを悪用し、攻撃者が共有メモリに裏付けられた xpc_data オブジェクトを使用して悪意のあるメッセージを送信できるようにします。
元のエクスプロイトは、iOS 上で NSXPC を使用する低レベルデーモン(CoreAuthenticationd)を標的としています。 このエクスプロイトは AMFID にパッチを当てて任意のコード実行を可能にし、さらに launchd に対する send_right を取得することで、task_for_pid 1 を実行できるようにします。 これにより、システム上で最も低いデーモンである launchd に対する完全な権限が得られます。
このエクスプロイトには、launchd タスクを使用して launchd のメモリをメモリ領域(読み取り/書き込み/実行)ごとにダンプするための hello_world というサンプルが既に付属しています。 以下のことは難しくありません:
このエクスプロイトはユーザースペースから直接実行され、カーネルにパッチを当てずに root を取得するため、脱獄目的に最適に使用できます。ただし、バグがレースコンディションであり、正しく発生するのが稀なようです。ユーザーは再脱獄するまでに何度も再起動と再試行を繰り返す必要があります。
リポジトリにコードを貢献したい場合は、いつでもプルリクエストを作成できます。 将来のカーネルパッチに必要な多数のオフセットを含むファイルを追加する予定です。 launchd のカーネル認証情報を盗むのに役立つコードに取り組む予定です。
Apple の VoIP API を使用して、再起動後にエクスプロイトが自動的にバックグラウンドで実行されるようにしようとしています。 アプリに便利な設定バンドルを追加し、設定アプリから bootNonce を設定して将来のダウングレードに備えられるようにします。 OTA アップデートの無効化と有効化のためのトグルが追加されます。 cron ジョブを使用して SHSH2 blobs を自動保存するコードが追加されます。 Settings から切り替え可能な Tor を脱獄に統合するために最善を尽くします。なぜなら、誰もがプライバシーを必要とするからです。 Safari の迷惑な広告を取り除くため、おまけとしてコンテンツブロッカーが追加されています。