作为一名学生,我能够测试此漏洞的设备有限。我目前测试过的版本包括 MacOS 12.3.1、MacOS 12.3、MacOS 12.0、MacOS 10.15.7 和 MacOS 11.6.1。该漏洞在所有测试版本上均有效。
影响:恶意应用程序可能能够绕过某些隐私偏好设置
描述:当可执行文件在运行时被删除,该进程能够绕过屏幕录制以及某些辅助功能设置的限制,即按键注入(使用 metasploit)。
可能的原因:macOS 无法找到该进程父可执行文件的权限,因此不会阻止屏幕录制。然而,令人困惑的是,摄像头和麦克风仍然被正确限制。
详情:
tccutil reset All 会显示权限提示——访问摄像头或麦克风时也会显示权限提示。在全新安装的 macOS 上有效。
运行 src/POC.sh 中的 POC 将生成一张屏幕截图,且不会出现 TCC 提示,截图包含用户可见的所有窗口。脚本有时可能需要运行多次(最多 3 次)才能生成截图。
此漏洞最初是我在使用 Metasploit 的 web delivery 进行实验时发现的。我发现,在 meterpreter shell 打开后立即删除投放的可执行文件,该 shell 能够获得通常受 TCC 提示保护的能力。此漏洞还允许攻击者注入按键。然而,我不是 Objective-C 开发者,因此未能创建自己的 POC。该效果仍可通过 Metasploit 实现。
src/POC.sh — Shell 脚本:复制 screenshot,执行它,并在其运行时将其删除。
src/screenshot — Mach-O 可执行文件:拍摄屏幕截图并保存到 src/screenshot.png。由 src/screenshot.m 编译而成。
src/screenshot.m — 基础代码致谢 theevilbit。我仅做的修改是在截图前添加了 3 秒的睡眠,以便在截图前有足够的时间删除可执行文件。