hacktricks/src/mobile-pentesting/ios-pentesting-checklist.md

94 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# iOS Pentesting Checklist
{{#include ../banners/hacktricks-training.md}}
### Hazırlık
- [ ] [**iOS Temelleri**](ios-pentesting/ios-basics.md) okuyun
- [ ] [**iOS Test Ortamı**](ios-pentesting/ios-testing-environment.md) okuyarak ortamınızı hazırlayın
- [ ] Bir iOS uygulamasını pentest etmek için yaygın eylemleri öğrenmek amacıyla [**iOS İlk Analiz**](ios-pentesting/index.html#initial-analysis) bölümlerinin tamamını okuyun
### Veri Depolama
- [ ] [**Plist dosyaları**](ios-pentesting/index.html#plist) hassas bilgileri depolamak için kullanılabilir.
- [ ] [**Core Data**](ios-pentesting/index.html#core-data) (SQLite veritabanı) hassas bilgileri depolayabilir.
- [ ] [**YapDatabases**](ios-pentesting/index.html#yapdatabase) (SQLite veritabanı) hassas bilgileri depolayabilir.
- [ ] [**Firebase**](ios-pentesting/index.html#firebase-real-time-databases) yanlış yapılandırma.
- [ ] [**Realm veritabanları**](ios-pentesting/index.html#realm-databases) hassas bilgileri depolayabilir.
- [ ] [**Couchbase Lite veritabanları**](ios-pentesting/index.html#couchbase-lite-databases) hassas bilgileri depolayabilir.
- [ ] [**Binary cookies**](ios-pentesting/index.html#cookies) hassas bilgileri depolayabilir.
- [ ] [**Önbellek verileri**](ios-pentesting/index.html#cache) hassas bilgileri depolayabilir.
- [ ] [**Otomatik anlık görüntüler**](ios-pentesting/index.html#snapshots) görsel hassas bilgileri kaydedebilir.
- [ ] [**Anahtar zinciri**](ios-pentesting/index.html#keychain) genellikle telefonun yeniden satılması durumunda bırakılabilecek hassas bilgileri depolamak için kullanılır.
- [ ] Özetle, sadece **uygulama tarafından dosya sisteminde kaydedilen hassas bilgileri kontrol edin.**
### Klavyeler
- [ ] Uygulama [**özel klavyelerin kullanılmasına izin veriyor mu**](ios-pentesting/index.html#custom-keyboards-keyboard-cache)?
- [ ] Hassas bilgilerin [**klavye önbellek dosyalarında**](ios-pentesting/index.html#custom-keyboards-keyboard-cache) kaydedilip kaydedilmediğini kontrol edin.
### **Günlükler**
- [ ] [**hassas bilgilerin kaydedilip kaydedilmediğini**](ios-pentesting/index.html#logs) kontrol edin.
### Yedeklemeler
- [ ] [**Yedeklemeler**](ios-pentesting/index.html#backups) dosya sisteminde kaydedilen **hassas bilgilere erişmek için** kullanılabilir (bu kontrol listesinin başlangıç noktasını kontrol edin).
- [ ] Ayrıca, [**yedeklemeler**](ios-pentesting/index.html#backups) **uygulamanın bazı yapılandırmalarını değiştirmek için** kullanılabilir, ardından yedeği telefona **geri yükleyin** ve **değiştirilmiş yapılandırma** **yüklenirken** bazı (güvenlik) **işlevsellik** **atlatılabilir.**
### **Uygulama Belleği**
- [ ] [**uygulamanın belleğinde**](ios-pentesting/index.html#testing-memory-for-sensitive-data) hassas bilgileri kontrol edin.
### **Kırık Kriptografi**
- [ ] [**kriptografi için kullanılan şifreleri**](ios-pentesting/index.html#broken-cryptography) bulup bulamayacağınızı kontrol edin.
- [ ] Hassas verileri göndermek/depolamak için [**kullanımdan kaldırılmış/zayıf algoritmaların**](ios-pentesting/index.html#broken-cryptography) kullanılıp kullanılmadığını kontrol edin.
- [ ] [**Kriptografi işlevlerini izleyin ve izleyin**](ios-pentesting/index.html#broken-cryptography).
### **Yerel Kimlik Doğrulama**
- [ ] Uygulamada bir [**yerel kimlik doğrulama**](ios-pentesting/index.html#local-authentication) kullanılıyorsa, kimlik doğrulamanın nasıl çalıştığını kontrol etmelisiniz.
- [ ] [**Yerel Kimlik Doğrulama Çerçevesi**](ios-pentesting/index.html#local-authentication-framework) kullanıyorsa, kolayca atlatılabilir.
- [ ] [**dinamik olarak atlatılabilen bir işlev**](ios-pentesting/index.html#local-authentication-using-keychain) kullanıyorsa, özel bir frida betiği oluşturabilirsiniz.
### IPC Üzerinden Hassas İşlevsellik Açığa Çıkması
- [**Özel URI İşleyicileri / Derin Bağlantılar / Özel Şemalar**](ios-pentesting/index.html#custom-uri-handlers-deeplinks-custom-schemes)
- [ ] Uygulamanın **herhangi bir protokol/şemayı kaydedip kaydetmediğini** kontrol edin.
- [ ] Uygulamanın **herhangi bir protokol/şemayı kullanmak için kaydedilip kaydedilmediğini** kontrol edin.
- [ ] Uygulamanın **özel şemadan herhangi bir tür hassas bilgi almayı bekleyip beklemediğini** kontrol edin; bu bilgi, aynı şemayı kaydeden başka bir uygulama tarafından **yakalanabilir.**
- [ ] Uygulamanın **özel şema aracılığıyla kullanıcı girişini kontrol edip temizlemediğini** ve bazı **açıkların istismar edilebileceğini** kontrol edin.
- [ ] Uygulamanın **herhangi bir hassas eylemi** özel şema aracılığıyla her yerden çağrılabilir şekilde **açık hale getirip getirmediğini** kontrol edin.
- [**Evrensel Bağlantılar**](ios-pentesting/index.html#universal-links)
- [ ] Uygulamanın **herhangi bir evrensel protokol/şemayı kaydedip kaydetmediğini** kontrol edin.
- [ ] `apple-app-site-association` dosyasını kontrol edin.
- [ ] Uygulamanın **özel şema aracılığıyla kullanıcı girişini kontrol edip temizlemediğini** ve bazı **açıkların istismar edilebileceğini** kontrol edin.
- [ ] Uygulamanın **herhangi bir hassas eylemi** özel şema aracılığıyla her yerden çağrılabilir şekilde **açık hale getirip getirmediğini** kontrol edin.
- [**UIActivity Paylaşımı**](ios-pentesting/ios-uiactivity-sharing.md)
- [ ] Uygulamanın UIActivities alıp almadığını ve özel olarak hazırlanmış bir etkinlikle herhangi bir açığı istismar etmenin mümkün olup olmadığını kontrol edin.
- [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
- [ ] Uygulamanın **genel panoya herhangi bir şey kopyalayıp kopyalamadığını** kontrol edin.
- [ ] Uygulamanın **genel panodaki verileri herhangi bir şey için kullanıp kullanmadığını** kontrol edin.
- [ ] Herhangi bir **hassas verinin kopyalanıp kopyalanmadığını** görmek için panoyu izleyin.
- [**Uygulama Uzantıları**](ios-pentesting/ios-app-extensions.md)
- [ ] Uygulama **herhangi bir uzantı kullanıyor mu?**
- [**Web Görünümleri**](ios-pentesting/ios-webviews.md)
- [ ] Hangi tür web görünümlerinin kullanıldığını kontrol edin.
- [ ] **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`** durumunu kontrol edin.
- [ ] Web görünümünün **file://** protokolü ile **yerel dosyalara erişip erişemediğini** kontrol edin (**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`**).
- [ ] Javascript'in **Yerel** **metotlara** (`JSContext`, `postMessage`) erişip erişemediğini kontrol edin.
### Ağ İletişimi
- [ ] [**İletişime MitM uygulayın**](ios-pentesting/index.html#network-communication) ve web açıklarını arayın.
- [ ] [**sertifikanın ana bilgisayar adının**](ios-pentesting/index.html#hostname-check) kontrol edilip edilmediğini kontrol edin.
- [ ] [**Sertifika Sabitleme**](ios-pentesting/index.html#certificate-pinning) kontrol edin/atlatın.
### **Çeşitli**
- [ ] [**otomatik yamanın/güncellemelerin**](ios-pentesting/index.html#hot-patching-enforced-updateing) mekanizmalarını kontrol edin.
- [ ] [**kötü niyetli üçüncü taraf kütüphaneleri**](ios-pentesting/index.html#third-parties) kontrol edin.
{{#include ../banners/hacktricks-training.md}}