Powerdir:macOS TCC绕过漏洞 - 嘶吼 RoarTalk – 回归最本质的信息安全,互联网安全新媒体,4hou.com

Powerdir:macOS TCC绕过漏洞

ang010ela 漏洞 2022-01-13 11:49:08
收藏

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

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

微软研究人员在macOS系统中发现一个安全漏洞——powerdir,漏洞CVE编号CVE-2021-30970。攻击者利用该漏洞可以绕过macOS操作系统的TCC(Transparency, Consent, and Control)技术,实现对用户受保护数据的非授权访问。

TCC

TCC是苹果2012年在macOS Mountain Lion系统中引入的新功能,旨在帮助用户配置应用的隐私设置,比如访问设备摄像头、麦克风、位置、访问用户日历或iCloud账户等。为保护TCC,苹果引入了一个预防非授权的代码执行的新特征和强制执行的策略将对TCC的访问限制为具有全盘访问权限的应用。TCC维护者一个包含app请求同意历史的数据库。

Screenshot of the Security & Privacy pane on macOS

图 macOS TCC设置

研究人员发现可以通过修改目标用户的home目录,并植入一个保存了app请求的同意历史的虚假TCC数据库。通过利用该漏洞,攻击者可以对用户受保护的个人数据进行工具。比如,攻击者可以劫持设备上安装的APP或安装自己的恶意APP,访问麦克风来记录隐私回话或获取用户屏幕上展示的敏感个人信息截图。

Powerdir漏洞

研究人员此前在TCC中发现过一个安全漏洞——CVE-2020-9934,该漏洞是$HOME环境变量投毒漏洞。苹果公司发布的补丁在tccd的_db_open函数中:

Screenshot of the tccd fix for CVE-2020-9934 

图 CVE-2020-9934 tccd补丁

研究人员发现苹果公司没有扩展$HOME环境变量,而是在当前用户下调用getpwuid()。首先,getpwuid函数会从内存中提取(struct password*),其中包含给定用户的信息。然后,tccd会从中提取pwdir成员。Pwdir成员中包含用户的home 目录,其值即使在$HOME 环境变量被修改后仍然存在。

该方案确实可以预防环境变量投毒攻击,但是没有解决核心问题。研究人员通过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的麦克风和摄像头访问权限:

Screenshot of the working exploit

图 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,也就是说可以使用未签名的代码来加载。

在配置configd时,攻击者可以通过-t 选项指定要加载的定制的Bundle。通过configd代码注入的方式来修改用户的home 目录。PoC 2视频如下所示:

https://www.microsoft.com/en-us/videoplayer/embed/RWRqyn

补丁

苹果公司已于12月13日发布了该漏洞的安全更新,研究人员建议macOS用户尽快安装更新补丁。

本文翻译自:https://www.microsoft.com/security/blog/2022/01/10/new-macos-vulnerability-powerdir-could-lead-to-unauthorized-user-data-access/如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论