5.8 KiB
Extensiones de aplicaciones iOS
Aprende a hackear AWS desde cero hasta convertirte en un experto 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.
Las extensiones de aplicaciones mejoran la funcionalidad de las aplicaciones al permitirles interactuar con otras aplicaciones o el sistema, proporcionando funciones o contenido personalizado. Estas extensiones incluyen:
- Teclado personalizado: Ofrece un teclado único en todas las aplicaciones, reemplazando el teclado iOS predeterminado.
- Compartir: Permite compartir en redes sociales o con otros directamente.
- Hoy (Widgets): Proporciona contenido o realiza tareas rápidamente desde la vista Hoy del Centro de Notificaciones.
Cuando un usuario interactúa con estas extensiones, como compartir texto desde una aplicación anfitriona, la extensión procesa esta entrada dentro de su contexto, aprovechando la información compartida para realizar su tarea, como se detalla en la documentación de Apple.
Consideraciones de seguridad
Los aspectos clave de seguridad incluyen:
- Las extensiones y sus aplicaciones contenedoras se comunican a través de comunicación entre procesos, no directamente.
- El widget Hoy es único en que puede solicitar que su aplicación se abra mediante un método específico.
- Se permite el acceso a datos compartidos dentro de un contenedor privado, pero se restringe el acceso directo.
- Algunas API, incluida HealthKit, están fuera de los límites de las extensiones de aplicaciones, que tampoco pueden iniciar tareas de larga duración, acceder a la cámara o al micrófono, excepto las extensiones de iMessage.
Análisis estático
Identificación de extensiones de aplicaciones
Para encontrar extensiones de aplicaciones en el código fuente, busca NSExtensionPointIdentifier
en Xcode o inspecciona el paquete de la aplicación en busca de archivos .appex
que indiquen extensiones. Sin código fuente, utiliza grep o SSH para localizar estos identificadores dentro del paquete de la aplicación.
Tipos de datos admitidos
Verifica el archivo Info.plist
de una extensión para NSExtensionActivationRule
para identificar los tipos de datos admitidos. Esta configuración garantiza que solo los tipos de datos compatibles activen la extensión en las aplicaciones anfitrionas.
Compartir datos
El intercambio de datos entre una aplicación y su extensión requiere un contenedor compartido, configurado mediante "Grupos de aplicaciones" y accedido a través de NSUserDefaults
. Este espacio compartido es necesario para transferencias en segundo plano iniciadas por las extensiones.
Restricción de extensiones
Las aplicaciones pueden restringir ciertos tipos de extensiones, especialmente los teclados personalizados, asegurando que el manejo de datos sensibles se alinee con los protocolos de seguridad.
Análisis dinámico
El análisis dinámico implica:
- Inspeccionar elementos compartidos: Engancha en
NSExtensionContext - inputItems
para ver los tipos de datos compartidos y sus orígenes. - Identificación de extensiones: Descubre qué extensiones procesan tus datos observando mecanismos internos, como
NSXPCConnection
.
Herramientas como frida-trace
pueden ayudar a comprender los procesos subyacentes, especialmente para aquellos interesados en los detalles técnicos de la comunicación entre procesos.
Referencias
- https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/
- https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/
Aprende a hackear AWS desde cero hasta convertirte en un experto 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.