# Entitlements aus kompilierter Anwendung extrahieren {{#include ../../banners/hacktricks-training.md}} Zusammenfassung der Seite [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary) ### **Entitlements und Mobile Provision Dateien extrahieren** 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, Entitlements-Property-Listen aus der App-Binärdatei zu extrahieren, indem die Verfahren im Kapitel "iOS Basic Security Testing", insbesondere im Abschnitt "Acquiring the App Binary", 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 (wenn kompatibel mit der iOS-Version), 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 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: ```bash $ binwalk -e -y=xml ./Telegram\ X DECIMAL HEXADECIMAL DESCRIPTION -------------------------------------------------------------------------------- 1430180 0x15D2A4 XML document, version: "1.0" 1458814 0x16427E XML document, version: "1.0" ``` 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: ```bash $ r2 -qc 'izz~PropertyList' ./Telegram\ X 0x0015d2a4 ascii ... 0x0016427d ascii H... ``` Beide Methoden, binwalk und radare2, ermöglichen die Extraktion von `plist`-Dateien, wobei eine Inspektion der ersten (0x0015d2a4) eine erfolgreiche Wiederherstellung der [originalen Entitlements-Datei von Telegram](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements) 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: ```bash $ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/... ``` Die Anpassung 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 ebenfalls 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. {{#include ../../banners/hacktricks-training.md}}