iOS App Extensions
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Le app extensions migliorano la funzionalitĂ delle app consentendo loro di interagire con altre app o con il sistema, fornendo funzionalitĂ o contenuti personalizzati. Queste estensioni includono:
- Custom Keyboard: Offre una tastiera unica in tutte le app, sostituendo la tastiera predefinita di iOS.
- Share: Consente la condivisione sui social network o con altri direttamente.
- Today (Widgets): Fornisce contenuti o esegue rapidamente attivitĂ dalla vista Oggi del Centro Notifiche.
Quando un utente interagisce con queste estensioni, come la condivisione di testo da unâapp host, lâestensione elabora questo input nel proprio contesto, sfruttando le informazioni condivise per eseguire il proprio compito, come dettagliato nella documentazione di Apple.
Considerazioni sulla Sicurezza
I principali aspetti di sicurezza includono:
- Le estensioni e le loro app contenitrici comunicano tramite comunicazione inter-processo, non direttamente.
- Il widget Oggi è unico in quanto può richiedere alla sua app di aprirsi tramite un metodo specifico.
- Lâaccesso ai dati condivisi è consentito allâinterno di un contenitore privato, ma lâaccesso diretto è limitato.
- Alcune API, inclusa HealthKit, sono vietate alle app extensions, che non possono avviare attivitĂ di lunga durata, accedere alla fotocamera o al microfono, tranne che per le estensioni di iMessage.
Analisi Statica
Identificazione delle App Extensions
Per trovare le app extensions nel codice sorgente, cerca NSExtensionPointIdentifier in Xcode o ispeziona il pacchetto dellâapp per file .appex che indicano estensioni. Senza codice sorgente, usa grep o SSH per localizzare questi identificatori allâinterno del pacchetto dellâapp.
Tipi di Dati Supportati
Controlla il file Info.plist di unâestensione per NSExtensionActivationRule per identificare i tipi di dati supportati. Questa configurazione garantisce che solo i tipi di dati compatibili attivino lâestensione nelle app host.
Condivisione dei Dati
La condivisione dei dati tra unâapp e la sua estensione richiede un contenitore condiviso, impostato tramite âApp Groupsâ e accessibile tramite NSUserDefaults. Questo spazio condiviso è necessario per i trasferimenti in background avviati dalle estensioni.
Restrizione delle Estensioni
Le app possono limitare determinati tipi di estensioni, in particolare le tastiere personalizzate, garantendo che la gestione dei dati sensibili sia conforme ai protocolli di sicurezza.
Analisi Dinamica
Lâanalisi dinamica comporta:
- Ispezione degli Elementi Condivisi: Intercetta
NSExtensionContext - inputItemsper vedere i tipi di dati e le origini condivisi. - Identificazione delle Estensioni: Scopri quali estensioni elaborano i tuoi dati osservando i meccanismi interni, come
NSXPCConnection.
Strumenti come frida-trace possono aiutare a comprendere i processi sottostanti, specialmente per coloro che sono interessati ai dettagli tecnici della comunicazione inter-processo.
Riferimenti
- https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/
- https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
HackTricks

