hacktricks/mobile-pentesting/ios-pentesting/ios-app-extensions.md

4.9 KiB
Raw Blame History

iOS 应用扩展

从零开始学习 AWS 黑客技术,成为专家 htARTEHackTricks AWS 红队专家)

支持 HackTricks 的其他方式:

应用扩展通过允许应用与其他应用或系统进行交互,提供自定义功能或内容,增强了应用的功能。这些扩展包括:

  • 自定义键盘:在所有应用中提供独特的键盘,替代默认的 iOS 键盘。
  • 共享:允许直接与社交网络或其他人分享。
  • 今日视图(小部件):从通知中心的今日视图快速传递内容或执行任务。

当用户与这些扩展进行交互时,例如从主机应用程序共享文本,扩展会在其上下文中处理此输入,利用共享的信息执行其任务,详细信息请参阅 Apple 的文档。

安全考虑

关键的安全方面包括:

  • 扩展及其包含的应用程序通过进程间通信进行通信,而不是直接通信。
  • 今日小部件是独特的,因为它可以请求其应用程序通过特定方法打开。
  • 允许在私有容器内共享数据访问,但限制直接访问。
  • 某些 API包括 HealthKit对应用程序扩展是禁止的应用程序扩展也不能启动长时间运行的任务访问相机或麦克风除了 iMessage 扩展。

静态分析

识别应用程序扩展

要在源代码中查找应用程序扩展,请在 Xcode 中搜索 NSExtensionPointIdentifier,或检查应用程序包中指示扩展的 .appex 文件。如果没有源代码,请使用 grep 或 SSH 在应用程序包中定位这些标识符。

支持的数据类型

检查扩展的 Info.plist 文件以查找 NSExtensionActivationRule,以识别支持的数据类型。这种设置确保只有兼容的数据类型会触发主机应用程序中的扩展。

数据共享

应用程序与其扩展之间的数据共享需要一个共享容器,通过“应用程序组”进行设置,并通过 NSUserDefaults 访问。这个共享空间对于扩展发起的后台传输是必要的。

限制扩展

应用程序可以限制某些扩展类型,特别是自定义键盘,确保敏感数据处理符合安全协议。

动态分析

动态分析包括:

  • 检查共享项目:钩入 NSExtensionContext - inputItems,查看共享的数据类型和来源。
  • 识别扩展:通过观察内部机制(如 NSXPCConnection)发现哪些扩展处理您的数据。

frida-trace 这样的工具可以帮助理解底层进程,特别是对于那些对进程间通信的技术细节感兴趣的人。

参考资料

从零开始学习 AWS 黑客技术,成为专家 htARTEHackTricks AWS 红队专家)

支持 HackTricks 的其他方式: