iOS Pentesting senza Jailbreak
Reading time: 5 minutes
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Idea principale
Le applicazioni firmate con l'entitlement get_task_allow
consentono alle applicazioni di terze parti di eseguire una funzione chiamata task_for_pid()
con l'ID del processo dell'applicazione iniziale come argomento per ottenere la porta del task su di essa (essere in grado di controllarla e accedere alla sua memoria).
Tuttavia, non è così semplice come estrarre l'IPA, firmarlo nuovamente con l'entitlement e ricaricarlo sul tuo dispositivo. Questo a causa della protezione FairPlay. Quando la firma dell'app cambia, la chiave DRM (Digital Rights Management) è annullata e l'app non funzionerà.
Con un vecchio dispositivo jailbroken, è possibile installare l'IPA, decrittarlo utilizzando il tuo strumento preferito (come Iridium o frida-ios-dump) e rimuoverlo dal dispositivo. Anche se, se possibile, è consigliato chiedere semplicemente al cliente per l'IPA decrittato.
Ottenere l'IPA decrittato
Ottienilo da Apple
- Installa l'app da pentest sull'iPhone
- Installa e avvia Apple Configurator sul tuo macos
- Apri
Terminal
sul tuo Mac e cd a/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps
. L'IPA apparirà in questa cartella più tardi. - Dovresti vedere il tuo dispositivo iOS. Fai doppio clic su di esso, quindi clicca su Aggiungi + → App dalla barra dei menu in alto.
- Dopo aver cliccato su Aggiungi, Configurator scaricherà l'IPA da Apple e tenterà di inviarlo al tuo dispositivo. Se hai seguito la mia raccomandazione precedente e hai già installato l'IPA, apparirà un messaggio che ti chiede di reinstallare l'app.
- L'IPA dovrebbe essere scaricato all'interno di
/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps
da dove puoi prenderlo.
Controlla https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed per informazioni più dettagliate su questo processo.
Decrittare l'app
Per decrittare l'IPA, lo installeremo. Tuttavia, se hai un vecchio iPhone jailbroken, potenzialmente la sua versione non sarà supportata dall'applicazione poiché di solito le app supportano solo le ultime versioni.
Quindi, per installarlo, basta estrarre l'IPA:
unzip redacted.ipa -d unzipped
Controlla il Info.plist
per la versione minima supportata e se il tuo dispositivo è più vecchio di quella, modifica il valore affinché sia supportato.
Comprimi di nuovo l'IPA:
cd unzipped
zip -r ../no-min-version.ipa *
Quindi, installa l'IPA ad esempio con:
ideviceinstaller -i no-min-version.ipa -w
Nota che potresti aver bisogno di AppSync Unified tweak da Cydia per prevenire eventuali errori di invalid signature
.
Una volta installato, puoi utilizzare Iridium tweak da Cydia per ottenere l'IPA decrittografato.
Patch entitlements & re-sign
Per ri-firmare l'applicazione con l'entitlement get-task-allow
, ci sono diversi strumenti disponibili come app-signer
, codesign
e iResign
. app-signer
ha un'interfaccia molto user-friendly che consente di ri-firmare molto facilmente un file IPA indicando l'IPA da ri-firmare, per mettere get-task-allow
e il certificato e il profilo di provisioning da utilizzare.
Per quanto riguarda il certificato e i profili di firma, Apple offre free developer signing profiles per tutti gli account tramite Xcode. Basta creare un'app e configurarne una. Poi, configura l'iPhone per fidarsi delle app degli sviluppatori navigando su Impostazioni
→ Privacy e Sicurezza
, e clicca su Modalità Sviluppatore
.
Con l'IPA ri-firmata, è tempo di installarla nel dispositivo per effettuare il pentesting:
ideviceinstaller -i resigned.ipa -w
Hook
Puoi facilmente collegare la tua app utilizzando strumenti comuni come frida e objection:
objection -g [your app bundle ID] explore
Riferimenti
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.