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

135 lines
10 KiB
Markdown
Raw Permalink 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 Kontrol Listesi
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **iş akışlarını** kolayca oluşturun ve **otomatikleştirin**.\
Bugün Erişim Alın:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
### 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
* [ ] [**iOS İlk Analiz**](ios-pentesting/#initial-analysis) bölümündeki tüm kısımları okuyarak bir iOS uygulamasını pentest etmek için yaygın eylemleri öğrenin
### Veri Depolama
* [ ] [**Plist dosyaları**](ios-pentesting/#plist) hassas bilgileri depolamak için kullanılabilir.
* [ ] [**Core Data**](ios-pentesting/#core-data) (SQLite veritabanı) hassas bilgileri depolayabilir.
* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase) (SQLite veritabanı) hassas bilgileri depolayabilir.
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) yanlış yapılandırma.
* [ ] [**Realm veritabanları**](ios-pentesting/#realm-databases) hassas bilgileri depolayabilir.
* [ ] [**Couchbase Lite veritabanları**](ios-pentesting/#couchbase-lite-databases) hassas bilgileri depolayabilir.
* [ ] [**İkili çerezler**](ios-pentesting/#cookies) hassas bilgileri depolayabilir.
* [ ] [**Önbellek verileri**](ios-pentesting/#cache) hassas bilgileri depolayabilir.
* [ ] [**Otomatik anlık görüntüler**](ios-pentesting/#snapshots) görsel hassas bilgileri kaydedebilir.
* [ ] [**Anahtar zinciri**](ios-pentesting/#keychain) genellikle telefonun yeniden satılması durumunda bırakılabilecek hassas bilgileri depolamak için kullanılır.
* [ ] Özetle, uygulamanın dosya sisteminde kaydettiği hassas bilgileri **kontrol edin.**
### Klavyeler
* [ ] Uygulama [**özel klavyelerin kullanılmasına izin veriyor mu**](ios-pentesting/#custom-keyboards-keyboard-cache)?
* [ ] Hassas bilgilerin [**klavye önbellek dosyalarında**](ios-pentesting/#custom-keyboards-keyboard-cache) kaydedilip kaydedilmediğini kontrol edin.
### **Günlükler**
* [ ] [**hassas bilgilerin kaydedilip kaydedilmediğini**](ios-pentesting/#logs) kontrol edin.
### Yedeklemeler
* [ ] [**Yedeklemeler**](ios-pentesting/#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/#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/#testing-memory-for-sensitive-data) hassas bilgileri kontrol edin.
### **Kırık Kriptografi**
* [ ] [**kriptografi için kullanılan şifreleri**](ios-pentesting/#broken-cryptography) bulup bulamayacağınızı kontrol edin.
* [ ] Hassas verileri göndermek/depolamak için [**kullanılan eski/zayıf algoritmaları**](ios-pentesting/#broken-cryptography) kontrol edin.
* [ ] [**Kriptografi işlevlerini izleyin ve izleyin**](ios-pentesting/#broken-cryptography).
### **Yerel Kimlik Doğrulama**
* [ ] Uygulamada bir [**yerel kimlik doğrulama**](ios-pentesting/#local-authentication) kullanılıyorsa, kimlik doğrulamanın nasıl çalıştığını kontrol etmelisiniz.
* [ ] [**Yerel Kimlik Doğrulama Çerçevesi**](ios-pentesting/#local-authentication-framework) kullanıyorsa, kolayca atlatılabilir.
* [ ] [**dinamik olarak atlatılabilen bir işlev**](ios-pentesting/#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/#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ürde 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şlerini 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ça sunduğunu** kontrol edin.
* [**Evrensel Bağlantılar**](ios-pentesting/#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şlerini 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ça sunduğunu** 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/#network-communication) ve web açıklarını arayın.
* [ ] [**sertifikanın ana bilgisayar adının**](ios-pentesting/#hostname-check) kontrol edilip edilmediğini kontrol edin.
* [ ] [**Sertifika Pinleme**](ios-pentesting/#certificate-pinning) kontrol edin/atlatın.
### **Diğer**
* [ ] [**otomatik yamanın/güncellemelerin**](ios-pentesting/#hot-patching-enforced-updateing) mekanizmalarını kontrol edin.
* [ ] [**kötü niyetli üçüncü taraf kütüphaneleri**](ios-pentesting/#third-parties) kontrol edin.
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **iş akışlarını** kolayca oluşturun ve **otomatikleştirin**.\
Bugün Erişim Alın:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}