Entitlements aus kompilierter Anwendung extrahieren
Reading time: 3 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Zusammenfassung der Seite 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:
$ 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:
$ r2 -qc 'izz~PropertyList' ./Telegram\ X
0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>...
0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>...
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 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:
$ 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.
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.