hacktricks/mobile-pentesting/ios-pentesting/ios-app-extensions.md
2024-02-10 15:36:32 +00:00

6 KiB

iOS App-Erweiterungen

Lernen Sie das Hacken von AWS von Null auf Heldenniveau mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

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:

  • 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.

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.

Sicherheitsüberlegungen

Wichtige Sicherheitsaspekte sind:

  • 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.

Statische Analyse

Identifizierung von App-Erweiterungen

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.

Unterstützte Datentypen

Ü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.

Datenaustausch

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.

Einschränkung von Erweiterungen

Apps können bestimmte Erweiterungstypen einschränken, insbesondere benutzerdefinierte Tastaturen, um sicherzustellen, dass die Handhabung sensibler Daten den Sicherheitsprotokollen entspricht.

Dynamische Analyse

Die dynamische Analyse umfasst:

  • 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.

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.

Referenzen

Lernen Sie das Hacken von AWS von Null auf Heldenniveau mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen: