From f8d704e7170368c2946ece5b54af113d22b89d73 Mon Sep 17 00:00:00 2001 From: Translator Date: Fri, 11 Jul 2025 06:08:22 +0000 Subject: [PATCH] Translated ['src/mobile-pentesting/ios-pentesting/ios-pentesting-without --- .../ios-pentesting-without-jailbreak.md | 65 ++++++++++++++++--- 1 file changed, 55 insertions(+), 10 deletions(-) diff --git a/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md b/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md index 85c41d6f9..3a2c1e3ce 100644 --- a/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md +++ b/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md @@ -12,7 +12,7 @@ Mit einem alten jailbroken Gerät ist es möglich, die IPA zu installieren, **si ## Entschlüsselte IPA erhalten -### Von Apple beziehen +### Von Apple erhalten 1. Installiere die App, die du pentesten möchtest, auf dem iPhone. 2. Installiere und starte [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) auf deinem macos. @@ -25,7 +25,7 @@ Siehe [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https:/ ### 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 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 normalerweise Apps nur die neuesten Versionen unterstützen. Um sie zu installieren, entpacke einfach die IPA: ```bash @@ -42,32 +42,77 @@ 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. +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. +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. +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, **`get-task-allow`** und das zu verwendende Zertifikat sowie 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 `Einstellungen` → `Datenschutz & 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: +### Entwicklermodus aktivieren (iOS 16+) + +Seit iOS 16 hat Apple den **Entwicklermodus** eingeführt: Jede Binärdatei, die `get_task_allow` *oder* mit einem Entwicklungszertifikat signiert ist, verweigert das Starten, bis der Entwicklermodus auf dem Gerät aktiviert ist. Sie können auch Frida/LLDB nicht anhängen, es sei denn, dieses Flag ist aktiviert. + +1. Installieren oder übertragen Sie **irgendeine** entwickler-signierte IPA auf das Telefon. +2. Navigieren Sie zu **Einstellungen → Datenschutz & Sicherheit → Entwicklermodus** und aktivieren Sie ihn. +3. Das Gerät wird neu gestartet; nach Eingabe des Passworts werden Sie aufgefordert, den Entwicklermodus **einzuschalten**. + +Der Entwicklermodus bleibt aktiv, bis Sie ihn deaktivieren oder das Telefon zurücksetzen, sodass dieser Schritt nur einmal pro Gerät durchgeführt werden muss. [Apple-Dokumentation](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) erklärt die Sicherheitsimplikationen. + +### Moderne Sideloading-Optionen + +Es gibt jetzt mehrere ausgereifte Möglichkeiten, IPAs zu sideloaden und sie ohne Jailbreak aktuell zu halten: + +| Tool | Anforderungen | Stärken | Einschränkungen | +|------|--------------|-----------|-------------| +| **AltStore 2 / SideStore** | macOS/Windows/Linux-Begleitgerät, das die IPA alle 7 Tage mit einem kostenlosen Entwicklerprofil neu signiert | Automatisches Nachladen über Wi-Fi, funktioniert bis iOS 17 | Computer im selben Netzwerk erforderlich, 3-App-Limit von Apple auferlegt | +| **TrollStore 1/2** | Gerät mit iOS 14 – 15.4.1, das anfällig für den CoreTrust-Bug ist | *Dauerhafte* Signierung (kein 7-Tage-Limit); kein Computer erforderlich, sobald installiert | Nicht unterstützt auf iOS 15.5+ (Bug gepatcht) | + +Für routinemäßige Pentests auf aktuellen iOS-Versionen sind Alt/Side-Store in der Regel die praktischste Wahl. + +### Hooking / dynamische Instrumentierung + +Sie können Ihre App genau wie auf einem jailbroken Gerät hooken, sobald sie mit `get_task_allow` **und** dem Entwicklermodus aktiviert ist: ```bash -objection -g [your app bundle ID] explore +# Spawn & attach with objection +objection -g "com.example.target" explore +# Or plain Frida +frida -U -f com.example.target -l my_script.js --no-pause ``` +Neuere Frida-Versionen (>=16) behandeln automatisch die Pointer-Authentifizierung und andere iOS 17-Minderungen, sodass die meisten vorhandenen Skripte sofort funktionieren. + +### Automatisierte dynamische Analyse mit MobSF (kein Jailbreak) + +[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) kann eine dev-signierte IPA auf einem echten Gerät mit der gleichen Technik (`get_task_allow`) instrumentieren und bietet eine Web-UI mit Dateisystembrowser, Verkehrserfassung und Frida-Konsole【turn6view0†L2-L3】. Der schnellste Weg ist, MobSF in Docker auszuführen und dann dein iPhone über USB anzuschließen: +```bash +docker pull opensecurity/mobile-security-framework-mobsf:latest +docker run -p 8000:8000 --privileged \ +-v /var/run/usbmuxd:/var/run/usbmuxd \ +opensecurity/mobile-security-framework-mobsf:latest +# Browse to http://127.0.0.1:8000 and upload your resigned IPA +``` +MobSF wird automatisch die Binärdatei bereitstellen, einen Frida-Server im App-Sandbox aktivieren und einen interaktiven Bericht generieren. + +### iOS 17 & Lockdown-Modus Hinweise + +* **Lockdown-Modus** (Einstellungen → Datenschutz & Sicherheit) blockiert den dynamischen Linker daran, nicht signierte oder extern signierte dynamische Bibliotheken zu laden. Wenn Sie Geräte testen, die möglicherweise diesen Modus aktiviert haben, stellen Sie sicher, dass er **deaktiviert** ist, da sonst Ihre Frida/objection-Sitzungen sofort beendet werden. +* Pointer Authentication (PAC) wird systemweit auf A12+ Geräten durchgesetzt. Frida ≥16 behandelt PAC-Stripping transparent – halten Sie einfach sowohl *frida-server* als auch die Python/CLI-Toolchain auf dem neuesten Stand, wenn eine neue Hauptversion von iOS veröffentlicht wird. + ## Referenzen - [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) - +- Apple Entwicklerdokumentation – Aktivieren des Entwicklermodus auf einem Gerät: +- Mobile Security Framework (MobSF): {{#include ../../banners/hacktricks-training.md}}