hacktricks/mobile-pentesting/ios-pentesting-checklist.md

128 lines
9.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# iOS 渗透测试清单
<figure><img src="../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
使用[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)轻松构建和自动化由全球**最先进**的社区工具提供支持的工作流程。\
立即获取访问权限:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **关注**我在**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **通过向**[**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 PR 来分享你的黑客技巧。**
</details>
### 准备工作
* [ ] 阅读[**iOS 基础知识**](ios-pentesting/ios-basics.md)
* [ ] 阅读[**iOS 测试环境**](ios-pentesting/ios-testing-environment.md)以准备你的环境
* [ ] 阅读[**iOS 初始分析**](ios-pentesting/#initial-analysis)的所有部分,了解渗透测试 iOS 应用程序的常见操作
### 数据存储
* [ ] [**Plist 文件**](ios-pentesting/#plist)可用于存储敏感信息。
* [ ] [**Core Data**](ios-pentesting/#core-data)SQLite 数据库)可以存储敏感信息。
* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase)SQLite 数据库)可以存储敏感信息。
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) 配置错误。
* [ ] [**Realm 数据库**](ios-pentesting/#realm-databases)可以存储敏感信息。
* [ ] [**Couchbase Lite 数据库**](ios-pentesting/#couchbase-lite-databases)可以存储敏感信息。
* [ ] [**二进制 cookie**](ios-pentesting/#cookies)可以存储敏感信息。
* [ ] [**缓存数据**](ios-pentesting/#cache)可以存储敏感信息。
* [ ] [**自动快照**](ios-pentesting/#snapshots)可以保存视觉敏感信息。
* [ ] [**Keychain**](ios-pentesting/#keychain)通常用于存储在转售手机时可能遗留的敏感信息。
* [ ] 总结一下,只需**检查应用程序在文件系统中保存的敏感信息**。
### 键盘
* [ ] 应用程序是否[**允许使用自定义键盘**](ios-pentesting/#custom-keyboards-keyboard-cache)
* [ ] 检查敏感信息是否保存在[**键盘缓存文件**](ios-pentesting/#custom-keyboards-keyboard-cache)中。
### **日志**
* [ ] 检查是否[**记录了敏感信息**](ios-pentesting/#logs)。
### 备份
* [ ] [**备份**](ios-pentesting/#backups)可用于访问保存在文件系统中的敏感信息(检查此清单的初始点)
* [ ] 此外,[**备份**](ios-pentesting/#backups)可用于修改应用程序的某些配置,然后在手机上**恢复**备份,当**加载**修改后的配置时,可能会**绕过**一些(安全)**功能**。
### **应用程序内存**
* [ ] 检查[**应用程序的内存**](ios-pentesting/#testing-memory-for-sensitive-data)中是否存在敏感信息。
### **破解密码学**
* [ ] 检查是否可以找到用于密码学的[**密码**](ios-pentesting/#broken-cryptography)。
* [ ] 检查是否使用[**已弃用/弱算法**](ios-pentesting/#broken-cryptography)发送/存储敏感数据。
* [ ] [**钩子和监视密码学函数**](ios-pentesting/#broken-cryptography)
### **本地身份验证**
* [ ] 如果应用程序使用了[**本地身份验证**](ios-pentesting/#local-authentication),应检查身份验证的工作方式。
* [ ] 如果使用了[**本地身份验证框架**](ios-pentesting/#local-authentication-framework),可以轻松绕过。
* [ ] 如果使用了[**可以动态绕过的函数**](ios-pentesting/#local-authentication-using-keychain),可以创建自定义的 Frida 脚本。
### 通过IPC暴露敏感功能
* [**自定义URI处理程序/深度链接/自定义方案**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
* [ ] 检查应用程序是否**注册了任何协议/方案**
* [ ] 检查应用程序是否**注册使用**任何协议/方案
* [ ] 检查应用程序是否**期望接收来自自定义方案的任何敏感信息**,这些信息可以被注册相同方案的另一个应用程序**拦截**
* [ ] 检查应用程序是否**未检查和清理**通过自定义方案的用户输入,以及是否存在可以被利用的**漏洞**
* [ ] 检查应用程序是否**公开了可以通过自定义方案从任何地方调用的敏感操作**
* [**通用链接**](ios-pentesting/#universal-links)
* [ ] 检查应用程序是否**注册了任何通用协议/方案**
* [ ] 检查`apple-app-site-association`文件
* [ ] 检查应用程序是否**未检查和清理**通过自定义方案的用户输入,以及是否存在可以被利用的**漏洞**
* [ ] 检查应用程序是否**公开了可以通过自定义方案从任何地方调用的敏感操作**
* [**UIActivity共享**](ios-pentesting/ios-uiactivity-sharing.md)
* [ ] 检查应用程序是否可以接收UIActivities并且是否可以利用特制的活动来利用任何漏洞
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
* [ ] 检查应用程序是否**将任何内容复制到通用剪贴板**
* [ ] 检查应用程序是否**使用通用剪贴板的数据进行任何操作**
* [ ] 监视剪贴板,查看是否复制了任何**敏感数据**
* [**应用扩展**](ios-pentesting/ios-app-extensions.md)
* [ ] 应用程序是否**使用了任何扩展**
* [**WebViews**](ios-pentesting/ios-webviews.md)
* [ ] 检查正在使用的WebViews的类型
* [ ] 检查**`javaScriptEnabled`****`JavaScriptCanOpenWindowsAutomatically`****`hasOnlySecureContent`**的状态
* [ ] 检查Webview是否可以通过**file://**协议**访问本地文件**`allowFileAccessFromFileURLs``allowUniversalAccessFromFileURLs`
* [ ] 检查Javascript是否可以访问**本地**的**方法**`JSContext``postMessage`
### 网络通信
* [ ] 对通信进行[**中间人攻击**](ios-pentesting/#network-communication)并搜索Web漏洞。
* [ ] 检查证书的[**主机名**](ios-pentesting/#hostname-check)
* [ ] 检查/绕过[**证书固定**](ios-pentesting/#certificate-pinning)
### **其他**
* [ ] 检查是否存在[**自动修补/更新**](ios-pentesting/#hot-patching-enforced-updateing)机制
* [ ] 检查是否存在[**恶意第三方库**](ios-pentesting/#third-parties)
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* 您在**网络安全公司**工作吗您想在HackTricks中**为您的公司做广告**吗?或者您想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 发现我们的独家[NFT收藏品](https://opensea.io/collection/the-peass-family)——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
</details>
<figure><img src="../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
使用[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)可以轻松构建和**自动化工作流程**,使用全球**最先进**的社区工具。\
立即获取访问权限:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}