# Lista de verificación para Pentesting en iOS
\ Utiliza [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y automatizar fácilmente flujos de trabajo con las herramientas comunitarias más avanzadas del mundo.\ Obtén acceso hoy mismo: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! * Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * Obtén el [**merchandising oficial de PEASS y HackTricks**](https://peass.creator-spring.com) * **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
### Preparación * [ ] Lee [**Conceptos básicos de iOS**](ios-pentesting/ios-basics.md) * [ ] Prepara tu entorno leyendo [**Entorno de pruebas de iOS**](ios-pentesting/ios-testing-environment.md) * [ ] Lee todas las secciones de [**Análisis inicial de iOS**](ios-pentesting/#initial-analysis) para aprender las acciones comunes para pentestear una aplicación de iOS ### Almacenamiento de datos * [ ] Los [**archivos Plist**](ios-pentesting/#plist) se pueden utilizar para almacenar información sensible. * [ ] [**Core Data**](ios-pentesting/#core-data) (base de datos SQLite) puede almacenar información sensible. * [ ] [**YapDatabases**](ios-pentesting/#yapdatabase) (base de datos SQLite) pueden almacenar información sensible. * [ ] Configuración incorrecta de [**Firebase**](ios-pentesting/#firebase-real-time-databases). * [ ] Las [**bases de datos de Realm**](ios-pentesting/#realm-databases) pueden almacenar información sensible. * [ ] Las [**bases de datos de Couchbase Lite**](ios-pentesting/#couchbase-lite-databases) pueden almacenar información sensible. * [ ] Las [**cookies binarias**](ios-pentesting/#cookies) pueden almacenar información sensible. * [ ] Los [**datos en caché**](ios-pentesting/#cache) pueden almacenar información sensible. * [ ] Las [**capturas automáticas**](ios-pentesting/#snapshots) pueden guardar información visual sensible. * [ ] El [**llavero**](ios-pentesting/#keychain) generalmente se utiliza para almacenar información sensible que puede quedar cuando se revende el teléfono. * [ ] En resumen, solo **verifica si la aplicación guarda información sensible en el sistema de archivos** ### Teclados * [ ] ¿La aplicación [**permite usar teclados personalizados**](ios-pentesting/#custom-keyboards-keyboard-cache)? * [ ] Verifica si se guarda información sensible en los [**archivos de caché de los teclados**](ios-pentesting/#custom-keyboards-keyboard-cache) ### **Registros** * [ ] Verifica si se está registrando [**información sensible**](ios-pentesting/#logs) ### Copias de seguridad * [ ] Las [**copias de seguridad**](ios-pentesting/#backups) se pueden utilizar 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, las [**copias de seguridad**](ios-pentesting/#backups) se pueden utilizar para **modificar algunas configuraciones de la aplicación**, luego **restaurar** la copia de seguridad en el teléfono y, al cargarse la **configuración modificada**, se puede **burlar** alguna (seguridad) **funcionalidad** ### **Memoria de las aplicaciones** * [ ] Verifica si hay información sensible dentro de la [**memoria de la aplicación**](ios-pentesting/#testing-memory-for-sensitive-data) ### **Criptografía defectuosa** * [ ] Verifica si puedes encontrar [**contraseñas utilizadas para la criptografía**](ios-pentesting/#broken-cryptography) * [ ] Verifica el uso de [**algoritmos obsoletos/débiles**](ios-pentesting/#broken-cryptography) para enviar/guardar datos sensibles * [ ] [**Engancha y monitoriza las funciones de criptografía**](ios-pentesting/#broken-cryptography) ### **Autenticación local** * [ ] Si se utiliza una [**autenticación local**](ios-pentesting/#local-authentication) en la aplicación, debes verificar cómo funciona la autenticación. * [ ] Si utiliza el [**Marco de autenticación local**](ios-pentesting/#local-authentication-framework), podría ser fácilmente eludido. * [ ] Si utiliza una [**función que puede ser eludida dinámicamente**](ios-pentesting/#local-authentication-using-keychain), podrías crear un script personalizado de frida. ### Exposición de Funcionalidad Sensible a través de IPC * [**Manejadores de URI personalizados / Enlaces profundos / Esquemas personalizados**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes) * [ ] Verificar si la aplicación está **registrando algún protocolo/esquema** * [ ] Verificar si la aplicación está **registrándose para usar** algún protocolo/esquema * [ ] Verificar 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 * [ ] Verificar si la aplicación **no está verificando y saneando** la entrada de los usuarios a través del esquema personalizado y se puede aprovechar alguna **vulnerabilidad** * [ ] Verificar si la aplicación **expone alguna acción sensible** que pueda ser llamada desde cualquier lugar a través del esquema personalizado * [**Enlaces universales**](ios-pentesting/#universal-links) * [ ] Verificar si la aplicación está **registrando algún protocolo/esquema universal** * [ ] Verificar el archivo `apple-app-site-association` * [ ] Verificar si la aplicación **no está verificando y saneando** la entrada de los usuarios a través del esquema personalizado y se puede aprovechar alguna **vulnerabilidad** * [ ] Verificar si la aplicación **expone alguna acción sensible** que pueda ser llamada desde cualquier lugar a través del esquema personalizado * [**Compartir UIActivity**](ios-pentesting/ios-uiactivity-sharing.md) * [ ] Verificar si la aplicación puede recibir UIActivities y si es posible aprovechar alguna vulnerabilidad con una actividad especialmente diseñada * [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md) * [ ] Verificar si la aplicación **copia algo en el portapapeles general** * [ ] Verificar si la aplicación **utiliza los datos del portapapeles general para algo** * [ ] Monitorear el portapapeles para ver si se copian datos **sensibles** * [**Extensiones de la aplicación**](ios-pentesting/ios-app-extensions.md) * [ ] ¿La aplicación **utiliza alguna extensión**? * [**WebViews**](ios-pentesting/ios-webviews.md) * [ ] Verificar qué tipo de webviews se están utilizando * [ ] Verificar el estado de **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`** * [ ] Verificar si el webview puede **acceder a archivos locales** con el protocolo **file://** **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`) * [ ] Verificar si Javascript puede acceder a **métodos nativos** (`JSContext`, `postMessage`) ### Comunicación de Red * [ ] Realizar un [**MitM a la comunicación**](ios-pentesting/#network-communication) y buscar vulnerabilidades web. * [ ] Verificar si se verifica el [**nombre de host del certificado**](ios-pentesting/#hostname-check) * [ ] Verificar/Evadir [**Certificate Pinning**](ios-pentesting/#certificate-pinning) ### **Misceláneo** * [ ] Verificar la existencia de mecanismos de [**parcheo/actualización automática**](ios-pentesting/#hot-patching-enforced-updateing) * [ ] Verificar la existencia de [**bibliotecas de terceros maliciosas**](ios-pentesting/#third-parties)
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! * Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * Obtén el [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com) * **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
\ Utiliza [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** con las herramientas comunitarias más avanzadas del mundo.\ Obtén acceso hoy mismo: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}