iOS App Extensions
Reading time: 3 minutes
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
App uitbreidings verbeter die funksionaliteit van toepassings deur hulle in staat te stel om met ander toepassings of die stelsel te kommunikeer, wat pasgemaakte funksies of inhoud bied. Hierdie uitbreidings sluit in:
- Pasgemaakte Sleutelbord: Bied 'n unieke sleutelbord oor alle toepassings, wat die standaard iOS-sleutelbord vervang.
- Deel: Maak dit moontlik om te deel met sosiale netwerke of met ander direk.
- Vandag (Widgets): Lewer inhoud of voer take vinnig uit vanaf die Kennisgewing Sentrum se Vandag-weergave.
Wanneer 'n gebruiker met hierdie uitbreidings omgaan, soos om teks van 'n gasheer toepassing te deel, verwerk die uitbreiding hierdie insette binne sy konteks, en benut die gedeelde inligting om sy taak uit te voer, soos in Apple se dokumentasie uiteengesit.
Sekuriteits oorwegings
Belangrike sekuriteitsaspekte sluit in:
- Uitbreidings en hul bevatende toepassings kommunikeer via inter-proses kommunikasie, nie direk nie.
- Die Vandag widget is uniek in die sin dat dit sy toepassing kan vra om via 'n spesifieke metode te open.
- Gedeelde data toegang is toegelaat binne 'n private houer, maar direkte toegang is beperk.
- Sekere API's, insluitend HealthKit, is buite bereik vir app uitbreidings, wat ook nie langlopende take kan begin, toegang tot die kamera of mikrofoon kan verkry nie, behalwe vir iMessage uitbreidings.
Statiese Analise
Identifisering van App Uitbreidings
Om app uitbreidings in bronkode te vind, soek vir NSExtensionPointIdentifier
in Xcode of ondersoek die app bundel vir .appex
lêers wat uitbreidings aandui. Sonder bronkode, gebruik grep of SSH om hierdie identifiseerders binne die app bundel te lokaliseer.
Gesteunde Data Tipes
Kontroleer die Info.plist
lêer van 'n uitbreiding vir NSExtensionActivationRule
om gesteunde data tipes te identifiseer. Hierdie opstelling verseker dat slegs kompatible data tipes die uitbreiding in gasheer toepassings aktiveer.
Data Deel
Data deel tussen 'n toepassing en sy uitbreiding vereis 'n gedeelde houer, opgestel via "App Groups" en toegang verkry deur NSUserDefaults
. Hierdie gedeelde ruimte is noodsaaklik vir agtergrond oordragte wat deur uitbreidings geïnisieer word.
Beperking van Uitbreidings
Toepassings kan sekere tipe uitbreidings beperk, veral pasgemaakte sleutelborde, om te verseker dat sensitiewe data hanteer volgens sekuriteitsprotokolle.
Dinamiese Analise
Dinamiese analise behels:
- Inspekteer Gedeelde Items: Haak in by
NSExtensionContext - inputItems
om gedeelde data tipes en oorspronge te sien. - Identifisering van Uitbreidings: Ontdek watter uitbreidings jou data verwerk deur interne meganismes, soos
NSXPCConnection
, te observeer.
Gereedskap soos frida-trace
kan help om die onderliggende prosesse te verstaan, veral vir diegene wat belangstel in die tegniese besonderhede van inter-proses kommunikasie.
Verwysings
- https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/
- https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.