mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
94 lines
7.4 KiB
Markdown
94 lines
7.4 KiB
Markdown
# iOS Pentesting Checklist
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|
|
|
|
### 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/index.html#initial-analysis), um gängige Aktionen zum Pentesten einer iOS-Anwendung zu lernen
|
|
|
|
### Datenspeicherung
|
|
|
|
- [ ] [**Plist-Dateien**](ios-pentesting/index.html#plist) können verwendet werden, um sensible Informationen zu speichern.
|
|
- [ ] [**Core Data**](ios-pentesting/index.html#core-data) (SQLite-Datenbank) kann sensible Informationen speichern.
|
|
- [ ] [**YapDatabases**](ios-pentesting/index.html#yapdatabase) (SQLite-Datenbank) kann sensible Informationen speichern.
|
|
- [ ] [**Firebase**](ios-pentesting/index.html#firebase-real-time-databases) Fehlkonfiguration.
|
|
- [ ] [**Realm-Datenbanken**](ios-pentesting/index.html#realm-databases) können sensible Informationen speichern.
|
|
- [ ] [**Couchbase Lite-Datenbanken**](ios-pentesting/index.html#couchbase-lite-databases) können sensible Informationen speichern.
|
|
- [ ] [**Binäre Cookies**](ios-pentesting/index.html#cookies) können sensible Informationen speichern.
|
|
- [ ] [**Cache-Daten**](ios-pentesting/index.html#cache) können sensible Informationen speichern.
|
|
- [ ] [**Automatische Snapshots**](ios-pentesting/index.html#snapshots) können visuelle sensible Informationen speichern.
|
|
- [ ] [**Keychain**](ios-pentesting/index.html#keychain) wird normalerweise verwendet, um sensible Informationen zu speichern, die beim Weiterverkauf des Telefons zurückgelassen werden können.
|
|
- [ ] Zusammenfassend, **prüfen Sie auf sensible Informationen, die von der Anwendung im Dateisystem gespeichert werden.**
|
|
|
|
### Tastaturen
|
|
|
|
- [ ] Erlaubt die Anwendung [**die Verwendung von benutzerdefinierten Tastaturen**](ios-pentesting/index.html#custom-keyboards-keyboard-cache)?
|
|
- [ ] Überprüfen Sie, ob sensible Informationen in den [**Tastatur-Cache-Dateien**](ios-pentesting/index.html#custom-keyboards-keyboard-cache) gespeichert sind.
|
|
|
|
### **Protokolle**
|
|
|
|
- [ ] Überprüfen Sie, ob [**sensible Informationen protokolliert werden**](ios-pentesting/index.html#logs).
|
|
|
|
### Backups
|
|
|
|
- [ ] [**Backups**](ios-pentesting/index.html#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/index.html#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** umgangen werden.
|
|
|
|
### **Anwendungs-Speicher**
|
|
|
|
- [ ] Überprüfen Sie auf sensible Informationen im [**Speicher der Anwendung**](ios-pentesting/index.html#testing-memory-for-sensitive-data).
|
|
|
|
### **Kaputte Kryptografie**
|
|
|
|
- [ ] Überprüfen Sie, ob Sie [**Passwörter, die für die Kryptografie verwendet werden**](ios-pentesting/index.html#broken-cryptography), finden können.
|
|
- [ ] Überprüfen Sie die Verwendung von [**veralteten/schwachen Algorithmen**](ios-pentesting/index.html#broken-cryptography) zum Senden/Speichern sensibler Daten.
|
|
- [ ] [**Hooken und Überwachen von Kryptografie-Funktionen**](ios-pentesting/index.html#broken-cryptography).
|
|
|
|
### **Lokale Authentifizierung**
|
|
|
|
- [ ] Wenn eine [**lokale Authentifizierung**](ios-pentesting/index.html#local-authentication) in der Anwendung verwendet wird, sollten Sie überprüfen, wie die Authentifizierung funktioniert.
|
|
- [ ] Wenn das [**Local Authentication Framework**](ios-pentesting/index.html#local-authentication-framework) verwendet wird, könnte es leicht umgangen werden.
|
|
- [ ] Wenn eine [**Funktion verwendet wird, die dynamisch umgangen werden kann**](ios-pentesting/index.html#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/index.html#custom-uri-handlers-deeplinks-custom-schemes)
|
|
- [ ] Überprüfen Sie, ob die Anwendung **ein Protokoll/Scheme registriert**.
|
|
- [ ] Überprüfen Sie, ob die Anwendung **registriert, um** ein Protokoll/Scheme zu verwenden.
|
|
- [ ] Überprüfen Sie, ob die Anwendung **erwartet, sensible 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 **Benutzereingaben über das benutzerdefinierte Scheme nicht überprüft und bereinigt**, 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/index.html#universal-links)
|
|
- [ ] Überprüfen Sie, ob die Anwendung **ein universelles Protokoll/Scheme registriert**.
|
|
- [ ] Überprüfen Sie die Datei `apple-app-site-association`.
|
|
- [ ] Überprüfen Sie, ob die Anwendung **Benutzereingaben über das benutzerdefinierte Scheme nicht überprüft und bereinigt**, 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/index.html#network-communication) durch und suchen Sie nach Web-Schwachstellen.
|
|
- [ ] Überprüfen Sie, ob der [**Hostname des Zertifikats**](ios-pentesting/index.html#hostname-check) überprüft wird.
|
|
- [ ] Überprüfen/Umgehen Sie [**Zertifikat-Pinning**](ios-pentesting/index.html#certificate-pinning).
|
|
|
|
### **Sonstiges**
|
|
|
|
- [ ] Überprüfen Sie auf [**automatische Patching-/Aktualisierungs**](ios-pentesting/index.html#hot-patching-enforced-updateing) Mechanismen.
|
|
- [ ] Überprüfen Sie auf [**bösartige Drittanbieter-Bibliotheken**](ios-pentesting/index.html#third-parties).
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|