iOS App Extensions

tip

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Las extensiones de aplicaciones mejoran la funcionalidad de las aplicaciones al permitirles interactuar con otras aplicaciones o el sistema, proporcionando caracter铆sticas o contenido personalizados. Estas extensiones incluyen:

  • Teclado Personalizado: Ofrece un teclado 煤nico en todas las aplicaciones, reemplazando el teclado predeterminado de iOS.
  • Compartir: Permite compartir en redes sociales o con otros directamente.
  • Hoy (Widgets): Entrega 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 de Hoy es 煤nico en que puede solicitar a su aplicaci贸n que se abra a trav茅s de un m茅todo espec铆fico.
  • El acceso a datos compartidos est谩 permitido dentro de un contenedor privado, pero el acceso directo est谩 restringido.
  • Ciertas API, incluyendo HealthKit, est谩n prohibidas para las extensiones de aplicaciones, que tampoco pueden iniciar tareas de larga duraci贸n, acceder a la c谩mara o al micr贸fono, excepto para 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 Soportados

Revisa el archivo Info.plist de una extensi贸n para NSExtensionActivationRule para identificar los tipos de datos soportados. Esta configuraci贸n asegura que solo los tipos de datos compatibles activen la extensi贸n en las aplicaciones anfitrionas.

Compartici贸n de Datos

La compartici贸n de datos entre una aplicaci贸n y su extensi贸n requiere un contenedor compartido, configurado a trav茅s de "Grupos de Aplicaciones" y accesible a trav茅s de NSUserDefaults. Este espacio compartido es necesario para transferencias en segundo plano iniciadas por extensiones.

Restricci贸n de Extensiones

Las aplicaciones pueden restringir ciertos tipos de extensiones, particularmente 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: Engancharse a NSExtensionContext - inputItems para ver tipos de datos y or铆genes compartidos.
  • Identificar Extensiones: Descubrir qu茅 extensiones procesan tus datos observando mecanismos internos, como NSXPCConnection.

Herramientas como frida-trace pueden ayudar a entender los procesos subyacentes, especialmente para aquellos interesados en los detalles t茅cnicos de la comunicaci贸n entre procesos.

Referencias

tip

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks