iOS Uygulama Uzantıları
Reading time: 3 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
Uygulama uzantıları, uygulamaların diğer uygulamalar veya sistemle etkileşimde bulunarak özel özellikler veya içerik sunmasına olanak tanıyarak uygulamaların işlevselliğini artırır. Bu uzantılar şunları içerir:
- Özel Klavye: Tüm uygulamalarda benzersiz bir klavye sunarak varsayılan iOS klavyesinin yerini alır.
- Paylaş: Sosyal ağlara veya diğerleriyle doğrudan paylaşım yapma imkanı sağlar.
- Bugün (Widget'lar): Bildirim Merkezi'nin Bugün görünümünden hızlı bir şekilde içerik sunar veya görevleri yerine getirir.
Bir kullanıcı, bir ana uygulamadan metin paylaşmak gibi bu uzantılarla etkileşime girdiğinde, uzantı bu girişi kendi bağlamında işler ve görevini yerine getirmek için paylaşılan bilgileri kullanır; bu, Apple'ın belgelerinde detaylandırılmıştır.
Güvenlik Hususları
Ana güvenlik unsurları şunlardır:
- Uzantılar ve içerdikleri uygulamalar, doğrudan değil, süreçler arası iletişim yoluyla iletişim kurar.
- Bugün widget'ı, uygulamasını belirli bir yöntemle açmasını isteyebilmesi açısından benzersizdir.
- Paylaşılan veri erişimi, özel bir konteyner içinde izinlidir, ancak doğrudan erişim kısıtlanmıştır.
- HealthKit gibi belirli API'ler uygulama uzantılarına kapalıdır; ayrıca iMessage uzantıları dışında uzun süreli görevler başlatamaz, kamera veya mikrofona erişemezler.
Statik Analiz
Uygulama Uzantılarını Belirleme
Kaynak kodunda uygulama uzantılarını bulmak için Xcode'da NSExtensionPointIdentifier
araması yapın veya uzantıları gösteren .appex
dosyalarını içeren uygulama paketini inceleyin. Kaynak kodu olmadan, bu tanımlayıcıları uygulama paketinde bulmak için grep veya SSH kullanın.
Desteklenen Veri Türleri
Bir uzantının Info.plist
dosyasını kontrol ederek NSExtensionActivationRule
ile desteklenen veri türlerini belirleyin. Bu yapılandırma, yalnızca uyumlu veri türlerinin ana uygulamalarda uzantıyı tetiklemesini sağlar.
Veri Paylaşımı
Bir uygulama ile uzantısı arasında veri paylaşımı, "Uygulama Grupları" aracılığıyla ayarlanan ve NSUserDefaults
üzerinden erişilen paylaşılan bir konteyner gerektirir. Bu paylaşılan alan, uzantılar tarafından başlatılan arka plan transferleri için gereklidir.
Uzantıları Kısıtlama
Uygulamalar, özellikle özel klavyeler gibi belirli uzantı türlerini kısıtlayabilir, böylece hassas veri işleme güvenlik protokolleriyle uyumlu hale gelir.
Dinamik Analiz
Dinamik analiz şunları içerir:
- Paylaşılan Öğeleri İnceleme: Paylaşılan veri türlerini ve kökenlerini görmek için
NSExtensionContext - inputItems
'a bağlanın. - Uzantıları Belirleme: Verilerinizi hangi uzantıların işlediğini,
NSXPCConnection
gibi iç mekanizmaları gözlemleyerek keşfedin.
frida-trace
gibi araçlar, süreçler arası iletişimin teknik detaylarına ilgi duyanlar için temel süreçleri anlamada yardımcı olabilir.
Referanslar
- https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/
- https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.