
デバイスバックアップ復元における悪意のあるシンボリックリンクを介したiOSファイル流出を示す概念実証のPythonスクリプト。任意のファイル読み取りのためにcom.apple.mobile.MCInstallサービスを標的としています。
非常に重要な警告: このソフトウェアは教育およびセキュリティ研究目的のみの概念実証 (PoC) です。
このPythonスクリプトは、iOSデバイスから任意のファイルを流出させる脆弱性(仮説的なもの、または過去の脆弱性に基づくもので、元のPoCに従って「iOS 18.3より前」と例示的に参照)を実証します。この方法は、デバイスのバックアップを操作し、そのバックアップ内に悪意のあるシンボリックリンク(symlink)を作成し、その後、変更されたバックアップをデバイスに復元することに基づいています。最後に、システムサービス(com.apple.mobile.MCInstall)と対話し、そのサービスがシンボリックリンクが指すファイルを読み取るように仕向けます。
このスクリプトは、セキュリティ研究者の視点から「改良」され、以下を含みます:
悪用される脆弱性は、以下の一連の弱点(古いiOSバージョンに存在)を利用します:
CloudConfigurationDetails.plist)が、デバイスのファイルシステム内の機密ファイル(例: /private/etc/passwd)を指すシンボリックリンクに置き換えられたバックアップファイルを作成する機能。CloudConfigurationDetails.plist)を読み取る権限を持つシステムサービス(このPoCではcom.apple.mobile.MCInstall)を呼び出すことができます。ファイルを読み取ろうとすると、オペレーティングシステムはシンボリックリンクを辿り、代わりにシンボリックリンクが指す機密ファイルの内容を読み取ります。iOSバージョンに関する注意: 元のPoCは「iOS < 18.3」に言及しています。このバージョン番号は非典型的です。Appleは、バックアップおよび構成プロファイルにおけるシンボリックリンクの処理に関連する脆弱性を、かなり以前のiOSバージョン(この種の最も直接的なベクトルでは通常iOS 15/16より前)で修正しています。このバージョン参照は、スクリプトの元のソースとの一貫性のために維持されていますが、「パッチされていない脆弱なバージョン」の例示として理解する必要があります。
idevicebackup2の存在を確認。idevicebackup2がシステムのPATHに含まれている必要があります。
brew install libimobiledevicesudo apt-get install libimobiledevice-utils (パッケージ名は異なる場合があります)pip install usbmux-python python-lockdown packaging
git clone <url-del-repositorio>
cd <nombre-del-directorio>
libimobiledeviceがインストールされ、idevicebackup2が使用可能であることを確認します。pip install -r requirements.txt # (Si creas un requirements.txt con usbmux-python, python-lockdown, packaging)
# o manualmente:
# pip install usbmux-python python-lockdown packaging
./exploit_ios_file_read.py [OPCIONES]