# iOS Pentesting Checklist
\ Usa [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) per costruire e **automatizzare flussi di lavoro** facilmente, alimentati dagli **strumenti comunitari più avanzati** al mondo.\ Accedi oggi: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} {% hint style="success" %} Impara e pratica AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Impara e pratica GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Supporta HackTricks * Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)! * **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
{% endhint %} ### Preparazione * [ ] Leggi [**iOS Basics**](ios-pentesting/ios-basics.md) * [ ] Prepara il tuo ambiente leggendo [**iOS Testing Environment**](ios-pentesting/ios-testing-environment.md) * [ ] Leggi tutte le sezioni di [**iOS Initial Analysis**](ios-pentesting/#initial-analysis) per apprendere azioni comuni per pentestare un'applicazione iOS ### Data Storage * [ ] [**I file Plist**](ios-pentesting/#plist) possono essere utilizzati per memorizzare informazioni sensibili. * [ ] [**Core Data**](ios-pentesting/#core-data) (database SQLite) può memorizzare informazioni sensibili. * [ ] [**YapDatabases**](ios-pentesting/#yapdatabase) (database SQLite) può memorizzare informazioni sensibili. * [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) configurazione errata. * [ ] [**I database Realm**](ios-pentesting/#realm-databases) possono memorizzare informazioni sensibili. * [ ] [**I database Couchbase Lite**](ios-pentesting/#couchbase-lite-databases) possono memorizzare informazioni sensibili. * [ ] [**I cookie binari**](ios-pentesting/#cookies) possono memorizzare informazioni sensibili. * [ ] [**I dati della cache**](ios-pentesting/#cache) possono memorizzare informazioni sensibili. * [ ] [**Le istantanee automatiche**](ios-pentesting/#snapshots) possono salvare informazioni visive sensibili. * [ ] [**Keychain**](ios-pentesting/#keychain) è solitamente utilizzato per memorizzare informazioni sensibili che possono rimanere quando si rivende il telefono. * [ ] In sintesi, **controlla solo le informazioni sensibili salvate dall'applicazione nel filesystem**. ### Tastiere * [ ] L'applicazione [**consente di utilizzare tastiere personalizzate**](ios-pentesting/#custom-keyboards-keyboard-cache)? * [ ] Controlla se le informazioni sensibili sono salvate nei [**file di cache delle tastiere**](ios-pentesting/#custom-keyboards-keyboard-cache). ### **Log** * [ ] Controlla se [**le informazioni sensibili vengono registrate**](ios-pentesting/#logs). ### Backup * [ ] [**I backup**](ios-pentesting/#backups) possono essere utilizzati per **accedere alle informazioni sensibili** salvate nel filesystem (controlla il punto iniziale di questo checklist). * [ ] Inoltre, [**i backup**](ios-pentesting/#backups) possono essere utilizzati per **modificare alcune configurazioni dell'applicazione**, quindi **ripristinare** il backup sul telefono, e poiché la **configurazione modificata** è **caricata**, alcune (funzionalità di sicurezza) possono essere **bypassate**. ### **Memoria delle Applicazioni** * [ ] Controlla le informazioni sensibili all'interno della [**memoria dell'applicazione**](ios-pentesting/#testing-memory-for-sensitive-data). ### **Crittografia Rottura** * [ ] Controlla se puoi trovare [**password utilizzate per la crittografia**](ios-pentesting/#broken-cryptography). * [ ] Controlla l'uso di [**algoritmi deprecati/deboli**](ios-pentesting/#broken-cryptography) per inviare/memorizzare dati sensibili. * [ ] [**Hook e monitora le funzioni di crittografia**](ios-pentesting/#broken-cryptography). ### **Autenticazione Locale** * [ ] Se un'**autenticazione locale** viene utilizzata nell'applicazione, dovresti controllare come funziona l'autenticazione. * [ ] Se utilizza il [**Local Authentication Framework**](ios-pentesting/#local-authentication-framework), potrebbe essere facilmente bypassato. * [ ] Se utilizza una [**funzione che può essere bypassata dinamicamente**](ios-pentesting/#local-authentication-using-keychain), potresti creare uno script frida personalizzato. ### Esposizione di Funzionalità Sensibili Tramite IPC * [**Gestori URI personalizzati / Deeplinks / Schemi personalizzati**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes). * [ ] Controlla se l'applicazione **registra qualche protocollo/schema**. * [ ] Controlla se l'applicazione **si registra per utilizzare** qualche protocollo/schema. * [ ] Controlla se l'applicazione **si aspetta di ricevere qualche tipo di informazione sensibile** dallo schema personalizzato che può essere **intercettato** da un'altra applicazione che registra lo stesso schema. * [ ] Controlla se l'applicazione **non controlla e sanitizza** l'input degli utenti tramite lo schema personalizzato e se qualche **vulnerabilità può essere sfruttata**. * [ ] Controlla se l'applicazione **espone qualche azione sensibile** che può essere chiamata da qualsiasi luogo tramite lo schema personalizzato. * [**Link Universali**](ios-pentesting/#universal-links). * [ ] Controlla se l'applicazione **registra qualche protocollo/schema universale**. * [ ] Controlla il file `apple-app-site-association`. * [ ] Controlla se l'applicazione **non controlla e sanitizza** l'input degli utenti tramite lo schema personalizzato e se qualche **vulnerabilità può essere sfruttata**. * [ ] Controlla se l'applicazione **espone qualche azione sensibile** che può essere chiamata da qualsiasi luogo tramite lo schema personalizzato. * [**Condivisione UIActivity**](ios-pentesting/ios-uiactivity-sharing.md). * [ ] Controlla se l'applicazione può ricevere UIActivities e se è possibile sfruttare qualche vulnerabilità con attività appositamente create. * [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md). * [ ] Controlla se l'applicazione **copia qualcosa negli appunti generali**. * [ ] Controlla se l'applicazione **utilizza i dati dagli appunti generali per qualcosa**. * [ ] Monitora gli appunti per vedere se qualche **dato sensibile viene copiato**. * [**Estensioni App**](ios-pentesting/ios-app-extensions.md). * [ ] L'applicazione **utilizza qualche estensione**? * [**WebViews**](ios-pentesting/ios-webviews.md). * [ ] Controlla che tipo di webviews vengono utilizzati. * [ ] Controlla lo stato di **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`**. * [ ] Controlla se il webview può **accedere a file locali** con il protocollo **file://** **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`). * [ ] Controlla se Javascript può accedere a **metodi** **Native** (`JSContext`, `postMessage`). ### Comunicazione di Rete * [ ] Esegui un [**MitM sulla comunicazione**](ios-pentesting/#network-communication) e cerca vulnerabilità web. * [ ] Controlla se il [**nome host del certificato**](ios-pentesting/#hostname-check) viene controllato. * [ ] Controlla/Bypass [**Certificate Pinning**](ios-pentesting/#certificate-pinning). ### **Varie** * [ ] Controlla i meccanismi di [**patching/aggiornamento automatico**](ios-pentesting/#hot-patching-enforced-updateing). * [ ] Controlla la presenza di [**librerie di terze parti malevole**](ios-pentesting/#third-parties). {% hint style="success" %} Impara e pratica AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Impara e pratica GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Supporta HackTricks * Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)! * **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
{% endhint %}
\ Usa [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) per costruire e **automatizzare flussi di lavoro** facilmente, alimentati dagli **strumenti comunitari più avanzati** al mondo.\ Accedi oggi: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}