mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-27 07:01:09 +00:00
7.4 KiB
7.4 KiB
Lista de Verificación de Pentesting en iOS
Utiliza Trickest 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" %}
Aprende hacking en AWS de cero a héroe con htARTE (Experto en Equipos Rojos de AWS de HackTricks)!
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!
- Obtén la merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de HackTricks y HackTricks Cloud.
Preparación
- Lee Conceptos Básicos de iOS
- Prepara tu entorno leyendo Entorno de Pruebas en iOS
- Lee todas las secciones de Análisis Inicial de iOS para aprender acciones comunes para pentestear una aplicación de iOS
Almacenamiento de Datos
- Los archivos Plist pueden usarse para almacenar información sensible.
- Core Data (base de datos SQLite) puede almacenar información sensible.
- Las YapDatabases (base de datos SQLite) pueden almacenar información sensible.
- Firebase 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 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 se guarda información sensible en los archivos de caché de teclados
Registros
- Verifica si se está registrando información sensible en los registros
Copias de Seguridad
- Las copias de seguridad pueden usarse 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 usarse para modificar algunas configuraciones de la aplicación, luego restaurar la copia de seguridad en el teléfono, y cuando se cargue la configuración modificada se puede burlar alguna (funcionalidad de seguridad)
Memoria de Aplicaciones
- Verifica si hay información sensible dentro de la memoria de la aplicación
Cifrado Roto
- Verifica si puedes encontrar contraseñas utilizadas para el cifrado
- Verifica el uso de algoritmos obsoletos/débiles para enviar/guardar datos sensibles
- Engancha y monitorea funciones de cifrado
Autenticación Local
- Si se utiliza una autenticación local en la aplicación, debes 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, podrías crear un script frida personalizado
Exposición de Funcionalidad Sensible a Través de IPC
- Manejadores de URI personalizados / Deep Links / 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 interceptado por otra aplicación que registre el mismo esquema
- Verifica 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
- Verifica si la aplicación expone alguna acción sensible que pueda 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 saneando la entrada de usuarios a través del esquema personalizado y alguna vulnerabilidad puede ser explotada
- Verifica 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
- 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 en el 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
- Extensiones de Aplicaciones
- ¿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 la 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 está comprobando el nombre de host del certificado
- Verifica/Burla el Pinning de Certificados
Misceláneo
- Verifica los mecanismos de parcheo/actualización automática
- Verifica la presencia de bibliotecas de terceros maliciosas