
macOS 通常被认为受到良好保护,这在很大程度上要归功于 Gatekeeper。然而,一些执行向量仍然在不同的信任模型下运作。基于 AppleScript 的 payload 就是其中之一,尽管需要用户交互,它们在实际的恶意软件活动中仍然非常有效。
有一个向量非常有趣,且特别受到恶意作者的青睐:.scpt 文件,它可以是 AppleScript 或 JavaScript (JXA)。它们是编译后的文件(可以认为是 osacompile 的产物,生成的文件只能使用 osacompile 或“脚本编辑器”进行解释和执行)。
这是一个 stage-0 加载器,它根据 macOS 版本的不同,从 URL 获取 payload 并执行。
.scpt 文件可以使用“脚本编辑器”通过点击“播放”按钮来执行。诚然,这需要受害者多执行一个操作,但它的优势在于能够绕过 macOS 最强大的安全机制之一。
在大多数情况下,恶意软件与其执行之间最大的障碍是什么?是 Gatekeeper。正如我刚才提到的,执行依赖于机器上已安装的 Apple 二进制文件。即使 Gatekeeper 仍然应用了隔离标志,“脚本编辑器”在执行时也不会考虑它。
即使处于隔离状态(MOTW,标记为来自互联网),该脚本仍然非常强大,没有任何提示,也不需要密码。
是的,它很强大,但谁会下载并执行来自互联网的脚本呢?谁告诉你它看起来必须像一个 .scpt 文件?这才是它真正变得危险的地方;
扩展名被隐藏了,图标被伪造了,文件名也被精心设计成看起来像一个 .pptx 文件。
我们甚至可以添加一个头部信息,使其看起来更可信;其目的是说服用户点击“播放”按钮或按下 Cmd + R。
请注意,此方法目前在 macOS 窃密软件活动中被积极使用,例如 starger0,其中的脚本会下载并执行另一个二进制文件。
一个小提示: 要使文件保持 hide-extension 属性和自定义图标,它必须被放在一个 ZIP 压缩包内。如果直接发送,邮件存储服务器不会保留文件属性,文件将失去其钓鱼元素。
另一种解决方案可以帮助缓解文件相关问题:可以通过链接来实现这一点,使用 AppleScript 深度链接:
这样做并非没有后果;它会增加一个额外的步骤:
这是在 Safari 中输入 URL 后发生的情况。
从 AppleScript 深度链接开始的完整攻击链:
./darwin_ops -G "Investor Profile Presentation (EN).scpt" -t CALC --scpt-phising-header --obfuscate --icon "PODP.icns" --hide-extension如果你想要相同的 payload 但作为深度链接,只需添加 --output-as-urlscheme 参数;这将在与 payload 相同的位置添加一个额外的文件。
与另一个 payload 完全相同,但以可发送的链接形式存在。
.urlscheme 文件的内容
你将继承“脚本编辑器”的 TCC 权限,因此要感染系统并收集敏感文件和目录,你还需要做更多工作。
你也可以看看这篇文章,它在某些点上更精确地讨论了同一个主题。FINISHED
CSD0tFqvECLokhw9aBeRqiAtBdroPKrTJORmTzK0GBjK10IzR+IUGtSeCvUBHNueJfE4wLVg2HhG4OenM6hYN0egy4r4ILOHmB954r36ctNDeylOtLReGlkcn3llwPvT
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。