谷歌研究人员发现macOS漏洞利用。
谷歌研究人员在macOS系统中发现了一个安全漏洞——CVE-2021-30869。攻击者利用该漏洞可以以kernel权限执行任意代码。8月底,谷歌研究人员发现了该漏洞的0 day在野利用,本文详细介绍利用该0 day漏洞的攻击活动情况。
水坑攻击
研究人员在攻击者控制的服务器上发现了攻击中使用的网站中含有2个iframe,其中一个是iOS漏洞利用,一个是macOS漏洞利用。
iOS漏洞利用
iOS漏洞利用链使用基于Ironsquirrel的框架来加密传递到受害者浏览器的加密漏洞利用。研究人员尚未获得完整的iOS利用链,只发现攻击者利用CVE-2019-8506漏洞在Safari浏览器中实现代码执行。
macOS漏洞利用
macOS漏洞利用使用的框架与iOS不同。加载页中含有1个简单的HTML页面,可以加载2个脚本,一个是Capstone.js,一个是漏洞利用链。
脚本
参数rid 是一个全局计数器,会记录漏洞利用的尝试次数。研究人员发现该漏洞利用链时该计数器已经达到200了。
漏洞利用链开始时JS会在运行漏洞利用前检查访问者是否运行macOS Mojave (10.14)或Catalina (10.15)。研究人员用Mojave访问站点时只接收到一个未加密的漏洞利用链。
远程代码执行
通过在最新的Safari (14.1)浏览器版本上加载含有WebKit RCE的页面,研究人员发现并没有成功触发该漏洞利用。为验证该假设,研究人员运行git bisect,并确定目前已经修复。
沙箱逃逸和本地权限提升
Capstone.js
研究人员发现攻击者在漏洞利用链中使用了Capstone.js,而该js文件常被用于二进制文件分析。攻击者使用它来在内存中搜索dlopen和dlsym的地址。
capstone.js
Capstone.js的配置为X86-64而非ARM,因此可以推测目标硬件为基于Intel的Mac。
嵌入的Mach-O
WebKit RCE 成功执行后,嵌入的Mach-O二进制文件就会加载到内存中,修复并运行。通过分析,研究人员发现该二进制文件中含有可以逃逸Safari沙箱、进行权限提升、从C2下载第二阶段内容的代码。
Mach-O
提取的二进制文件进行了混淆。解码后的字符串如下所示:
解码后,研究人员发现其中含有从C2下载文件的代码。
在下载payload后,会移除文件的隔离属性以绕过检测。然后提升权限来安装payload。
为在虚拟环境下运行漏洞利用,研究人员在Python环境下写了一个加载器来实现以下功能:
◼加载Mach-O到内存中;
◼找到dlopen 和 dlsym的地址;
◼用dlopen 和 dlsym的地址填充内存中加载的Mach-O;
◼运行Mach-O时传递payload url作为参数。
MACMA Payload
权限提升到root后,下载的payload就会被加载并在受害者机器后台运行。Payload通过数据分发服务(DDS)框架与C2进行通信。其中含有多个组件,其中部分组件被配置成了模块。其中该后门的常见功能包括:
◼获取受害者指纹信息
◼截取用户屏幕
◼文件下载和上传
◼执行终端命令
◼录制音频
◼记录键盘输入
本文翻译自:https://blog.google/threat-analysis-group/analyzing-watering-hole-campaign-using-macos-exploits/如若转载,请注明原文地址