2024-07-19 05:18:31 +00:00
|
|
|
|
# iOS App Extensions
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
{% hint style="success" %}
|
|
|
|
|
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
|
|
|
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
<details>
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
<summary>支持 HackTricks</summary>
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
|
|
|
|
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
|
|
|
|
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
|
|
|
|
</details>
|
2024-07-19 05:18:31 +00:00
|
|
|
|
{% endhint %}
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
应用扩展通过允许应用与其他应用或系统交互,提供自定义功能或内容,从而增强应用的功能。这些扩展包括:
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2024-02-08 04:42:06 +00:00
|
|
|
|
- **自定义键盘**:在所有应用中提供独特的键盘,替代默认的 iOS 键盘。
|
2024-07-19 05:18:31 +00:00
|
|
|
|
- **分享**:允许直接与社交网络或其他人分享。
|
|
|
|
|
- **今日(小部件)**:快速从通知中心的今日视图提供内容或执行任务。
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
当用户与这些扩展互动时,例如从主应用分享文本,扩展在其上下文中处理此输入,利用共享的信息来执行其任务,具体细节见苹果的文档。
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2024-01-12 09:01:50 +00:00
|
|
|
|
### **安全考虑**
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2024-02-08 04:42:06 +00:00
|
|
|
|
关键的安全方面包括:
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
- 扩展及其包含的应用通过进程间通信进行通信,而不是直接通信。
|
|
|
|
|
- **今日小部件**的独特之处在于它可以通过特定方法请求其应用打开。
|
|
|
|
|
- 共享数据访问在私有容器内是允许的,但直接访问受到限制。
|
|
|
|
|
- 某些 API,包括 HealthKit,对应用扩展是禁用的,应用扩展也不能启动长时间运行的任务,访问相机或麦克风,除了 iMessage 扩展。
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
### 静态分析
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
#### **识别应用扩展**
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
要在源代码中找到应用扩展,请在 Xcode 中搜索 `NSExtensionPointIdentifier` 或检查应用包中的 `.appex` 文件以指示扩展。如果没有源代码,可以使用 grep 或 SSH 在应用包中定位这些标识符。
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2024-02-08 04:42:06 +00:00
|
|
|
|
#### **支持的数据类型**
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
检查扩展的 `Info.plist` 文件中的 `NSExtensionActivationRule` 以识别支持的数据类型。此设置确保只有兼容的数据类型在主应用中触发扩展。
|
2021-10-18 11:21:18 +00:00
|
|
|
|
|
2024-02-08 04:42:06 +00:00
|
|
|
|
#### **数据共享**
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
应用与其扩展之间的数据共享需要一个共享容器,通过“应用组”设置,并通过 `NSUserDefaults` 访问。这个共享空间对于扩展发起的后台传输是必要的。
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2024-02-08 04:42:06 +00:00
|
|
|
|
#### **限制扩展**
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
应用可以限制某些扩展类型,特别是自定义键盘,确保敏感数据处理符合安全协议。
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
### 动态分析
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2024-02-08 04:42:06 +00:00
|
|
|
|
动态分析包括:
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
- **检查共享项目**:钩入 `NSExtensionContext - inputItems` 以查看共享数据类型和来源。
|
2024-02-08 04:42:06 +00:00
|
|
|
|
- **识别扩展**:通过观察内部机制(如 `NSXPCConnection`)发现哪些扩展处理您的数据。
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
像 `frida-trace` 这样的工具可以帮助理解底层过程,特别是对于那些对进程间通信的技术细节感兴趣的人。
|
2021-05-20 12:17:20 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
## 参考文献
|
2024-02-08 04:42:06 +00:00
|
|
|
|
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/)
|
2024-07-19 05:18:31 +00:00
|
|
|
|
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/)
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
{% hint style="success" %}
|
|
|
|
|
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
|
|
|
学习和实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
<details>
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
<summary>支持 HackTricks</summary>
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2024-07-19 05:18:31 +00:00
|
|
|
|
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
|
|
|
|
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
|
|
|
|
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
|
|
|
|
</details>
|
2024-07-19 05:18:31 +00:00
|
|
|
|
{% endhint %}
|