mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
7.0 KiB
7.0 KiB
iOS Pentesting Checklist
{{#include ../banners/hacktricks-training.md}}
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 pentesting de 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, alguna (seguridad) funcionalidad puede ser eludida.
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 Funcionalidad Sensible 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 verifica el nombre de host del certificado.
- Verifica/Elude Certificate Pinning.
Varios
- Verifica si hay mecanismos de parcheo/actualización automática.
- Verifica si hay bibliotecas de terceros maliciosas.
{{#include ../banners/hacktricks-training.md}}