iOS Pentesting ohne Jailbreak
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
- Ü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.
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 erhalten
- Installiere die App, die du pentesten möchtest, auf dem iPhone.
- Installiere und starte Apple Configurator auf deinem macos.
- Ö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. - Du solltest dein iOS-Gerät sehen. Doppelklicke darauf und klicke dann auf Hinzufügen + → Apps in der oberen Menüleiste.
- 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 vorherigen Empfehlung gefolgt bist und die IPA bereits installiert hast, wird eine Aufforderung erscheinen, die App neu zu installieren.
- 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 normalerweise Apps nur die neuesten Versionen unterstützen.
Um sie zu installieren, entpacke einfach die IPA:
unzip redacted.ipa -d unzipped
Überprüfen Sie die Info.plist
auf die minimal unterstützte Version und wenn Ihr Gerät älter ist, ändern Sie den Wert, damit es unterstützt wird.
Zippen Sie die IPA zurück:
cd unzipped
zip -r ../no-min-version.ipa *
Dann installieren Sie die IPA beispielsweise mit:
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 verhindern.
Sobald installiert, können Sie den Iridium tweak von Cydia verwenden, um die entschlüsselte IPA zu erhalten.
Berechtigungen patchen & neu signieren
Um die Anwendung mit der Berechtigung get-task-allow
neu zu signieren, 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 signieren, indem die zu signierende IPA, get-taks-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 signierten IPA ist es Zeit, sie auf dem Gerät zu installieren, um sie zu pentesten:
ideviceinstaller -i resigned.ipa -w
Entwicklermodus aktivieren (iOS 16+)
Seit iOS 16 hat Apple den Entwicklermodus eingeführt: Jede Binary, die get_task_allow
enthält oder mit einem Entwicklungszertifikat signiert ist, wird sich weigern zu 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.
- Installieren oder pushen Sie irgendeine entwickler-signierte IPA auf das Telefon.
- Navigieren Sie zu Einstellungen → Datenschutz & Sicherheit → Entwicklermodus und aktivieren Sie ihn.
- 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 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 | Permanente 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:
# 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 Zeigerautorisierung und andere iOS 17-Minderungen, sodass die meisten vorhandenen Skripte sofort funktionieren.
Automatisierte dynamische Analyse mit MobSF (kein Jailbreak)
MobSF kann eine von einem Entwickler signierte IPA auf einem echten Gerät mit der gleichen Technik (get_task_allow
) instrumentieren und bietet eine Web-Benutzeroberfläche mit Dateisystembrowser, Datenverkehrserfassung und Frida-Konsole【】. Der schnellste Weg ist, MobSF in Docker auszuführen und dann Ihr iPhone über USB anzuschließen:
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
- Apple Entwicklerdokumentation – Aktivieren des Entwicklermodus auf einem Gerät: https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device
- Mobile Security Framework (MobSF): https://mobsf.github.io/Mobile-Security-Framework-MobSF/
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
- Ü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.