# 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 della comunità **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 %}
**Try Hard Security Group**
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### 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 le 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 essere lasciate 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) potrebbero 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 viene utilizzata un'**autenticazione locale** 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 **sta registrando qualche protocollo/schema**.
* [ ] Controlla se l'applicazione **si sta registrando 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 sta controllando e sanitizzando** 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 **sta registrando qualche protocollo/schema universale**.
* [ ] Controlla il file `apple-app-site-association`.
* [ ] Controlla se l'applicazione **non sta controllando e sanitizzando** 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 **usa i dati dagli appunti generali per qualcosa**.
* [ ] Monitora gli appunti per vedere se qualche **dati sensibili viene copiato**.
* [**Estensioni App**](ios-pentesting/ios-app-extensions.md).
* [ ] L'applicazione **usa qualche estensione**?
* [**WebViews**](ios-pentesting/ios-webviews.md).
* [ ] Controlla quale 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).
**Try Hard Security Group**
{% embed url="https://discord.gg/tryhardsecurity" %}
{% 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 della comunità **più avanzati** al mondo.\
Accedi oggi:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}