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

136 lines
9.8 KiB
Markdown
Raw Normal View History

# iOS Pentesting Checklist
2023-06-05 18:33:24 +00:00
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
2023-06-05 18:33:24 +00:00
\
Usa [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** fácilmente, impulsados por las herramientas comunitarias **más avanzadas** del mundo.\
Obtén acceso hoy:
2023-06-05 18:33:24 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% hint style="success" %}
Aprende y practica Hacking en AWS:<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">\
Aprende y practica Hacking en GCP: <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)
2023-06-05 18:33:24 +00:00
<details>
2023-06-05 18:33:24 +00:00
<summary>Apoya a HackTricks</summary>
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
2023-06-05 18:33:24 +00:00
</details>
{% endhint %}
2023-06-05 18:33:24 +00:00
### Preparación
* [ ] Lee [**iOS Basics**](ios-pentesting/ios-basics.md)
* [ ] Prepara tu entorno leyendo [**iOS Testing Environment**](ios-pentesting/ios-testing-environment.md)
* [ ] Lee todas las secciones de [**iOS Initial Analysis**](ios-pentesting/#initial-analysis) para aprender acciones comunes para pentestear una aplicación iOS
2023-06-05 18:33:24 +00:00
### Almacenamiento de Datos
2023-06-05 18:33:24 +00:00
* [ ] [**Los archivos Plist**](ios-pentesting/#plist) pueden ser utilizados 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) puede almacenar información sensible.
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) mala configuración.
* [ ] [**Las bases de datos Realm**](ios-pentesting/#realm-databases) pueden almacenar información sensible.
* [ ] [**Las bases de datos Couchbase Lite**](ios-pentesting/#couchbase-lite-databases) pueden almacenar información sensible.
* [ ] [**Cookies binarias**](ios-pentesting/#cookies) pueden almacenar información sensible.
* [ ] [**Datos de caché**](ios-pentesting/#cache) pueden almacenar información sensible.
* [ ] [**Instantáneas automáticas**](ios-pentesting/#snapshots) pueden guardar información visual sensible.
* [ ] [**Keychain**](ios-pentesting/#keychain) se utiliza generalmente para almacenar información sensible que puede quedar al revender el teléfono.
* [ ] En resumen, solo **verifica 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**](ios-pentesting/#custom-keyboards-keyboard-cache)?
* [ ] Verifica si la información sensible se guarda en los [**archivos de caché de teclados**](ios-pentesting/#custom-keyboards-keyboard-cache).
### **Registros**
2023-06-05 18:33:24 +00:00
* [ ] Verifica si [**se está registrando información sensible**](ios-pentesting/#logs).
2023-06-05 18:33:24 +00:00
### Copias de Seguridad
2023-06-05 18:33:24 +00:00
* [ ] [**Las copias de seguridad**](ios-pentesting/#backups) pueden ser utilizadas 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) pueden ser utilizadas 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**.
2023-06-05 18:33:24 +00:00
### **Memoria de Aplicaciones**
* [ ] Verifica la información sensible dentro de la [**memoria de la aplicación**](ios-pentesting/#testing-memory-for-sensitive-data).
### **Criptografía Rota**
* [ ] Verifica si puedes encontrar [**contraseñas utilizadas para criptografía**](ios-pentesting/#broken-cryptography).
* [ ] Verifica el uso de [**algoritmos obsoletos/débiles**](ios-pentesting/#broken-cryptography) para enviar/almacenar datos sensibles.
* [ ] [**Engancha y monitorea 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 está funcionando la autenticación.
* [ ] Si está utilizando el [**Marco de Autenticación Local**](ios-pentesting/#local-authentication-framework), podría ser fácilmente eludido.
* [ ] Si está utilizando 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 Funcionalidades Sensibles a Través de IPC
* [**Manejadores de URI personalizados / Deeplinks / Esquemas personalizados**](ios-pentesting/#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.
* [**Enlaces Universales**](ios-pentesting/#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.
* [**Compartición de UIActivity**](ios-pentesting/ios-uiactivity-sharing.md).
* [ ] Verifica 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).
* [ ] Verifica si la aplicación **copia algo al portapapeles general**.
* [ ] Verifica si la aplicación **usa los datos del portapapeles general para algo**.
* [ ] Monitorea el portapapeles para ver si se **copia algún dato sensible**.
* [**Extensiones de Aplicaciones**](ios-pentesting/ios-app-extensions.md).
* [ ] ¿La aplicación **usa alguna extensión**?
* [**WebViews**](ios-pentesting/ios-webviews.md).
* [ ] 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**](ios-pentesting/#network-communication) y busca vulnerabilidades web.
* [ ] Verifica si se verifica el [**nombre de host del certificado**](ios-pentesting/#hostname-check).
* [ ] Verifica/Elude [**Certificate Pinning**](ios-pentesting/#certificate-pinning).
### **Varios**
* [ ] Verifica si hay mecanismos de [**parcheo/actualización automática**](ios-pentesting/#hot-patching-enforced-updateing).
* [ ] Verifica si hay [**bibliotecas de terceros maliciosas**](ios-pentesting/#third-parties).
{% hint style="success" %}
Aprende y practica Hacking en AWS:<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">\
Aprende y practica Hacking en GCP: <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>Apoya a HackTricks</summary>
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de 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) para construir y **automatizar flujos de trabajo** fácilmente, impulsados por las herramientas comunitarias **más avanzadas** del mundo.\
Obtén acceso hoy:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}