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

147 lines
9.7 KiB
Markdown
Raw Normal View History

# Lista de verificación de Pentesting en iOS
2023-06-05 18:33:24 +00:00
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2023-06-05 18:33:24 +00:00
\
Utilice [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir y **automatizar flujos de trabajo** fácilmente con las herramientas comunitarias más avanzadas del mundo.\
¡Obtenga acceso hoy mismo:
2023-06-05 18:33:24 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><strong>Aprende hacking en AWS de cero a héroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2023-06-05 18:33:24 +00:00
Otras formas de apoyar a HackTricks:
* Si deseas ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF**, consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Obtén la [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
2023-06-05 18:33:24 +00:00
</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" %}
***
2023-06-05 18:33:24 +00:00
### Preparación
* [ ] Leer [**Conceptos básicos de iOS**](ios-pentesting/ios-basics.md)
* [ ] Preparar tu entorno leyendo [**Entorno de pruebas en iOS**](ios-pentesting/ios-testing-environment.md)
* [ ] Leer todas las secciones de [**Análisis inicial en iOS**](ios-pentesting/#initial-analysis) para aprender acciones comunes para pentestear una aplicación de iOS
2023-06-05 18:33:24 +00:00
### Almacenamiento de Datos
2023-06-05 18:33:24 +00:00
* [ ] Los archivos **Plist** pueden usarse para almacenar información sensible.
* [ ] [**Core Data**](ios-pentesting/#core-data) (base de datos SQLite) puede almacenar información sensible.
* [ ] Las **YapDatabases** (base de datos SQLite) pueden almacenar información sensible.
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) con configuración incorrecta.
* [ ] Las bases de datos **Realm** pueden almacenar información sensible.
* [ ] Las bases de datos **Couchbase Lite** pueden almacenar información sensible.
* [ ] Las **cookies binarias** pueden almacenar información sensible.
* [ ] Los datos de **caché** pueden almacenar información sensible.
* [ ] Los **snapshots automáticos** pueden guardar información visual sensible.
* [ ] El **llavero** se usa generalmente para almacenar información sensible que puede quedar al vender el teléfono.
* [ ] En resumen, solo **verificar la información sensible guardada por la aplicación en el sistema de archivos**
2023-06-05 18:33:24 +00:00
### Teclados
* [ ] ¿La aplicación **permite usar teclados personalizados**?
* [ ] Verificar si se guarda información sensible en los **archivos de caché de teclados**
### **Registros**
2023-06-05 18:33:24 +00:00
* [ ] Verificar si se está registrando **información sensible** en los **registros**
2023-06-05 18:33:24 +00:00
### Copias de Seguridad
2023-06-05 18:33:24 +00:00
* [ ] Las **copias de seguridad** pueden usarse para **acceder a la información sensible** guardada en el sistema de archivos (verificar el punto inicial de esta lista de verificación)
* [ ] Además, las **copias de seguridad** pueden usarse para **modificar algunas configuraciones de la aplicación**, luego **restaurar** la copia de seguridad en el teléfono, y al cargar la **configuración modificada** algunas funcionalidades (de seguridad) pueden ser **burladas**
2023-06-05 18:33:24 +00:00
### **Memoria de las Aplicaciones**
* [ ] Verificar si hay información sensible dentro de la **memoria de la aplicación**
### **Cifrado Roto**
* [ ] Verificar si se pueden encontrar **contraseñas utilizadas para el cifrado**
* [ ] Verificar el uso de algoritmos **obsoletos/débiles** para enviar/guardar datos sensibles
* [ ] [**Enganchar y monitorear funciones de cifrado**](ios-pentesting/#broken-cryptography)
### **Autenticación Local**
* [ ] Si se utiliza una **autenticación local** en la aplicación, se debe verificar cómo funciona la autenticación.
* [ ] Si se está utilizando el **Marco de Autenticación Local**, podría ser fácilmente burlado
* [ ] Si se está utilizando una **función que puede ser burlada dinámicamente**, se podría crear un script frida personalizado
### Exposición de Funcionalidades Sensibles a Través de IPC
* [**Manejadores de URI personalizados / Deep links / 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á **registrando 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 **interceptado** por otra aplicación que registre el mismo esquema
* [ ] Verificar si la aplicación **no está verificando y saneando** la entrada de usuarios a través del esquema personalizado y alguna **vulnerabilidad puede ser explotada**
* [ ] 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 usuarios a través del esquema personalizado y alguna **vulnerabilidad puede ser explotada**
* [ ] Verificar si la aplicación **expone alguna acción sensible** que pueda ser llamada desde cualquier lugar a través del esquema personalizado
* [**Compartir Actividades UIActivity**](ios-pentesting/ios-uiactivity-sharing.md)
* [ ] Verificar si la aplicación puede recibir UIActivities y si es posible explotar alguna vulnerabilidad con una actividad especialmente diseñada
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
* [ ] Verificar si la aplicación está **copiando algo en el portapapeles general**
* [ ] Verificar si la aplicación está **utilizando los datos del portapapeles general para algo**
* [ ] Monitorear el portapapeles para ver si se copia algún **dato sensible**
* [**Extensiones de Aplicaciones**](ios-pentesting/ios-app-extensions.md)
* [ ] ¿La aplicación está **utilizando 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 la 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 [**Ataque de Intermediario en la comunicación**](ios-pentesting/#network-communication) y buscar vulnerabilidades web.
* [ ] Verificar si se comprueba el [**nombre de host del certificado**](ios-pentesting/#hostname-check)
* [ ] Verificar/Evadir [**Anclaje de Certificado**](ios-pentesting/#certificate-pinning)
### **Misceláneo**
* [ ] Verificar los mecanismos de [**actualización/patching automático**](ios-pentesting/#hot-patching-enforced-updateing)
* [ ] Buscar [**bibliotecas de terceros maliciosas**](ios-pentesting/#third-parties)
**Grupo de Seguridad Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Aprende hacking en AWS de cero a héroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Otras formas de apoyar a HackTricks:
* Si deseas ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Obtén [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Utiliza [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** fácilmente con las herramientas comunitarias más avanzadas del mundo.\
¡Accede hoy mismo:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}