Enrolling Devices in Other Organisations
Last updated
Last updated
学习和实践 AWS 黑客技术: 学习和实践 GCP 黑客技术:
正如 , 为了尝试将设备注册到一个组织 只需要该组织的序列号。一旦设备注册,多个组织将会在新设备上安装敏感数据:证书、应用程序、WiFi 密码、VPN 配置 。 因此,如果注册过程没有得到正确保护,这可能成为攻击者的危险入口。
以下是研究的摘要 。查看以获取更多技术细节!
本研究深入探讨了与 macOS 上的设备注册程序 (DEP) 和移动设备管理 (MDM) 相关的二进制文件。关键组件包括:
mdmclient
:与 MDM 服务器通信,并在 macOS 10.13.4 之前的版本上触发 DEP 检查。
profiles
:管理配置文件,并在 macOS 10.13.4 及更高版本上触发 DEP 检查。
cloudconfigurationd
:管理 DEP API 通信并检索设备注册配置文件。
DEP 检查利用私有配置文件框架中的 CPFetchActivationRecord
和 CPGetActivationRecord
函数来获取激活记录,CPFetchActivationRecord
通过 XPC 与 cloudconfigurationd
协调。
DEP 检查涉及 cloudconfigurationd
向 iprofiles.apple.com/macProfile 发送加密的签名 JSON 负载。负载包括设备的序列号和操作 "RequestProfileConfiguration"。所使用的加密方案在内部称为 "Absinthe"。解开这个方案是复杂的,涉及多个步骤,这导致探索替代方法以在激活记录请求中插入任意序列号。
使用 Charles Proxy 等工具拦截和修改对 iprofiles.apple.com 的 DEP 请求的尝试受到负载加密和 SSL/TLS 安全措施的阻碍。然而,启用 MCCloudConfigAcceptAnyHTTPSCertificate
配置可以绕过服务器证书验证,尽管负载的加密性质仍然阻止在没有解密密钥的情况下修改序列号。
对系统二进制文件如 cloudconfigurationd
进行插桩需要在 macOS 上禁用系统完整性保护 (SIP)。禁用 SIP 后,可以使用 LLDB 等工具附加到系统进程,并可能修改在 DEP API 交互中使用的序列号。这种方法更可取,因为它避免了权限和代码签名的复杂性。
利用二进制插桩: 在 cloudconfigurationd
中在 JSON 序列化之前修改 DEP 请求负载被证明是有效的。该过程包括:
将 LLDB 附加到 cloudconfigurationd
。
找到获取系统序列号的点。
在负载加密并发送之前将任意序列号注入内存中。
这种方法允许检索任意序列号的完整 DEP 配置文件,展示了潜在的漏洞。
利用 Python 和 LLDB API 自动化了利用过程,使得可以以编程方式注入任意序列号并检索相应的 DEP 配置文件。
研究突出了重大的安全隐患:
信息泄露:通过提供一个 DEP 注册的序列号,可以检索 DEP 配置文件中包含的敏感组织信息。
学习和实践 AWS 黑客技术: 学习和实践 GCP 黑客技术:
查看 !
加入 💬 或 或 在 Twitter 🐦 ** 上关注我们。**
通过向 和 GitHub 仓库提交 PR 分享黑客技巧。