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

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:

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 <?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:

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.

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