iOS钥匙串(keychain)是iOS操作系统提供的一种安全存储机制,用于存储用户的敏感信息(如密码等)。钥匙串管理器可以在任何应用和扩展中安全地存储和访问用户的敏感信息,而不会被其他应用的访问或破坏。钥匙串的内容可以在设备上加密存储,并通过用户的iCloud帐户自动备份。
iOS钥匙串的功能:
-
- 密码管理:可以为每个网站的账号和密码存储一个安全的密码,而不需要记住多个账号和密码。
-
- 身份证书管理:可以管理SSL(Secure Sockets Layer,安全套接字层)证书,用于认证安全连接。
-
- 证书颁发机构(CA)管理:可以为CA颁发的证书提供存储和管理,以确保安全网站的身份验证。
-
- 密钥管理:可以存储和管理数字密钥,用于数据加密和签名。
-
- 密码自动填充:可以自动填充登录表单,以减少用户输入的工作量。
使用钥匙串可以最大程度地保护用户的数据安全,同时又能够减少用户输入的工作量。
iOS加密备份
参考:https://github.com/dunhamsteve/ios
参考:https://github.com/n0fate/chainbreaker
参考:https://github.com/nabla-c0d3/iphone-dataprotection/blob/master/python_scripts/keychain_tool.py
参考:https://pypi.org/project/iOSbackup/
参考:https://github.com/jsharkey13/iphone_backup_decrypt
keychain_dumper
参考:https://github.com/ptoomey3/Keychain-Dumper
参考:https://sevencho.github.io/archives/65ed9c65.html
参考:https://github.com/ldzSpace/KCdumper
frida-objection
pip3 install objection
objection -d --gadget "appName" explore
ios keychain dump/dump_raw
方案比较
方案 | 数据完整度 | 越狱 | 系统版本 |
---|---|---|---|
iOS加密备份 | 仅部分数据 | 否 | 全版本 |
keychain_dumper | 全部 | 是 | iOS12及以下 |
frida-objection | 全部 | 是 | 理论全版本 |
参考
- https://book.hacktricks.xyz/mobile-pentesting/ios-pentesting#keychain