9.6 KiB
iOS Pentesting Checklist
Usa Trickest 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)
Impara e pratica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
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 di github.
Preparazione
- Leggi iOS Basics
- Prepara il tuo ambiente leggendo iOS Testing Environment
- Leggi tutte le sezioni di iOS Initial Analysis per apprendere azioni comuni per pentestare un'applicazione iOS
Data Storage
- I file Plist possono essere utilizzati per memorizzare informazioni sensibili.
- Core Data (database SQLite) può memorizzare informazioni sensibili.
- YapDatabases (database SQLite) può memorizzare informazioni sensibili.
- Firebase configurazione errata.
- I database Realm possono memorizzare informazioni sensibili.
- I database Couchbase Lite possono memorizzare informazioni sensibili.
- I cookie binari possono memorizzare informazioni sensibili.
- I dati della cache possono memorizzare informazioni sensibili.
- Le istantanee automatiche possono salvare informazioni visive sensibili.
- 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?
- Controlla se le informazioni sensibili sono salvate nei file di cache delle tastiere.
Log
- Controlla se le informazioni sensibili vengono registrate.
Backup
- I backup possono essere utilizzati per accedere alle informazioni sensibili salvate nel filesystem (controlla il punto iniziale di questo checklist).
- Inoltre, i backup 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.
Crittografia Rottura
- Controlla se puoi trovare password utilizzate per la crittografia.
- Controlla l'uso di algoritmi deprecati/deboli per inviare/memorizzare dati sensibili.
- Hook e monitora le funzioni di crittografia.
Autenticazione Locale
- Se un'autenticazione locale viene utilizzata nell'applicazione, dovresti controllare come funziona l'autenticazione.
- Se utilizza il Local Authentication Framework, potrebbe essere facilmente bypassato.
- Se utilizza una funzione che può essere bypassata dinamicamente, potresti creare uno script frida personalizzato.
Esposizione di Funzionalità Sensibili Tramite IPC
- Gestori URI personalizzati / Deeplinks / Schemi personalizzati.
- 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.
- 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.
- Controlla se l'applicazione può ricevere UIActivities e se è possibile sfruttare qualche vulnerabilità con attività appositamente create.
- UIPasteboard.
- 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.
- L'applicazione utilizza qualche estensione?
- WebViews.
- 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 e cerca vulnerabilità web.
- Controlla se il nome host del certificato viene controllato.
- Controlla/Bypass Certificate Pinning.
Varie
- Controlla i meccanismi di patching/aggiornamento automatico.
- Controlla la presenza di librerie di terze parti malevole.
{% hint style="success" %}
Impara e pratica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
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 di github.
Usa Trickest 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" %}