微软研究人员在 macOS 系统中发现一个 TCC 绕过漏洞—— powerdir 。

文章插图
图 macOS TCC 设置
研究人员发现可以通过修改目标用户的 home 目录 , 并植入一个保存了 app 请求的同意历史的虚假 TCC 数据库 。 通过利用该漏洞 , 攻击者可以对用户受保护的个人数据进行工具 。 比如 , 攻击者可以劫持设备上安装的 APP 或安装自己的恶意 APP , 访问麦克风来记录隐私回话或获取用户屏幕上展示的敏感个人信息截图 。
Powerdir 漏洞
研究人员此前在 TCC 中发现过一个安全漏洞—— CVE-2020-9934 , 该漏洞是 $HOME 环境变量投毒漏洞 。 苹果公司发布的补丁在 tccd 的 _db_open 函数中:

文章插图
图 CVE-2020-9934 tccd 补丁
研究人员发现苹果公司没有扩展 $HOME 环境变量 , 而是在当前用户下调用 getpwuid ( ) 。 首先 , getpwuid 函数会从内存中提取 ( struct password* ) , 其中包含给定用户的信息 。 然后 , tccd 会从中提取 pwdir 成员 。 Pwdir 成员中包含用户的 home 目录 , 其值即使在 $HOME 环境变量被修改后仍然存在 。
【Powerdir:macOSTCC绕过漏洞】该方案确实可以预防环境变量投毒攻击 , 但是没有解决核心问题 。 研究人员通过 Directory Services command-line utility ( dscl ) 根据修改用户目录并植入一个虚假的 tcc.db 文件:
在需要 root 权限时 , 研究人员发现只有当 app 被收入 TCC 策略 kTCCServiceSystemPolicySysAdminFiles 时才可以工作 , 其中 kTCCServiceSystemPolicySysAdminFiles 是本地或特定用户的 TCC.db 维护的 。 虽然比全盘访问权限要弱 , 但是仍然可以绕过 TCC 的限制 。
然后可以到处用户的 Directory Services , 修改输出文件 , 并再次导入该文件 , 就可以成功绕过 dscl TCC 策略限制 。
因此 , 第一个 POC 漏洞利用如下:
获取目标 app 的 csreq blob;
植入一个具有所需访问权限和 csrqe blob 的虚假 TCC.db 文件;
导出用户的 Directory Services 记录;
修改 Directory Services 记录来修改用户的 home 目录;
导出修改后的 Directory Services 记录;
停止用户 tccd , 并重启进程 。
使用该漏洞利用攻击者可以修改应用的设置 。 如下图所示 , 该漏洞利用可以获取 Teams app 的麦克风和摄像头访问权限:

文章插图
图 PoC 利用 1
微软研究人员在 2021 年 7 月将该漏洞将该漏洞提交给苹果产品安全团队 。 10 月 , macOS Monterey 系统发布后 , 由于 disimport 工具工作原理的变化导致之前提交的 POC 漏洞利用无法工作 。 因此 , 研究人员开始寻求其他修改 home 目录的方式 。
研究人员在分析最新的 macOS 版本中发现一个负责配置本地系统的 System Configuration daemon —— /usr/libexec/configd 。 其中研究人员使用了 configd 的 3 个方面:
苹果签名的二进制文件—— com.apple.private.tcc.allow , 值为 kTCCServiceSystemPolicySysAdminFiles 。 意味着可以静默地修改 home 目录;
在配置代理方面具有可扩展性 , 也就是说可以加载的定制 Bundle , 可以进行代码注入;
在加载定制的配置代理时没有加固的运行时 flag , 也就是说可以使用未签名的代码来加载 。
- 刷机后怎么绕过激活锁? 苹果手机忘记id密码怎么重新设置
- qq怎么绕过答案加好友? qq加好友问题在哪里设置?
- 刷机后怎么绕过激活锁? 小米手机设备锁定怎么强制解除
- QQ阅读如何绑定手机,登qq怎么绕过手机验证?
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
