Elastic Security Labs

超越哀号:解构 BANSHEE 信息窃取者

BANSHEE 恶意软件是一款基于 macOS 的信息窃取程序,专门窃取系统信息、浏览器数据和加密货币钱包。

阅读时间:10 分钟恶意软件分析
超越哀号:解构 BANSHEE 信息窃取程序

前言

In August 2024, a novel macOS malware named "BANSHEE Stealer" emerged, catching the attention of the cybersecurity community. Reportedly developed by Russian threat actors, BANSHEE Stealer was introduced on an underground forum and is designed to function across both macOS x86_64 and ARM64 architectures.

该恶意软件对 macOS 用户构成严重风险,针对重要系统信息、浏览器数据和加密货币钱包。

BANSHEE Stealer 的月订阅费高达 3,000 美元,在市场上脱颖而出,尤其是与 AgentTesla 等知名窃取软件相比。

随着 macOS 日益成为网络犯罪分子的主要目标,BANSHEE Stealer 凸显了针对 macOS 的恶意软件日益受到关注。 本分析探讨了 BANSHEE Stealer 的技术细节,旨在帮助社区了解其影响并随时了解新出现的威胁。

关键要点

  • BANSHEE Stealer 强调,随着 macOS 操作系统成为网络威胁越来越具吸引力的目标,其恶意软件样本数量也在不断增加。
  • 与基于 Windows 的窃取程序相比,BANSHEE Stealer 每月 3,000 美元的价格明显较高。
  • BANSHEE Stealer 针对多种浏览器、加密货币钱包以及大约 100 浏览器扩展程序,因此它是一种用途极为广泛且危险的威胁。

恶意软件分析

我们在本研究中分析的恶意软件包含所有 C++ 符号,这很有趣,因为我们可以通过了解这些源代码文件名来猜测项目的代码结构,如下图所示。 查看 C++ 生成的全局变量初始化函数,我们可以找到用户在构建过程中自动/手动设置的值,例如远程 IP、加密密钥、构建 ID 等。

下表通过二进制文件中的符号总结了泄露的.cpp文件名。

文件名描述
Controller.cpp管理核心执行任务,包括反调试措施、语言检查、数据收集和泄露。
Browsers.cpp处理来自各种网络浏览器的数据收集。
System.cpp执行 AppleScript 来收集系统信息并进行密码网络钓鱼。
Tools.cpp提供加密、目录创建和压缩等实用功能。
Wallets.cpp负责从加密货币钱包收集数据。

调试器、虚拟机检测和语言检查

BANSHEE Stealer 使用基本技术来逃避检测。 它利用sysctl API 来检测调试。

对于虚拟化检测,它运行命令system_profiler SPHardwareDataType | grep 'Model Identifier'来确定字符串Virtual是否出现在硬件模型标识符中,这表明是虚拟机。 这些方法相对简单,可以被高级沙箱和恶意软件分析师轻松规避。

此外,它还会解析从CFLocaleCopyPreferredLanguages API 返回的用户首选规范语言并查找字符串ru 。 这种策略有助于恶意软件避免感染以俄语为主要语言的系统。

系统信息收集

用户密码

该恶意软件会创建一个Osascript密码提示,并出现一个对话框,提示您要启动该应用程序,需要更新系统设置。 请输入您的密码。

当用户输入密码时,将通过运行dscl Local/Default -authonly <username> <password>使用dscl命令进行验证

如果有效,密码将被写入以下文件/Users/<username>/password-entered

这些凭证可以用来解密系统上存储的钥匙串数据,从而授予对所有已保存密码的访问权限。

文件、软件和硬件信息收集

函数System::collectSystemInfo收集系统信息并将其序列化为 JSON 对象。 它执行命令system_profiler SPSoftware DataType SPHardwareDataType ,提供有关系统软件和硬件的详细信息。 它通过内置的 macOS cURL命令向freeipapi.com请求来获取机器的公共 IP。

