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

94 lines
6.0 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 Pentesting Checklist
{{#include ../banners/hacktricks-training.md}}
### 准备
- [ ] 阅读 [**iOS 基础**](ios-pentesting/ios-basics.md)
- [ ] 准备你的环境,阅读 [**iOS 测试环境**](ios-pentesting/ios-testing-environment.md)
- [ ] 阅读 [**iOS 初步分析**](ios-pentesting/index.html#initial-analysis) 的所有部分,以了解对 iOS 应用进行渗透测试的常见操作
### 数据存储
- [ ] [**Plist 文件**](ios-pentesting/index.html#plist) 可用于存储敏感信息。
- [ ] [**Core Data**](ios-pentesting/index.html#core-data)SQLite 数据库)可以存储敏感信息。
- [ ] [**YapDatabases**](ios-pentesting/index.html#yapdatabase)SQLite 数据库)可以存储敏感信息。
- [ ] [**Firebase**](ios-pentesting/index.html#firebase-real-time-databases) 配置错误。
- [ ] [**Realm 数据库**](ios-pentesting/index.html#realm-databases)可以存储敏感信息。
- [ ] [**Couchbase Lite 数据库**](ios-pentesting/index.html#couchbase-lite-databases)可以存储敏感信息。
- [ ] [**二进制 Cookie**](ios-pentesting/index.html#cookies)可以存储敏感信息。
- [ ] [**缓存数据**](ios-pentesting/index.html#cache)可以存储敏感信息。
- [ ] [**自动快照**](ios-pentesting/index.html#snapshots)可以保存视觉敏感信息。
- [ ] [**钥匙串**](ios-pentesting/index.html#keychain) 通常用于存储敏感信息,这些信息在转售手机时可能会被遗留。
- [ ] 总之,只需 **检查应用程序在文件系统中保存的敏感信息**
### 键盘
- [ ] 应用程序是否 [**允许使用自定义键盘**](ios-pentesting/index.html#custom-keyboards-keyboard-cache)
- [ ] 检查是否在 [**键盘缓存文件**](ios-pentesting/index.html#custom-keyboards-keyboard-cache) 中保存了敏感信息。
### **日志**
- [ ] 检查是否 [**记录了敏感信息**](ios-pentesting/index.html#logs)。
### 备份
- [ ] [**备份**](ios-pentesting/index.html#backups) 可用于 **访问文件系统中保存的敏感信息**(检查此检查表的初始点)。
- [ ] 此外,[**备份**](ios-pentesting/index.html#backups) 可用于 **修改应用程序的一些配置**,然后 **在手机上恢复** 备份,作为 **修改后的配置****加载** 时,某些(安全) **功能** 可能会被 **绕过**
### **应用程序内存**
- [ ] 检查 [**应用程序内存**](ios-pentesting/index.html#testing-memory-for-sensitive-data) 中的敏感信息。
### **破损的加密**
- [ ] 检查是否可以找到 [**用于加密的密码**](ios-pentesting/index.html#broken-cryptography)。
- [ ] 检查是否使用 [**过时/弱算法**](ios-pentesting/index.html#broken-cryptography) 来发送/存储敏感数据。
- [ ] [**钩取并监控加密函数**](ios-pentesting/index.html#broken-cryptography)。
### **本地身份验证**
- [ ] 如果应用程序中使用了 [**本地身份验证**](ios-pentesting/index.html#local-authentication),你应该检查身份验证的工作方式。
- [ ] 如果使用的是 [**本地身份验证框架**](ios-pentesting/index.html#local-authentication-framework),则可能很容易被绕过。
- [ ] 如果使用的是 [**可以动态绕过的函数**](ios-pentesting/index.html#local-authentication-using-keychain),你可以创建一个自定义的 frida 脚本。
### 通过 IPC 暴露敏感功能
- [**自定义 URI 处理程序 / 深度链接 / 自定义方案**](ios-pentesting/index.html#custom-uri-handlers-deeplinks-custom-schemes)
- [ ] 检查应用程序是否 **注册了任何协议/方案**
- [ ] 检查应用程序是否 **注册以使用** 任何协议/方案。
- [ ] 检查应用程序 **是否期望从自定义方案接收任何类型的敏感信息**,这些信息可以被注册相同方案的另一个应用程序 **拦截**
- [ ] 检查应用程序 **是否没有检查和清理** 通过自定义方案的用户输入,某些 **漏洞可能被利用**
- [ ] 检查应用程序 **是否暴露了任何敏感操作**,可以通过自定义方案从任何地方调用。
- [**通用链接**](ios-pentesting/index.html#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 是否可以访问 **Native** **方法**`JSContext``postMessage`)。
### 网络通信
- [ ] 执行 [**MitM 通信**](ios-pentesting/index.html#network-communication) 并搜索网络漏洞。
- [ ] 检查 [**证书的主机名**](ios-pentesting/index.html#hostname-check) 是否被检查。
- [ ] 检查/绕过 [**证书钉扎**](ios-pentesting/index.html#certificate-pinning)。
### **其他**
- [ ] 检查 [**自动修补/更新**](ios-pentesting/index.html#hot-patching-enforced-updateing) 机制。
- [ ] 检查 [**恶意第三方库**](ios-pentesting/index.html#third-parties)。
{{#include ../banners/hacktricks-training.md}}