Elastic 安全实验室

超越哀嚎:解构 BANSHEE 信息窃取程序

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

阅读时长 10 分钟恶意软件分析
Beyond the wail: deconstructing the BANSHEE infostealer

前言

2024年8月,一款名为“BANSHEE 窃取程序”的新型 macOS 恶意软件出现,引起了网络安全界的关注。据报道,BANSHEE 窃取程序由俄罗斯威胁参与者开发,并在地下论坛发布,旨在同时支持 macOS x86_64 和 ARM64 架构。

这款恶意软件对 macOS 用户构成了严重威胁,其目标是重要的系统信息、浏览器数据和加密货币钱包。

BANSHEE 窃取程序每月订阅价格高达 3000 美元,在市场上脱颖而出,尤其与 AgentTesla 等已知窃取程序相比。

随着 macOS 越来越成为网络犯罪分子的主要目标,BANSHEE 窃取程序突显了 macOS 特定恶意软件的日益增多。本分析探讨了 BANSHEE 窃取程序的技术细节,旨在帮助社区了解其影响并及时了解新兴威胁。

关键要点

  • BANSHEE 窃取程序突显了 macOS 恶意软件样本数量的增长,因为该操作系统正成为网络威胁的更具吸引力的目标。
  • 与基于 Windows 的窃取程序相比,BANSHEE 窃取程序的 3000 美元月费非常高。
  • BANSHEE 窃取程序针对各种浏览器、加密货币钱包和大约 100 个浏览器扩展程序,使其成为一种用途广泛且危险的威胁。

恶意软件分析

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

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

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

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

BANSHEE 窃取程序使用基本技术来逃避检测。它利用 sysctl API 检测调试。

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

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

系统信息收集

用户密码

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

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

如果有效,密码将写入以下文件 /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
  • 笔记数据库

  • 来自桌面和文档文件夹中,具有以下扩展名的文件 .txt.docx.rtf.doc.wallet.keys.key

转储钥匙串密码

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

浏览器数据收集

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

  • Chrome
  • Firefox
  • Brave
  • Edge
  • Vivaldi
  • Yandex
  • Opera
  • OperaGX

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

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

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

钱包数据收集

  • Exodus
  • Electrum
  • Coinomi
  • Guarda
  • Wasabi Wallet
  • Atomic
  • Ledger

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

数据泄露

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

行为检测

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 窃取器是基于 macOS 的恶意软件,可以从系统、浏览器、加密货币钱包和众多浏览器扩展程序中收集大量数据。尽管其功能可能非常危险,但该恶意软件缺乏复杂的混淆,并且存在调试信息,这使得分析师更容易对其进行剖析和理解。虽然 BANSHEE 窃取器的设计并非过于复杂,但其专注于 macOS 系统以及收集的数据范围使其成为一项重大威胁,需要网络安全界予以关注。

可观察指标

所有可观察指标也可在 此处 以 ECS 和 STIX 格式下载,并打包在一个压缩包中。

本研究中讨论了以下可观察指标。

可观察指标类型名称参考
11aa6eeca2547fcf807129787bec0d576de1a29b56945c5a8fb16ed8bf68f782SHA-256BANSHEE 窃取器
45.142.122[.]92ipv4-addrBANSHEE 窃取器 C2