iOS Extracting Entitlements From Compiled Application
Last updated
Last updated
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Zusammenfassung der Seite https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary
Beim Umgang mit einer IPA einer App oder einer installierten App auf einem jailbroken Gerät kann es möglicherweise nicht möglich sein, .entitlements
-Dateien oder die embedded.mobileprovision
-Datei direkt zu finden. Es ist jedoch möglich, die Entitlements-Property-Listen aus der App-Binärdatei zu extrahieren, indem die Verfahren im Kapitel "iOS Basic Security Testing", insbesondere im Abschnitt "Erwerb der App-Binärdatei", befolgt werden.
Selbst bei verschlüsselten Binärdateien können bestimmte Schritte unternommen werden, um diese Dateien zu extrahieren. Sollten diese Schritte fehlschlagen, können Tools wie Clutch (sofern mit der iOS-Version kompatibel), frida-ios-dump oder ähnliche Dienstprogramme erforderlich sein, um die App zu entschlüsseln und zu extrahieren.
Mit der App-Binärdatei, die auf einem Computer zugänglich ist, kann binwalk verwendet werden, um alle XML-Dateien zu extrahieren. Der folgende Befehl zeigt, wie dies zu tun ist:
Alternativ kann radare2 verwendet werden, um einen Befehl leise auszuführen und zu beenden, indem nach allen Zeichenfolgen im App-Binärdatei gesucht wird, die "PropertyList" enthalten:
Beide Methoden, binwalk und radare2, ermöglichen die Extraktion von plist
-Dateien, wobei eine Inspektion der ersten (0x0015d2a4) eine erfolgreiche Wiederherstellung der originalen Berechtigungsdatei von Telegram zeigt.
Für App-Binärdateien, die auf jailbroken Geräten (z. B. über SSH) zugegriffen werden, kann der grep-Befehl mit dem -a, --text
-Flag verwendet werden, um alle Dateien als ASCII-Text zu behandeln:
Das Anpassen des -A num, --after-context=num
Flags ermöglicht die Anzeige von mehr oder weniger Zeilen. Diese Methode ist auch für verschlüsselte App-Binärdateien geeignet und wurde gegen mehrere App Store-Apps verifiziert. Die zuvor erwähnten Tools können auch auf jailbroken iOS-Geräten für ähnliche Zwecke eingesetzt werden.
Hinweis: Die direkte Verwendung des strings
-Befehls wird für diese Aufgabe aufgrund seiner Einschränkungen bei der Auffindung relevanter Informationen nicht empfohlen. Stattdessen ist es ratsam, grep mit dem -a
-Flag auf der Binärdatei zu verwenden oder radare2 (izz
)/rabin2 (-zz
) für effektivere Ergebnisse zu nutzen.