iOS Pentesting ohne Jailbreak

Reading time: 5 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) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Hauptidee

Anwendungen, die mit der Berechtigung get_task_allow signiert sind, erlauben Drittanbieteranwendungen, eine Funktion namens task_for_pid() mit der Prozess-ID der ursprünglichen Anwendung als Argument auszuführen, um den Task-Port darüber zu erhalten (in der Lage zu sein, ihn zu steuern und auf seinen Speicher zuzugreifen).

Es ist jedoch nicht so einfach, wie nur die IPA zu ziehen, sie mit der Berechtigung neu zu signieren und sie zurück auf dein Gerät zu flashen. Dies liegt an dem FairPlay-Schutz. Wenn sich die Signatur der App ändert, wird der DRM (Digital Rights Management) Schlüssel ungültig und die App funktioniert nicht.

Mit einem alten jailbroken Gerät ist es möglich, die IPA zu installieren, sie mit deinem bevorzugten Tool zu entschlüsseln (wie Iridium oder frida-ios-dump) und sie wieder vom Gerät zu ziehen. Obwohl, wenn möglich, wird empfohlen, einfach den Client für die entschlüsselte IPA zu fragen.

Entschlüsselte IPA erhalten

Von Apple beziehen

  1. Installiere die App, die du pentesten möchtest, auf dem iPhone.
  2. Installiere und starte Apple Configurator auf deinem macos.
  3. Öffne Terminal auf deinem Mac und wechsle zu /Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps. Die IPA wird später in diesem Ordner erscheinen.
  4. Du solltest dein iOS-Gerät sehen. Doppelklicke darauf und klicke dann auf Hinzufügen + → Apps in der oberen Menüleiste.
  5. Nachdem du auf Hinzufügen geklickt hast, wird Configurator die IPA von Apple herunterladen und versuchen, sie auf dein Gerät zu pushen. Wenn du meiner Empfehlung gefolgt bist und die IPA bereits installiert hast, erscheint eine Aufforderung, die App neu zu installieren.
  6. Die IPA sollte heruntergeladen werden in /Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps, von wo du sie abrufen kannst.

Siehe https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed für detailliertere Informationen zu diesem Prozess.

Die App entschlüsseln

Um die IPA zu entschlüsseln, werden wir sie installieren. Wenn du jedoch ein altes jailbroken iPhone hast, wird möglicherweise die Version nicht von der Anwendung unterstützt, da Apps normalerweise nur die neuesten Versionen unterstützen.

Um sie zu installieren, entpacke einfach die IPA:

bash
unzip redacted.ipa -d unzipped

Überprüfen Sie die Info.plist auf die minimal unterstützte Version, und wenn Ihr Gerät älter ist als diese, ändern Sie den Wert, damit es unterstützt wird.

Zippen Sie die IPA zurück:

bash
cd unzipped
zip -r ../no-min-version.ipa *

Dann installieren Sie die IPA beispielsweise mit:

bash
ideviceinstaller -i no-min-version.ipa -w

Beachten Sie, dass Sie möglicherweise den AppSync Unified tweak von Cydia benötigen, um invalid signature-Fehler zu vermeiden.

Sobald installiert, können Sie den Iridium tweak von Cydia verwenden, um die entschlüsselte IPA zu erhalten.

Patch-Berechtigungen & Neuunterzeichnung

Um die Anwendung mit der Berechtigung get-task-allow neu zu unterzeichnen, stehen mehrere Tools wie app-signer, codesign und iResign zur Verfügung. app-signer hat eine sehr benutzerfreundliche Oberfläche, die es ermöglicht, eine IPA-Datei sehr einfach neu zu unterzeichnen, indem die zu unterzeichnende IPA, die get-task-allow-Berechtigung sowie das zu verwendende Zertifikat und das Bereitstellungsprofil angegeben werden.

Bezüglich des Zertifikats und der Signierungsprofile bietet Apple kostenlose Entwickler-Signierungsprofile für alle Konten über Xcode an. Erstellen Sie einfach eine App und konfigurieren Sie eine. Konfigurieren Sie dann das iPhone, um den Entwickler-Apps zu vertrauen, indem Sie zu EinstellungenDatenschutz & Sicherheit navigieren und auf Entwicklermodus klicken.

Mit der neu unterzeichneten IPA ist es Zeit, sie auf dem Gerät zu installieren, um sie zu pentesten:

bash
ideviceinstaller -i resigned.ipa -w

Hook

Sie können Ihre App ganz einfach mit gängigen Tools wie frida und objection hooken:

bash
objection -g [your app bundle ID] explore

Referenzen

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) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks