hacktricks/mobile-pentesting/ios-pentesting/ios-app-extensions.md

78 lines
6 KiB
Markdown
Raw Normal View History

2024-02-10 15:36:32 +00:00
# iOS App-Erweiterungen
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie das Hacken von AWS von Null auf Heldenniveau mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 15:36:32 +00:00
App-Erweiterungen verbessern die Funktionalität von Apps, indem sie ihnen ermöglichen, mit anderen Apps oder dem System zu interagieren und benutzerdefinierte Funktionen oder Inhalte bereitzustellen. Diese Erweiterungen umfassen:
2024-02-10 15:36:32 +00:00
- **Benutzerdefinierte Tastatur**: Bietet eine einzigartige Tastatur in allen Apps und ersetzt die standardmäßige iOS-Tastatur.
- **Teilen**: Ermöglicht das Teilen in sozialen Netzwerken oder direkt mit anderen.
- **Heute (Widgets)**: Liefert Inhalte oder führt Aufgaben schnell aus der Ansicht "Heute" im Benachrichtigungscenter aus.
2024-02-10 15:36:32 +00:00
Wenn ein Benutzer mit diesen Erweiterungen interagiert, z. B. Text aus einer Host-App teilt, verarbeitet die Erweiterung diese Eingabe in ihrem Kontext und nutzt die gemeinsamen Informationen, um ihre Aufgabe auszuführen, wie in der Dokumentation von Apple beschrieben.
2024-02-10 15:36:32 +00:00
### **Sicherheitsüberlegungen**
2024-02-10 15:36:32 +00:00
Wichtige Sicherheitsaspekte sind:
2024-02-10 15:36:32 +00:00
- Erweiterungen und ihre enthaltenen Apps kommunizieren über Inter-Process Communication, nicht direkt.
- Das **Heute-Widget** ist einzigartig, da es seine App über eine spezifische Methode öffnen kann.
- Der Zugriff auf gemeinsame Daten ist innerhalb eines privaten Containers erlaubt, direkter Zugriff ist jedoch eingeschränkt.
- Bestimmte APIs, einschließlich HealthKit, sind für App-Erweiterungen nicht zugänglich. Diese können auch keine lang laufenden Aufgaben starten oder auf die Kamera oder das Mikrofon zugreifen, außer für iMessage-Erweiterungen.
2024-02-10 15:36:32 +00:00
### Statische Analyse
2024-02-10 15:36:32 +00:00
#### **Identifizierung von App-Erweiterungen**
2024-02-10 15:36:32 +00:00
Um App-Erweiterungen im Quellcode zu finden, suchen Sie nach `NSExtensionPointIdentifier` in Xcode oder überprüfen Sie das App-Bundle auf `.appex`-Dateien, die Erweiterungen anzeigen. Ohne Quellcode verwenden Sie grep oder SSH, um diese Bezeichner im App-Bundle zu finden.
2024-02-10 15:36:32 +00:00
#### **Unterstützte Datentypen**
2024-02-10 15:36:32 +00:00
Überprüfen Sie die `Info.plist`-Datei einer Erweiterung auf `NSExtensionActivationRule`, um unterstützte Datentypen zu identifizieren. Diese Einrichtung stellt sicher, dass nur kompatible Datentypen die Erweiterung in Host-Apps auslösen.
2024-02-10 15:36:32 +00:00
#### **Datenaustausch**
2024-02-10 15:36:32 +00:00
Der Datenaustausch zwischen einer App und ihrer Erweiterung erfordert einen gemeinsamen Container, der über "App Groups" eingerichtet und über `NSUserDefaults` zugegriffen wird. Dieser gemeinsame Speicherplatz ist für Hintergrundübertragungen erforderlich, die von Erweiterungen initiiert werden.
2024-02-10 15:36:32 +00:00
#### **Einschränkung von Erweiterungen**
2024-02-10 15:36:32 +00:00
Apps können bestimmte Erweiterungstypen einschränken, insbesondere benutzerdefinierte Tastaturen, um sicherzustellen, dass die Handhabung sensibler Daten den Sicherheitsprotokollen entspricht.
2024-02-10 15:36:32 +00:00
### Dynamische Analyse
2024-02-10 15:36:32 +00:00
Die dynamische Analyse umfasst:
2024-02-10 15:36:32 +00:00
- **Untersuchung von gemeinsam genutzten Elementen**: Haken Sie sich in `NSExtensionContext - inputItems` ein, um gemeinsam genutzte Datentypen und Ursprünge zu sehen.
- **Identifizierung von Erweiterungen**: Finden Sie heraus, welche Erweiterungen Ihre Daten verarbeiten, indem Sie interne Mechanismen wie `NSXPCConnection` beobachten.
2024-02-10 15:36:32 +00:00
Tools wie `frida-trace` können dabei helfen, die zugrunde liegenden Prozesse zu verstehen, insbesondere für diejenigen, die sich für die technischen Details der Inter-Process Communication interessieren.
2024-02-10 15:36:32 +00:00
## Referenzen
2024-02-08 03:08:28 +00:00
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/)
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/)
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie das Hacken von AWS von Null auf Heldenniveau mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
2022-04-28 16:01:33 +00:00
</details>