mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
149 lines
10 KiB
Markdown
149 lines
10 KiB
Markdown
# iOS Pentesting Checklist
|
|
|
|
<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 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:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Supporta HackTricks</summary>
|
|
|
|
* 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.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
**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 [**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**
|
|
|
|
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
|
|
|
{% embed url="https://discord.gg/tryhardsecurity" %}
|
|
|
|
{% hint style="success" %}
|
|
Impara e pratica AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Supporta HackTricks</summary>
|
|
|
|
* 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.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
<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 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" %}
|