iOS Pentesting Checklist
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 馃挰 Discord group or the telegram group or follow us on Twitter 馃惁 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Preparaci贸n
- Lee iOS Basics
- Prepara tu entorno leyendo iOS Testing Environment
- Lee todas las secciones de iOS Initial Analysis para aprender acciones comunes para pentestear una aplicaci贸n iOS
Almacenamiento de Datos
- Plist files pueden ser utilizados para almacenar informaci贸n sensible.
- Core Data (base de datos SQLite) puede almacenar informaci贸n sensible.
- YapDatabases (base de datos SQLite) puede almacenar informaci贸n sensible.
- Firebase mala configuraci贸n.
- Realm databases pueden almacenar informaci贸n sensible.
- Couchbase Lite databases pueden almacenar informaci贸n sensible.
- Binary cookies pueden almacenar informaci贸n sensible.
- Cache data puede almacenar informaci贸n sensible.
- Automatic snapshots pueden guardar informaci贸n visual sensible.
- Keychain se utiliza generalmente para almacenar informaci贸n sensible que puede quedar al revender el tel茅fono.
- En resumen, solo verifica si hay informaci贸n sensible guardada por la aplicaci贸n en el sistema de archivos.
Teclados
- 驴La aplicaci贸n permite usar teclados personalizados?
- Verifica si la informaci贸n sensible se guarda en los archivos de cach茅 de teclados.
Registros
- Verifica si se est谩 registrando informaci贸n sensible.
Copias de Seguridad
- Backups pueden ser utilizados para acceder a la informaci贸n sensible guardada en el sistema de archivos (verifica el punto inicial de esta lista de verificaci贸n).
- Adem谩s, backups pueden ser utilizados para modificar algunas configuraciones de la aplicaci贸n, luego restaurar la copia de seguridad en el tel茅fono, y como la configuraci贸n modificada es cargada, algunas (de seguridad) funcionalidades pueden ser eludidas.
Memoria de Aplicaciones
- Verifica si hay informaci贸n sensible dentro de la memoria de la aplicaci贸n.
Criptograf铆a Rota
- Verifica si puedes encontrar contrase帽as utilizadas para criptograf铆a.
- Verifica el uso de algoritmos obsoletos/d茅biles para enviar/almacenar datos sensibles.
- Hook y monitorea funciones de criptograf铆a.
Autenticaci贸n Local
- Si se utiliza una autenticaci贸n local en la aplicaci贸n, debes verificar c贸mo est谩 funcionando la autenticaci贸n.
- Si est谩 utilizando el Local Authentication Framework, podr铆a ser f谩cilmente eludido.
- Si est谩 utilizando una funci贸n que puede ser eludida din谩micamente, podr铆as crear un script personalizado de frida.
Exposici贸n de Funcionalidades Sensibles a Trav茅s de IPC
- Custom URI Handlers / Deeplinks / Custom Schemes
- Verifica si la aplicaci贸n est谩 registrando alg煤n protocolo/esquema.
- Verifica si la aplicaci贸n est谩 registrando para usar alg煤n protocolo/esquema.
- Verifica si la aplicaci贸n espera recibir alg煤n tipo de informaci贸n sensible del esquema personalizado que puede ser interceptada por otra aplicaci贸n que registre el mismo esquema.
- Verifica si la aplicaci贸n no est谩 verificando y sanitizando la entrada de los usuarios a trav茅s del esquema personalizado y alguna vulnerabilidad puede ser explotada.
- Verifica si la aplicaci贸n expone alguna acci贸n sensible que puede ser llamada desde cualquier lugar a trav茅s del esquema personalizado.
- Universal Links
- Verifica si la aplicaci贸n est谩 registrando alg煤n protocolo/esquema universal.
-
Verifica el archivo
apple-app-site-association
. - Verifica si la aplicaci贸n no est谩 verificando y sanitizando la entrada de los usuarios a trav茅s del esquema personalizado y alguna vulnerabilidad puede ser explotada.
- Verifica si la aplicaci贸n expone alguna acci贸n sensible que puede ser llamada desde cualquier lugar a trav茅s del esquema personalizado.
- UIActivity Sharing
- Verifica si la aplicaci贸n puede recibir UIActivities y si es posible explotar alguna vulnerabilidad con una actividad especialmente dise帽ada.
- UIPasteboard
- Verifica si la aplicaci贸n est谩 copiando algo al portapapeles general.
- Verifica si la aplicaci贸n est谩 utilizando los datos del portapapeles general para algo.
- Monitorea el portapapeles para ver si se copia alg煤n dato sensible.
- App Extensions
- 驴La aplicaci贸n est谩 utilizando alguna extensi贸n?
- WebViews
- Verifica qu茅 tipo de webviews se est谩n utilizando.
-
Verifica el estado de
javaScriptEnabled
,JavaScriptCanOpenWindowsAutomatically
,hasOnlySecureContent
. -
Verifica si el webview puede acceder a archivos locales con el protocolo file:// (
allowFileAccessFromFileURLs
,allowUniversalAccessFromFileURLs
). -
Verifica si Javascript puede acceder a m茅todos nativos (
JSContext
,postMessage
).
Comunicaci贸n de Red
- Realiza un MitM a la comunicaci贸n y busca vulnerabilidades web.
- Verifica si se est谩 verificando el nombre del host del certificado](ios-pentesting/#hostname-check).
- Verifica/Elude Certificate Pinning.
Varios
- Verifica si hay mecanismos de parcheo/actualizaci贸n autom谩tica.
- Verifica si hay bibliotecas de terceros maliciosas.
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 馃挰 Discord group or the telegram group or follow us on Twitter 馃惁 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.