MASTG-TECH-0061: 转储 Keychain 数据
转储 KeyChain 数据可以使用多种工具,但并非所有工具都适用于任何 iOS 版本。 与通常情况一样,尝试不同的工具或查找其文档以获取有关最新支持版本的信息。
Objection (越狱/非越狱)¶
可以使用 Objection 轻松查看 KeyChain 数据。 首先,按照“推荐工具 - Objection”中的描述,将 objection 连接到 iGoat-Swift 应用程序。 然后,使用 ios keychain dump
命令获取 keychain 的概述
$ objection --gadget="iGoat-Swift" explore
... [usb] # ios keychain dump
...
Note: You may be asked to authenticate using the devices passcode or TouchID
Save the output by adding `--json keychain.json` to this command
Dumping the iOS keychain...
Created Accessible ACL Type Account Service Data
------------------------- ------------------------------ ----- -------- ------------------- -------------------------- ----------------------------------------------------------------------
2019-06-06 10:53:09 +0000 WhenUnlocked None Password keychainValue com.highaltitudehacks.dvia mypassword123
2019-06-06 10:53:30 +0000 WhenUnlockedThisDeviceOnly None Password SCAPILazyVector com.toyopagroup.picaboo (failed to decode)
2019-06-06 10:53:30 +0000 AfterFirstUnlockThisDeviceOnly None Password fideliusDeviceGraph com.toyopagroup.picaboo (failed to decode)
2019-06-06 10:53:30 +0000 AfterFirstUnlockThisDeviceOnly None Password SCDeviceTokenKey2 com.toyopagroup.picaboo 00001:FKsDMgVISiavdm70v9Fhv5z+pZfBTTN7xkwSwNvVr2IhVBqLsC7QBhsEjKMxrEjh
2019-06-06 10:53:30 +0000 AfterFirstUnlockThisDeviceOnly None Password SCDeviceTokenValue2 com.toyopagroup.picaboo CJ8Y8K2oE3rhOFUhnxJxDS1Zp8Z25XzgY2EtFyMbW3U=
OWASP.iGoat-Swift on (iPhone: 12.0) [usb] # quit
请注意,目前,最新版本的 frida-server 和 objection 无法正确解码所有 keychain 数据。 可以尝试不同的组合来提高兼容性。 例如,之前的打印输出是使用 frida-tools==1.3.0
、frida==12.4.8
和 objection==1.5.0
创建的。
最后,由于 keychain 转储器是从应用程序上下文中执行的,因此它只会打印出应用程序可以访问的 keychain 项目,而不是 iOS 设备的整个 keychain。
Grapefruit (越狱/非越狱)¶
使用 Grapefruit,可以访问您选择的应用程序的 keychain 数据。 在存储部分中,单击 Keychain,您可以看到存储的 Keychain 信息列表。
Keychain-dumper (越狱)¶
您可以使用 Keychain-Dumper转储越狱设备的 KeyChain 内容。 在您的设备上运行后
iPhone:~ root# /tmp/keychain_dumper
(...)
Generic Password
----------------
Service: myApp
Account: key3
Entitlement Group: RUD9L355Y.sg.vantagepoint.example
Label: (null)
Generic Field: (null)
Keychain Data: SmJSWxEs
Generic Password
----------------
Service: myApp
Account: key7
Entitlement Group: RUD9L355Y.sg.vantagepoint.example
Label: (null)
Generic Field: (null)
Keychain Data: WOg1DfuH
在较新版本的 iOS(iOS 11 及更高版本)中,需要额外的步骤。 有关更多详细信息,请参见 README.md。 请注意,此二进制文件使用具有“通配符”授权的自签名证书进行签名。 该授权授予对 Keychain 中所有项目的访问权限。 如果您有妄想症,或者测试设备上有非常敏感的私人数据,您可能需要从源代码构建该工具,并将相应的授权手动签名到您的构建中; GitHub 存储库中提供了有关执行此操作的说明。