2021-05-27 10:59:0117647人阅读
近日,Jamf研究人员在XCSSET 恶意软件中发现了一个苹果TCC 0 day漏洞利用,攻击者利用该0 day漏洞可以绕过苹果的TCC安全保护。
在最新发布的macOS 11.4版本中,苹果修复了一个绕过TCC(Transparency Consent and Control,透明度同意和控制)框架的0 day漏洞利用——CVE-2021-30713。TCC是控制应用可以访问系统中的哪些资源的,比如授予软件对摄像头和麦克风的访问权限。攻击者利用该漏洞可以在无需用户明示同意的情况下获取硬盘的访问权限、录屏和其他权限。
Jamf研究人员分析发现XCSSET 也软件使用该漏洞利用来让TCC以在无需用户同意和权限的情况下实现用户桌面截屏。
Jamf研究人员在分析XCSSET 恶意软件样本时发现了一个名为screen_sim.applescript 的AppleScript模块。该模块中中有一个名为verifyCapturePermissions 的检查,并将应用ID作为一个参数。
研究人员查看日志发现,恶意AppleScript 模块好像在寻找有截图权限的应用。并且成功找到了这样的APP。
研究人员进一步分析verifyCapturePermissions 函数,发现该脚本在已安装的应用列表中检查截屏权限。该列表是来自对以下软件appID的较早检查,被恶意软件称为“ donorApps”。
被恶意软件攻击的目标应用程序ID列表是用户经常授予屏幕共享权限作为其正常工作一部分的所有应用程序。然后,该恶意软件使用以下mdfind命令检查受害者的设备上是否安装了appID。
如果在系统上找到任一个appID,该命令将返回已安装应用程序的路径。恶意软件利用这些信息可以制作一个自定义的AppleScript应用程序,并将其注入已安装的donor应用程序中。
脚本会按照以下顺序来执行动作:
1、从恶意软件作者的C2 服务器下载XCSSET AppleScript截屏模块到本地~/Library/Caches/GameKit 文件夹;
2、通过使用osacompile 命令将截屏模块转化称一个基于AppleScript的应用——avatarde.app。以这种方式编译任何AppleScript时,都会在新创建的应用程序捆绑包的/ Contents / MacOS /目录中放置一个名为“ applet”的可执行文件,并且该applet将要执行的脚本可以位于/ Contents / Resources / Scripts / main中。
3、然后,新创建的Info.plist将会被plutil二进制文件修改,将首选项设置LSUIElement修改为true。这一操作使得应用程序可以作为后台进程运行,对用户隐藏自己的存在。
4、然后下载一个空白图标,并将其应用于应用程序。
5、最后,使用如下代码将新创建的应用程序放置在现有的donor应用程序中:
例如,如果在系统上找到虚拟会议应用程序zoom.us.app,则恶意软件将自己放置在:
/Applications/zoom.us.app/Contents/MacOS/avatarde.app
如果受害计算机运行的是macOS 11或更高版本的macOS系统,则会用ad-hoc临时签名对avatarde应用进行签名,或用计算机本身对其进行签名。
所有文件放置到位后,应用程序将背离父应用程序,比如上例中的Zoom。也就是说,恶意应用程序可以无需用户的明确同意进行屏幕截图或录屏。因为其从父程序Zoom处继承了对应的TCC权限。这对终端用户来说是一个很大的隐私问题。
Jamf研究人员在测试过程中发现,该漏洞的利用其实并不局限于屏幕录像权限,可以将donor应用的权限转移到恶意APP中。
本文翻译自:https://www.jamf.com/blog/zero-day-tcc-bypass-discovered-in-xcsset-malware/