
VERY IMPORTANT WARNING: THIS SOFTWARE IS A PROOF OF CONCEPT (PoC) FOR EDUCATIONAL AND SECURITY RESEARCH PURPOSES ONLY.
This Python script demonstrates a vulnerability (hypothetical or based on past vulnerabilities, referenced here illustratively as "prior to iOS 18.3" per the original PoC) that allows exfiltration of arbitrary files from an iOS device. The method relies on manipulating a device backup, creating a malicious symlink within that backup, and then restoring this modified backup to the device. Finally, it interacts with a system service (com.apple.mobile.MCInstall) so that it unknowingly reads the file pointed to by the symlink.
This script has been "enhanced" from a security researcher's perspective to include:
The exploited vulnerability leverages the following chain of weaknesses (present in older iOS versions):
CloudConfigurationDetails.plist) is replaced by a symlink pointing to a sensitive file on the device's filesystem (e.g., /private/etc/passwd).com.apple.mobile.MCInstall in this PoC) that has permissions to read the original configuration file (CloudConfigurationDetails.plist) can be invoked. When attempting to read the file, the operating system follows the symlink and instead reads the contents of the sensitive file the symlink points to.Note on iOS Version: The original PoC mentions "iOS < 18.3". This numbering is atypical. Apple has patched vulnerabilities related to symlink handling in backups and configuration profiles in significantly earlier iOS versions (generally before iOS 15/16 for the most direct vectors of this type). This version reference is retained for consistency with the script's origin, but should be understood as illustrative of "an unpatched vulnerable version".
idevicebackup2.idevicebackup2 must be in the system PATH.
brew install libimobiledevicesudo apt-get install libimobiledevice-utils (package name may vary)pip install usbmux-python python-lockdown packaging
git clone <repository-url>
cd <directory-name>
libimobiledevice is installed and idevicebackup2 is accessible.pip install -r requirements.txt # (If you create a requirements.txt with usbmux-python, python-lockdown, packaging)
# or manually:
# pip install usbmux-python python-lockdown packaging
./exploit_ios_file_read.py [OPTIONS]