当前位置: 首页 > 科技观察

MacOS七大常见混淆技术

时间:2023-03-13 00:50:03 科技观察

MacOS平台威胁与日俱增,攻击者越来越关注针对平台用户的攻击。本文将介绍macOS上的七种常见混淆技术。混淆的Shell脚本Shell脚本可能是Linux平台上最常见的恶意文件,在macOS上也紧随其后。许多恶意软件包括shell脚本作为应用程序中的可执行文件,如下所示。混淆shell脚本还有攻击者直接将脚本嵌入到镜像文件中,通过别名诱导用户执行:当文件中的脚本安装镜像文件时,会看到并教育用户打开恶意软件并绕过内置Gatekeeper安全机制。提示信息要求用户点击的安装PKG图标实际上是隐藏目录.hidden中一个shell脚本的别名。该脚本经过轻微混淆,在/tmp目录下创建一个随机12个字符的目录后,完成反混淆执行,删除同目录数据文件中提取的可执行文件:/bin/bash-ceval'$(echo'opensslenc-aes-256-cbc-d-A-base64-k\'$archive\'-in\'$appDir/$archive\'-out\'$tmpDir/$binFile\'xattr-c\'$tmpDir/\'*chmod777\'$tmpDir/$binFile\'\'$tmpDir/$binFile\'&&rm-rf$tmpDir')'混淆SHCShellScriptCompiler是将Bash脚本编译成可执行文件执行的技术文件,虽然这些可执行文件不能完全独立,但仍然需要在执行环境中包含一个指定的Shell。ShellScriptCompilerSHC的-U参数可以使编译后的二进制文件无法被ptrace跟踪,-e参数支持设置程序终止运行的截止日期。如果使用不同的-e参数,相同的脚本可以生成具有不同哈希值的二进制文件。ShellScriptCompilerSHC被SCSSET恶意软件大量使用,并且它的样本一直在野外被发现。从攻击者的角度来看,编写静态分析无法读取的恶意脚本变得非常简单。而且通过-e参数可以无限生成不同hash值的样本文件。Shell脚本编译器会发现SHC编译的二进制文件,而观察其行为的唯一方法是通过沙盒执行。静态检测发现SHC编译的二进制文件时,可以认为是可疑的,编译器生成的唯一字符串也有利于检测,但实际上只有通过执行才能准确区分是否是恶意的。混淆的Python脚本Apple已经在Monterey12.3及更高版本的macOS设备上删除了对Python2.7的支持,因此针对macOS平台的攻击者已经失去了对Python的热情。混淆Python脚本将Python脚本打包成.pyc编译的Mach-O文件仍然是一个现存的攻击向量,更常见的是使用多种base64编码混淆Meterpreter等框架,足以绕过很多检测引擎。混淆的Python脚本混淆的CobaltStrikeCobaltStrike在Windows平台上很常见,在macOS上不太常见,但并非完全没有。2021年9月,OSX.Zuru针对使用iTerm2、MSRemoteDesktopforMac、SecureCRT和Navicat14的用户发起了供应链攻击。该恶意软件使用UPX打包并解压为用C编写的Mach-O文件。可执行文件为混淆并包含超过40,000个垃圾函数。同样的混淆方式后来也出现在针对PyPI的pymafka供应链攻击中。混淆的CobaltStrike这种混淆技术可以通过二进制段的熵和散列来识别。例如__cstring段的MD5哈希值为c5a055de400ba07ce806eabb456adf0a,其熵值也可用于静态识别特征:Python要长。近年来,苹果已经不再过多关注它,但仍然通过TCC等其他机制对其进行限制。混淆的AppleScriptAppleScript可以通过只运行选项生成几乎不可逆的编译代码。在野外发现的恶意软件之一是使用四字节十六进制字符编码将一个只运行的脚本嵌入到另一个脚本中。混淆的AppleScript脚本无法使用内置工具反编译,需要动态分析或手动逆向工程。对于静态检测,您可以检测嵌入的十六进制字符和标记AppleScript块结尾的幻数:FADEDEAD。Poseidon恶意软件Poseidon是攻击框架Mythic的Golang版本,允许攻击者操纵受感染的主机。最近备受瞩目的攻击是针对Rust开发社区的CreateDepression供应链攻击。左侧为Poseidon恶意软件源代码,右侧为反汇编代码。Poseidon支持在攻击者和被攻陷主机之间发送和接收文件,也支持获取击键记录、截图和持久化。已编译的Poseidon二进制文件中的字符串具有易于检测的独特特征。Sliver恶意软件开源框架Sliver越来越多地用于通过DNS、HTTPS、双向TLS和Wireguard为攻击者提供C&C通道。Sliver二进制文件可以大到10MB或更大,虽然Sliver本身不支持混淆或打包,但在野外发现了原始和自定义的UPX打包方案。SliverMalware,一种最近发现的macOS恶意软件,它伪装成Apple软件更新二进制文件并存在于用户的LibraryLaunchAgents文件夹中。该攻击避开了任何Apple专有软件,并使用了各种免费提供的工具(UPX、MacDriver和Platypus)。结语上面介绍的混淆机制并不是全部,攻击者也在不断改进,研究越来越多更高级的混淆方法,比如Pirrit、Adload、SliverSparrow。Apple仍在努力阻止各种绕过Gatekeeper安全设置的下载,预计未来会有更多恶意软件在初始加载中嵌入后续的Payload,并融入更多的混淆和规避技术。