## https://sploitus.com/exploit?id=58F41777-2CEC-58BB-A296-28B83B15089E
# PoC: Exfiltraci贸n de Archivos en iOS v铆a Manipulaci贸n de Backup
**ADVERTENCIA MUY IMPORTANTE: ESTE SOFTWARE ES UNA PRUEBA DE CONCEPTO (PoC) CON FINES EDUCATIVOS Y DE INVESTIGACI脫N EN SEGURIDAD 脷NICAMENTE.**
* **NO UTILICES este script en dispositivos para los que no tengas consentimiento expl铆cito y por escrito del propietario.** El acceso no autorizado a sistemas inform谩ticos es ilegal en la mayor铆a de las jurisdicciones.
* **Este script implica la RESTAURACI脫N de un dispositivo iOS desde una copia de seguridad, lo que resultar谩 en la P脡RDIDA TOTAL DE LOS DATOS ACTUALES en el dispositivo.** Procede con extrema precauci贸n y solo en dispositivos de prueba dedicados.
* El autor/proveedor de este script no se hace responsable del mal uso o de cualquier da帽o o p茅rdida de datos causada por el uso de este software. 脷SALO BAJO TU PROPIO RIESGO.
---
## Descripci贸n General
Este script de Python demuestra una vulnerabilidad (hipot茅tica o basada en vulnerabilidades pasadas, referenciada aqu铆 de forma ilustrativa como "anterior a iOS 18.3" seg煤n el PoC original) que permite la exfiltraci贸n de archivos arbitrarios de un dispositivo iOS. El m茅todo se basa en la manipulaci贸n de una copia de seguridad del dispositivo, la creaci贸n de un enlace simb贸lico (symlink) malicioso dentro de esa copia, y luego la restauraci贸n de esta copia modificada en el dispositivo. Finalmente, se interact煤a con un servicio del sistema (`com.apple.mobile.MCInstall`) para que, sin saberlo, lea el archivo apuntado por el symlink.
Este script ha sido "mejorado" desde la perspectiva de un investigador de seguridad para incluir:
* Logging detallado.
* Parametrizaci贸n v铆a argumentos de l铆nea de comandos.
* Comprobaciones de dependencias y versi贸n de iOS (conceptual).
* Comentarios extensos sobre el funcionamiento interno y posibles mitigaciones.
* Mayor robustez y manejo de errores.
## Vulnerabilidad Explicada (Conceptual)
La vulnerabilidad explotada se aprovecha de la siguiente cadena de debilidades (presentes en versiones antiguas de iOS):
1. **Creaci贸n de Symlinks en Copias de Seguridad:** La capacidad de crear un archivo de copia de seguridad donde un archivo de sistema esperado (ej. `CloudConfigurationDetails.plist`) es reemplazado por un enlace simb贸lico que apunta a un archivo sensible en el sistema de archivos del dispositivo (ej. `/private/etc/passwd`).
2. **Restauraci贸n de Symlinks:** El proceso de restauraci贸n de iOS, en versiones vulnerables, restauraba estos enlaces simb贸licos en el dispositivo sin una validaci贸n o saneamiento adecuados.
3. **Lectura por Servicio Privilegiado:** Un servicio del sistema (`com.apple.mobile.MCInstall` en este PoC) que tiene permisos para leer el archivo de configuraci贸n original (`CloudConfigurationDetails.plist`) puede ser invocado. Al intentar leer el archivo, el sistema operativo sigue el enlace simb贸lico y, en su lugar, lee el contenido del archivo sensible al que apunta el symlink.
4. **Exfiltraci贸n de Datos:** El servicio devuelve el contenido del archivo le铆do (que es el archivo sensible) al cliente que lo solicit贸.
**Nota sobre la Versi贸n de iOS:** El PoC original menciona "iOS < 18.3". Esta numeraci贸n es at铆pica. Apple ha parchado vulnerabilidades relacionadas con el manejo de symlinks en copias de seguridad y perfiles de configuraci贸n en versiones de iOS significativamente anteriores (generalmente antes de iOS 15/16 para los vectores m谩s directos de este tipo). Esta referencia de versi贸n se mantiene por consistencia con el origen del script, pero debe entenderse como ilustrativa de "una versi贸n vulnerable no parchada".
## Caracter铆sticas del Script Mejorado
* **Logging Detallado:** Timestamps y mensajes claros para cada paso del proceso.
* **Argumentos de L铆nea de Comandos:** Configuraci贸n flexible de directorios, archivo objetivo, UDID, etc.
* **Modularidad:** Posibilidad de omitir fases (backup/restauraci贸n o explotaci贸n) para an谩lisis.
* **Comprobaci贸n de Dependencias:** Verifica la existencia de `idevicebackup2`.
* **Informaci贸n del Dispositivo:** Intenta obtener la versi贸n de iOS y UDID.
* **Comprobaci贸n de Vulnerabilidad (Conceptual):** Advierte si la versi贸n de iOS detectada probablemente est茅 parchada.
* **Manejo de Errores Mejorado:** Captura y reporta errores de forma m谩s clara.
* **Comentarios Educativos:** Explicaciones detalladas en el c贸digo sobre el proceso y mitigaciones.
## Requisitos Previos
* **Python 3.7+**
* **libimobiledevice:** Un conjunto de herramientas para interactuar con dispositivos iOS. Espec铆ficamente, se necesita `idevicebackup2` en el PATH del sistema.
* En macOS: `brew install libimobiledevice`
* En Linux: `sudo apt-get install libimobiledevice-utils` (el nombre del paquete puede variar)
* **Paquetes de Python:**
```bash
pip install usbmux-python python-lockdown packaging
```
## Instalaci贸n
1. Clona este repositorio:
```bash
git clone <url-del-repositorio>
cd <nombre-del-directorio>
```
2. Aseg煤rate de tener `libimobiledevice` instalado y `idevicebackup2` accesible.
3. Instala las dependencias de Python:
```bash
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
```
## Uso
```bash
./exploit_ios_file_read.py [OPCIONES]