iOS Extracting Entitlements From Compiled Application
Zusammenfassung der Seite https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary
Extrahieren von Berechtigungen und mobilen Bereitstellungsdateien
Wenn es um eine IPA-Datei einer App oder eine installierte App auf einem gejailbreakten Gerät geht, ist es möglicherweise nicht möglich, direkt auf .entitlements
-Dateien oder die Datei embedded.mobileprovision
zuzugreifen. Dennoch können Berechtigungs-Property-Listen aus der App-Binärdatei extrahiert werden, indem die in Kapitel "iOS Basic Security Testing" beschriebenen Verfahren befolgt werden, insbesondere der Abschnitt "Erwerben der App-Binärdatei".
Auch bei verschlüsselten Binärdateien können bestimmte Schritte angewendet 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.
Extrahieren der Entitlements-Plist aus der App-Binärdatei
Mit der auf einem Computer zugänglichen App-Binärdatei kann binwalk verwendet werden, um alle XML-Dateien zu extrahieren. Der folgende Befehl zeigt, wie dies gemacht wird:
Alternativ kann radare2 verwendet werden, um einen Befehl leise auszuführen und zu beenden, der nach allen Zeichenketten im App-Binärcode sucht, die "PropertyList" enthalten:
Beide Methoden, binwalk und radare2, ermöglichen die Extraktion von plist
-Dateien. Eine Inspektion der ersten Datei (0x0015d2a4) zeigt eine erfolgreiche Wiederherstellung der ursprünglichen Berechtigungsdatei von Telegram.
Für App-Binärdateien, die auf gejailbreakten Geräten (z. B. über SSH) zugegriffen werden, kann das grep-Kommando mit der Option -a, --text
verwendet werden, um alle Dateien als ASCII-Text zu behandeln:
Die Anpassung der -A num, --after-context=num
-Flagge ermöglicht die Anzeige von mehr oder weniger Zeilen. Diese Methode ist auch für verschlüsselte App-Binärdateien geeignet und wurde bei mehreren App Store-Apps verifiziert. Die zuvor erwähnten Tools können auch auf gejailbreakten iOS-Geräten für ähnliche Zwecke verwendet werden.
Hinweis: Die direkte Verwendung des strings
-Befehls wird für diese Aufgabe aufgrund seiner Einschränkungen bei der Suche nach relevanten Informationen nicht empfohlen. Stattdessen wird empfohlen, grep mit der -a
-Flagge auf der Binärdatei zu verwenden oder radare2 (izz
)/rabin2 (-zz
) für effektivere Ergebnisse einzusetzen.
Last updated