hacktricks/mobile-pentesting/ios-pentesting-checklist.md

146 lines
10 KiB
Markdown

# Checklist di Pentesting iOS
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Utilizza [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) per creare e **automatizzare flussi di lavoro** con strumenti della community più avanzati al mondo.\
Ottieni l'accesso oggi:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repository di Github.
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### Preparazione
* [ ] Leggi [**Nozioni di base su iOS**](ios-pentesting/ios-basics.md)
* [ ] Prepara il tuo ambiente leggendo [**Ambiente di Testing iOS**](ios-pentesting/ios-testing-environment.md)
* [ ] Leggi tutte le sezioni di [**Analisi Iniziale di iOS**](ios-pentesting/#initial-analysis) per imparare le azioni comuni per il pentest di un'applicazione iOS
### Archiviazione Dati
* [ ] I [**file Plist**](ios-pentesting/#plist) possono essere utilizzati per archiviare informazioni sensibili.
* [ ] [**Core Data**](ios-pentesting/#core-data) (database SQLite) può archiviare informazioni sensibili.
* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase) (database SQLite) possono archiviare informazioni sensibili.
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) configurazione errata.
* [ ] [**Database Realm**](ios-pentesting/#realm-databases) possono archiviare informazioni sensibili.
* [ ] [**Database Couchbase Lite**](ios-pentesting/#couchbase-lite-databases) possono archiviare informazioni sensibili.
* [ ] I [**cookie binari**](ios-pentesting/#cookies) possono archiviare informazioni sensibili.
* [ ] I [**dati di cache**](ios-pentesting/#cache) possono archiviare informazioni sensibili.
* [ ] Gli [**istantanei automatici**](ios-pentesting/#snapshots) possono salvare informazioni sensibili visive.
* [ ] Il [**portachiavi**](ios-pentesting/#keychain) è solitamente utilizzato per archiviare informazioni sensibili che possono rimanere quando si rivende il telefono.
* [ ] In sintesi, controlla solo se l'applicazione salva informazioni sensibili nel filesystem
### Tastiere
* [ ] L'applicazione **permette l'uso di tastiere personalizzate**?
* [ ] Controlla se le informazioni sensibili sono salvate nei [**file di cache delle tastiere**](ios-pentesting/#custom-keyboards-keyboard-cache)
### **Log**
* [ ] Controlla se vengono registrate [**informazioni sensibili**](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 questa checklist)
* [ ] Inoltre, i [**backup**](ios-pentesting/#backups) possono essere utilizzati per **modificare alcune configurazioni dell'applicazione**, quindi **ripristinare** il backup sul telefono e una volta che la **configurazione modificata** è **caricata** alcune funzionalità (di sicurezza) possono essere **bypassate**
### **Memoria Applicazioni**
* [ ] Controlla se ci sono informazioni sensibili all'interno della [**memoria dell'applicazione**](ios-pentesting/#testing-memory-for-sensitive-data)
### **Crittografia Danneggiata**
* [ ] 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/archiviare dati sensibili
* [ ] [**Hook e monitora le funzioni di crittografia**](ios-pentesting/#broken-cryptography)
### **Autenticazione Locale**
* [ ] Se viene utilizzata un'[**autenticazione locale**](ios-pentesting/#local-authentication) nell'applicazione, controlla come funziona l'autenticazione.
* [ ] Se viene utilizzato il [**Framework di Autenticazione Locale**](ios-pentesting/#local-authentication-framework) potrebbe essere facilmente bypassato
* [ ] Se viene utilizzata una [**funzione che può essere bypassata dinamicamente**](ios-pentesting/#local-authentication-using-keychain) potresti creare uno script frida personalizzato
### Esposizione 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** dal protocollo/schema personalizzato che può essere **intercettato** da un'altra applicazione che registra lo stesso schema
* [ ] Controlla se l'applicazione **non sta controllando e sanificando** l'input degli utenti tramite lo schema personalizzato e 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 sta controllando e sanificando** l'input degli utenti tramite lo schema personalizzato e 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 un'attività appositamente creata
* [**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 vengono copiati **dati sensibili**
* [**Estensioni App**](ios-pentesting/ios-app-extensions.md)
* [ ] L'applicazione **utilizza qualche estensione**?
* [**WebViews**](ios-pentesting/ios-webviews.md)
* [ ] Controlla che tipo di webview viene utilizzato
* [ ] Controlla lo stato di **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`**
* [ ] Controlla se la webview può **accedere a file locali** con il protocollo **file://** **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`)
* [ ] Controlla se Javascript può accedere a **metodi nativi** (`JSContext`, `postMessage`)
### Comunicazione di Rete
* [ ] Esegui un [**MitM sulla comunicazione**](ios-pentesting/#network-communication) e cerca vulnerabilità web.
* [ ] Verifica se il [**nome host del certificato**](ios-pentesting/#hostname-check) viene controllato.
* [ ] Verifica/Superamento del [**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 dannose**](ios-pentesting/#third-parties)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Altri modi per supportare HackTricks:
* Se desideri vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repository di Github.
</details>
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Usa [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) per creare e **automatizzare facilmente flussi di lavoro** supportati dagli strumenti della comunità più avanzati al mondo.\
Ottieni l'accesso oggi:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}