JSON 文件将保存在 <temporary_path>/system_info.json

BANSHEE 窃取程序执行 AppleScript;有趣的是,它将 AppleScript 写入同一个文件/tmp/tempAppleScript

第一个要执行的脚本首先使用osascript -e 'set volume with output muted'命令将系统声音静音。 然后它从系统中收集各种文件,如下所示:

  • Safari 的 Cookie
  • Notes 数据库
  • 来自桌面和文档文件夹的具有以下扩展名.txt.docx.rtf.doc.wallet.keys.key的文件。

转储钥匙串密码

它将系统/Library/Keychains/login.keychain-db的钥匙串复制到<temporary_path>/Passwords

浏览器集合

BANSHEE 目前从 9 种不同的浏览器收集数据,包括浏览器历史记录、cookie、登录信息等:

  • 铬合金
  • 火狐
  • 勇敢的
  • Edge
  • Vivaldi
  • Yandex
  • 歌剧
  • 歌剧

对于 Safari,当前版本仅通过 AppleScript 脚本收集 cookie。

此外,还会从机器收集大约 100 浏览器插件的数据。 博客文章末尾提供了这些扩展 ID 的列表。

收集的文件保存在<temporary_path>/Browsers下。

钱包收藏

  • Exodus
  • 琥珀金
  • Coinomi
  • Guarda
  • 芥末钱包
  • 原子
  • 总帐

收集到的钱包存储在<temporary_path>/Wallets下。

渗漏

恶意软件完成数据收集后,首先使用ditto命令对临时文件夹进行 ZIP 压缩。 然后对 zip 文件进行 XOR 加密和 base64 编码,并使用内置的 cURL 命令通过 post 请求发送到 URL: http://45.142.122[.]92/send/

行为检测

YARA 规则

Elastic Security 已创建 YARA 规则来识别此活动。 以下是识别 BANSHEE 恶意软件的 YARA 规则:

rule Macos_Infostealer_Banshee {
    meta:
        author = "Elastic Security"
        creation_date = "2024-08-13"
        last_modified = "2024-08-13"
        os = "MacOS"
        arch = "x86, arm64"
        category_type = "Infostealer"
        family = "Banshee"
        threat_name = "Macos.Infostealer.Banshee"
        license = "Elastic License v2"

    strings:
        $str_0 = "No debugging, VM, or Russian language detected." ascii fullword
        $str_1 = "Remote IP: " ascii fullword
        $str_2 = "Russian language detected!" ascii fullword
        $str_3 = " is empty or does not exist, skipping." ascii fullword
        $str_4 = "Data posted successfully" ascii fullword
        $binary_0 = { 8B 55 BC 0F BE 08 31 D1 88 08 48 8B 45 D8 48 83 C0 01 48 89 45 D8 E9 }
        $binary_1 = { 48 83 EC 60 48 89 7D C8 48 89 F8 48 89 45 D0 48 89 7D F8 48 89 75 F0 48 89 55 E8 C6 45 E7 00 }
    condition:
        all of ($str_*) or all of ($binary_*)
}

结论

BANSHEE Stealer 是一种基于 macOS 的恶意软件,可以从系统、浏览器、加密货币钱包和众多浏览器扩展中收集大量数据。 尽管该恶意软件具有潜在的危险能力,但由于缺乏复杂的混淆技术以及调试信息的存在,分析师可以更轻松地剖析和理解它。 虽然 BANSHEE Stealer 的设计并不太复杂,但它对 macOS 系统的关注以及它收集的数据广度使其成为一个重大威胁,需要网络安全界的关注。

Observables

所有可观察数据均可通过组合 zip 包以 ECS 和 STIX 格式下载

本研究讨论了以下可观察的结果。

Observable类型名称参考
11aa6eeca2547fcf807129787bec0d576de1a29b56945c5a8fb16ed8bf68f782SHA-256BANSHEE 窃贼
45.142.122[.]92IPv4 地址BANSHEE 窃贼 C2