# iOS Pentesting Checklist
\ Verwenden Sie [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), um einfach **Workflows** zu erstellen und zu **automatisieren**, die von den **fortschrittlichsten** Community-Tools der Welt unterstützt werden.\ Zugang heute erhalten: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} {% hint style="success" %} Lernen & üben Sie AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Lernen & üben Sie GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)! * **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Teilen Sie Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos senden.
{% endhint %} ### Vorbereitung * [ ] Lesen Sie [**iOS Grundlagen**](ios-pentesting/ios-basics.md) * [ ] Bereiten Sie Ihre Umgebung vor, indem Sie [**iOS Testumgebung**](ios-pentesting/ios-testing-environment.md) lesen * [ ] Lesen Sie alle Abschnitte von [**iOS Erste Analyse**](ios-pentesting/#initial-analysis), um gängige Aktionen zum Pentesten einer iOS-Anwendung zu lernen ### Datenspeicherung * [ ] [**Plist-Dateien**](ios-pentesting/#plist) können verwendet werden, um sensible Informationen zu speichern. * [ ] [**Core Data**](ios-pentesting/#core-data) (SQLite-Datenbank) kann sensible Informationen speichern. * [ ] [**YapDatabases**](ios-pentesting/#yapdatabase) (SQLite-Datenbank) kann sensible Informationen speichern. * [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) Fehlkonfiguration. * [ ] [**Realm-Datenbanken**](ios-pentesting/#realm-databases) können sensible Informationen speichern. * [ ] [**Couchbase Lite-Datenbanken**](ios-pentesting/#couchbase-lite-databases) können sensible Informationen speichern. * [ ] [**Binäre Cookies**](ios-pentesting/#cookies) können sensible Informationen speichern. * [ ] [**Cache-Daten**](ios-pentesting/#cache) können sensible Informationen speichern. * [ ] [**Automatische Snapshots**](ios-pentesting/#snapshots) können visuelle sensible Informationen speichern. * [ ] [**Keychain**](ios-pentesting/#keychain) wird normalerweise verwendet, um sensible Informationen zu speichern, die beim Weiterverkauf des Telefons zurückgelassen werden können. * [ ] Zusammenfassend sollten Sie einfach **nach sensiblen Informationen suchen, die von der Anwendung im Dateisystem gespeichert wurden.** ### Tastaturen * [ ] Erlaubt die Anwendung [**die Verwendung von benutzerdefinierten Tastaturen**](ios-pentesting/#custom-keyboards-keyboard-cache)? * [ ] Überprüfen Sie, ob sensible Informationen in den [**Tastatur-Cache-Dateien**](ios-pentesting/#custom-keyboards-keyboard-cache) gespeichert sind. ### **Protokolle** * [ ] Überprüfen Sie, ob [**sensible Informationen protokolliert werden**](ios-pentesting/#logs). ### Backups * [ ] [**Backups**](ios-pentesting/#backups) können verwendet werden, um **auf die im Dateisystem gespeicherten sensiblen Informationen** zuzugreifen (überprüfen Sie den ersten Punkt dieser Checkliste). * [ ] Außerdem können [**Backups**](ios-pentesting/#backups) verwendet werden, um **einige Konfigurationen der Anwendung zu ändern**, dann **das Backup** auf dem Telefon **wiederherzustellen**, und da die **geänderte Konfiguration** **geladen** wird, kann einige (Sicherheits-) **Funktionalität** möglicherweise **umgangen** werden. ### **Anwendungs-Speicher** * [ ] Überprüfen Sie auf sensible Informationen im [**Speicher der Anwendung**](ios-pentesting/#testing-memory-for-sensitive-data). ### **Kaputte Kryptografie** * [ ] Überprüfen Sie, ob Sie [**Passwörter, die für die Kryptografie verwendet werden**](ios-pentesting/#broken-cryptography), finden können. * [ ] Überprüfen Sie die Verwendung von [**veralteten/schwachen Algorithmen**](ios-pentesting/#broken-cryptography), um sensible Daten zu senden/speichern. * [ ] [**Hooken und Überwachen von Kryptografie-Funktionen**](ios-pentesting/#broken-cryptography). ### **Lokale Authentifizierung** * [ ] Wenn eine [**lokale Authentifizierung**](ios-pentesting/#local-authentication) in der Anwendung verwendet wird, sollten Sie überprüfen, wie die Authentifizierung funktioniert. * [ ] Wenn das [**Local Authentication Framework**](ios-pentesting/#local-authentication-framework) verwendet wird, könnte es leicht umgangen werden. * [ ] Wenn eine [**Funktion verwendet wird, die dynamisch umgangen werden kann**](ios-pentesting/#local-authentication-using-keychain), könnten Sie ein benutzerdefiniertes Frida-Skript erstellen. ### Sensible Funktionalitätsexposition durch IPC * [**Benutzerdefinierte URI-Handler / Deeplinks / Benutzerdefinierte Schemes**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes) * [ ] Überprüfen Sie, ob die Anwendung **ein Protokoll/Scheme registriert**. * [ ] Überprüfen Sie, ob die Anwendung **registriert ist, um** ein Protokoll/Scheme zu verwenden. * [ ] Überprüfen Sie, ob die Anwendung **erwartet, eine Art von sensiblen Informationen** vom benutzerdefinierten Scheme zu erhalten, die von einer anderen Anwendung, die dasselbe Scheme registriert, **abgefangen** werden können. * [ ] Überprüfen Sie, ob die Anwendung **keine Überprüfung und Bereinigung** der Benutzereingaben über das benutzerdefinierte Scheme vornimmt und ob eine **Schwachstelle ausgenutzt werden kann**. * [ ] Überprüfen Sie, ob die Anwendung **eine sensible Aktion exponiert**, die von überall über das benutzerdefinierte Scheme aufgerufen werden kann. * [**Universelle Links**](ios-pentesting/#universal-links) * [ ] Überprüfen Sie, ob die Anwendung **ein universelles Protokoll/Scheme registriert**. * [ ] Überprüfen Sie die `apple-app-site-association`-Datei. * [ ] Überprüfen Sie, ob die Anwendung **keine Überprüfung und Bereinigung** der Benutzereingaben über das benutzerdefinierte Scheme vornimmt und ob eine **Schwachstelle ausgenutzt werden kann**. * [ ] Überprüfen Sie, ob die Anwendung **eine sensible Aktion exponiert**, die von überall über das benutzerdefinierte Scheme aufgerufen werden kann. * [**UIActivity Sharing**](ios-pentesting/ios-uiactivity-sharing.md) * [ ] Überprüfen Sie, ob die Anwendung UIActivities empfangen kann und ob es möglich ist, eine Schwachstelle mit einer speziell gestalteten Aktivität auszunutzen. * [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md) * [ ] Überprüfen Sie, ob die Anwendung **etwas in die allgemeine Zwischenablage kopiert**. * [ ] Überprüfen Sie, ob die Anwendung **Daten aus der allgemeinen Zwischenablage für irgendetwas verwendet**. * [ ] Überwachen Sie die Zwischenablage, um zu sehen, ob **sensible Daten kopiert werden**. * [**App-Erweiterungen**](ios-pentesting/ios-app-extensions.md) * [ ] Verwendet die Anwendung **irgendeine Erweiterung**? * [**WebViews**](ios-pentesting/ios-webviews.md) * [ ] Überprüfen Sie, welche Art von WebViews verwendet werden. * [ ] Überprüfen Sie den Status von **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`**. * [ ] Überprüfen Sie, ob die WebView **auf lokale Dateien** mit dem Protokoll **file://** **zugreifen kann** (**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`**). * [ ] Überprüfen Sie, ob JavaScript auf **Native** **Methoden** (`JSContext`, `postMessage`) zugreifen kann. ### Netzwerkkommunikation * [ ] Führen Sie einen [**MitM zur Kommunikation**](ios-pentesting/#network-communication) durch und suchen Sie nach Web-Schwachstellen. * [ ] Überprüfen Sie, ob der [**Hostname des Zertifikats**](ios-pentesting/#hostname-check) überprüft wird. * [ ] Überprüfen/Umgehen Sie [**Zertifikat-Pinning**](ios-pentesting/#certificate-pinning). ### **Sonstiges** * [ ] Überprüfen Sie auf [**automatische Patching-/Aktualisierungs**](ios-pentesting/#hot-patching-enforced-updateing) Mechanismen. * [ ] Überprüfen Sie auf [**bösartige Drittanbieter-Bibliotheken**](ios-pentesting/#third-parties). {% hint style="success" %} Lernen & üben Sie AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Lernen & üben Sie GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)! * **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Teilen Sie Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos senden.
{% endhint %}
\ Verwenden Sie [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), um einfach **Workflows** zu erstellen und zu **automatisieren**, die von den **fortschrittlichsten** Community-Tools der Welt unterstützt werden.\ Zugang heute erhalten: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}