9.8 KiB
iOS Pentesting Checklist
Usa Trickest 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" %}
{% hint style="success" %}
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repos de github.
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
- Los archivos Plist 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.
- Las bases de datos Realm pueden almacenar información sensible.
- Las bases de datos Couchbase Lite pueden almacenar información sensible.
- Cookies binarias pueden almacenar información sensible.
- Datos de caché pueden almacenar información sensible.
- Instantáneas automáticas 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 la 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
- Las copias de seguridad 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 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.
Memoria de Aplicaciones
- Verifica la 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.
- Engancha 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 Marco de Autenticación Local, 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
- Manejadores de URI personalizados / Deeplinks / Esquemas personalizados.
- 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.
- 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.
- 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 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.
- ¿La aplicación usa 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.
{% hint style="success" %}
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repos de github.
Usa Trickest 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" %}