今天小编分享的互联网经验:Satacom通过浏览器扩展窃取加密货币,欢迎阅读。
Satacom 下载程式,也称为 LegionLoader,是 2019 年出现的一个著名的恶意軟體家族。该恶意軟體利用查询 DNS 伺服器的技术获取 base64 编码的 URL,以便接收当前由 Satacom 传播的另一恶意軟體家族的下一阶段。Satacom 恶意軟體通过第三方网站传播,其中一些网站本身不提供 Satacom,而是使用合法的广告插件,攻击者滥用这些插件将恶意广告注入网页。网站上的恶意链接或广告将用户重定向到恶意网站,如虚假的檔案共享服务。
我们将在本文介绍最近与 Satacom 下载程式相关的恶意軟體传播活动。Satacom 下载程式释放的恶意軟體的主要目的是通过对目标加密货币网站进行 web 注入,从受害者的账户中窃取比特币。该恶意軟體试图通过为基于 Chromium 的网络浏览器安装扩展来实现这一点,该浏览器随后与 C2 伺服器通信,其地址存储在比特币交易数据中。
该恶意扩展具有各种 JS 脚本,用于在用户浏览目标网站时执行浏览器操作,包括枚举和对加密货币网站的操作。它还能够操作一些电子邮件服务的外观,如 Gmail、Hotmail 和雅虎,以隐藏其与电子邮件中显示的受害者加密货币的活动。
Satacom 技术分析
最初的攻击始于 ZIP 压缩檔案。它是从一个似乎模仿軟體门户的网站下载的,该网站允许用户免费下载他们想要的(通常是破解的)軟體。该压缩包包含几个合法 DLL 和一个恶意 Setup.exe 檔案,用户需要手动执行这些檔案才能启动攻击链。
各种类型的网站被用来传播恶意軟體。其中一些是带有硬编码下载链接的恶意网站,而另一些则通过合法的广告插件注入了 " 下载 " 按钮。在这种情况下,即使是合法的网站也可能在网页上显示恶意的 " 下载 " 链接。在撰写本文时,我们看到 QUADS 插件被滥用来传播 Satacom。
带有嵌入式 QUADS 广告插件的网站
该插件被滥用的方式与其他广告网络被滥用恶意广告的方式相同:攻击者推广看起来像 " 下载 " 按钮的广告,并将用户重定向到攻击者的网站。
WP QUADS 广告插件内的网站的内容
用户点击下载按钮或链接后,会有一系列重定向,自动引导他们通过各种伺服器到达伪装成檔案共享服务的网站,以传播恶意軟體。在下面的截屏中,我们可以看到作为重定向链最终目的地的网站示例。
虚假 " 檔案共享 " 服务
用户下载并提取大约 7MB 大小的 ZIP 檔案后,会显示一些二进制檔案、EXE 和 DLL 檔案。DLL 是合法的库,但 "Setup.exe" 檔案是恶意二进制檔案。它大约是 450MB,但是填充了大量空字节,使其更难以分析。未添加空字节的檔案的原始大小约为 5MB,它是一个 Inno-Setup 类型的檔案。
添加到 PE 檔案的空字节
Inno-Setup 安装程式通常是这样的:在运行时,二进制檔案将子安装程式提取到一个名为 "Setup.tmp" 的临时檔案夹中。然后,它运行子安装程式 "Setup.tmp" 檔案,该檔案需要与主安装程式通信,参数指向原始 "Setup.exe" 及其包的位置,以便检索用于下一步安装的 "Setup.exe" 檔案。
对于 Satacom 安装程式来说,Setup.tmp 檔案一旦运行,就会在 Temp 目录中创建一个新的 PE DLL 檔案。创建 DLL 后,子安装程式将其进行自我加载,并从 DLL 运行一个函数。
然后,它解密 Satacom 的有效负载,并创建一个新的 "explorer.exe" 子进程,以便将恶意軟體注入 "explorer.exe" 进程。
由此,研究人员可以得出结论,恶意軟體在远程 "explorer.exe" 进程上执行一种常见的进程注入技术,称为进程空心化(process hollowing)。这是一种用于逃避检测的技术。
注入 "explorer.exe" 进程的恶意负载使用 RC4 加密实现来解密其配置数据,通信字元串以及受害者设备上其他释放的二进制檔案的数据,加密的数据存储在恶意负载中。
恶意軟體在每一步都使用不同的硬编码密钥来解密数据。恶意軟體使用四个不同的 RC4 密钥来执行其操作,首先解密 HEX 字元串数据,将其用于其初始通信目的。
RC4 密钥(左图)和加密的 HEX 字元串(右图)
在上面的截屏中,左侧窗格将四个 RC4 硬编码密钥显示为 HEX 字元串,在右侧窗格中,我们可以看到使用 RC4"config_strings" 密钥解密的 HEX 字元串以获得用于与 C2 通信的第一次初始化的字元串。如果我们自己使用密钥解密字元串,我们会得到截屏中显示的结果。
一旦 HEX 字元串被解密,"explorer.exe" 将启动其第一次通信。为此,它通过 Google DNS(8.8.8.8,另一个解密的字元串)执行对 don-DNS [ . ] com(解密的 HEX 字元串)的 DNS 请求,并查询 TXT 记录。
通过谷歌在 don-dns [ . ] com 上查询 TXT 记录
一旦请求完成,DNS TXT 记录将作为另一个 base64 编码的 RC4 加密字元串 "ft/gGGt4vm96E/jp" 接收。由于我们拥有所有的 RC4 密钥,我们可以尝试使用 "dns_RC4_key" 解密字元串,并获得另一个 URL。这个 URL 是有效负载的实际下载位置。
TXT 记录的解密字元串
有效负载:恶意浏览器扩展
Satacom 下载程式将各种二进制檔案下载到受害者的设备上。在本次活动中,研究人员观察到一个 PowerShell 脚本正在下载,该脚本安装了一个恶意的基于 Chromium 的浏览器扩展,该扩展针对 Google Chrome、Brave 和 Opera。
扩展安装脚本负责从第三方网站伺服器下载 ZIP 压缩檔案中的扩展。PowerShell 脚本将压缩檔案下载到计算机的 Temp 目录,然后将其提取到 Temp 目录中的檔案夹中。
之后,脚本将在 " 桌面 "、" 快速启动 " 和 " 开始菜单 " 等位置搜索每个目标浏览器的快捷方式的可能位置。它还配置浏览器安装檔案的位置和扩展插件在计算机上的位置。
最后,PS 脚本将依次搜索上述位置的任何链接(.LNK)檔案,并修改所有现有浏览器快捷方式的 "Target" 参数,标记为 "-load extension= [ pathOfExtension ] ",以便快捷方式加载安装了恶意扩展的浏览器。
带有扩展参数的 Chrome 快捷方式
执行此操作后,脚本将关闭设备上可能运行的任何浏览器进程,以便受害者下次打开浏览器时,扩展程式将加载到浏览器中,并在用户浏览互联网时运行。
这种扩展安装技术允许攻击者在不知情的情况下将插件添加到受害者的浏览器中,而无需将其上传到官方扩展商店,如 Chrome 商店,该商店要求插件满足商店的要求。
扩展安装 PowerShell 脚本
恶意扩展分析
安装扩展后,我们可以通过检查存储在扩展目录中的特定檔案来分析其功能和特性。如果我们看一下 'manifest.json' 檔案的第一行,我们会发现扩展插件通过将插件命名为 "Google Drive" 来伪装自己,所以即使用户访问浏览器插件,他们也只能看到一个名为 "Google Drive" 的插件,它看起来就像是安装在浏览器中的另一个标准 Google 扩展插件。
manifest.json 檔案設定
当用户浏览时,另一个总是在后台运行的恶意扩展檔案是 "background.js",它负责初始化与 C2 的通信。如果我们仔细查看 JavaScript 代码,我们会在脚本底部发现一个有趣的函数调用,其中包含一个字元串变量,该变量是比特币钱包的地址。
Background.js 脚本片段
查看脚本的代码,我们可以得出结论,扩展将从硬编码的 URL 中获取另一个字元串,脚本将比特币地址插入其中。JavaScript 接收 JSON 格式的数据,显示钱包的交易活动,然后在最新的交易详细信息中查找特定的字元串。
详细 JSON
页面上有两个字元串,其中包含 C2 地址。"script" 字元串是包含恶意軟體 C2 主机的 HEX 字元串,"addr" 字元串是 Base58 编码的 C2 地址。使用特定钱包的最后一笔加密货币交易来检索 C2 地址的原因是,攻击者可以随时更改伺服器地址。此外,这种技巧使禁用恶意軟體与其 C2 伺服器的通信变得更加困难,因为禁用钱包比阻止或禁止 IP 或網域要困难得多。如果 C2 伺服器被阻止或关闭,攻击者可以通过执行新事务将 "script" 或 "addr" 字元串更改为不同的 C2 伺服器。由于扩展总是检查这些字元串来检索 C2,因此如果它发生了更改,它总是会请求新的字元串。
从交易明细中解码 C2 地址
该扩展有几个其他脚本,它们负责初始化接收到的命令,并在检索到 C2 地址后发挥作用,因为这些脚本需要从 C2 获得一些重要信息。例如,C2 保存比特币地址,当比特币从受害者的钱包转移到攻击者的钱包时将使用该地址。
攻击者的比特币钱包地址
为了获得受害者的加密货币,攻击者在目标网站上使用 web 注入。web 注入脚本也是 C2 在扩展与之联系后提供的。在下面的截屏中,我们可以看到来自扩展的 "injections.js" 脚本,它从 C2 伺服器获取 web 注入脚本。
injections.js 脚本
在插件与 C2 伺服器联系后,伺服器会使用将在目标网站上使用的 web 注入脚本进行响应。
C2 伺服器的 Webinject 脚本
如果我们仔细看一下脚本,就可以看到攻击者针对的是各种网站。在上面显示的脚本版本中,我们可以看到它针对的是 Coinbase, Bybit, KuCoin, Huobi 和 Binance 用户。
由于 C2 中的脚本可以随时更改,攻击者可以添加或删除其他 web 注入目标,也可以开始以比特币以外的加密货币为目标,这使得该扩展非常动态,并允许攻击者通过更改脚本来控制恶意扩展。
查看脚本,我们可以看到扩展在目标网站上执行各种操作。例如,它能够检索受害者的地址、获取账户信息、绕过 2FA 等等。此外,它能够将比特币从受害者的钱包转移到攻击者的钱包。
web 注入脚本中的函数
查看完整的 web 注入脚本,我们可以得出结论,其思路是从安装了恶意扩展的受害者那里窃取比特币。该扩展程式对账户执行各种操作,以便使用 web 注入脚本远程控制账户,最终该扩展程式试图将比特币提取到攻击者的钱包中。为了规避交易的双因素身份验证設定,web 注入脚本使用了针对此保护技术的绕过技术。
从 web 注入脚本中提取比特币函数的代码段
在窃取加密货币之前,扩展程式与 C2 伺服器进行通信,以获得最小比特币值。然后,它将这个值与目标钱包中的实际金额进行比较。如果钱包中包含的加密货币少于 C2 收到的最低金额,则不会从中提取任何加密货币。
C2 的最小金额
在窃取比特币之前,该脚本还执行其他几项检查。例如,它还检查比特币与美元的汇率。当目标钱包中的比特币金额符合 C2 检查时,脚本执行取款功能,从受害者那里窃取比特币。
执行余额检查
除了窃取比特币之外,恶意扩展还会执行其他操作来隐藏其活动。
例如,恶意扩展包含针对三种不同电子邮件服务的脚本:Gmail、Hotmail 和 Yahoo,其思路是隐藏恶意扩展执行的交易的电子邮件确认。
一旦受害者到达电子邮件服务的页面,每个脚本都会对电子邮件进行可视化更改。它搜索预定义的电子邮件标题和内容,当找到它们时,它只需通过将 HTML 代码注入邮件正文来向受害者隐藏它们。因此,受害者不知道进行了将加密货币转移到攻击者钱包的特定交易。
针对 Gmail 的扩展 JS
此外,该扩展程式可以操作目标网站的电子邮件线程。因此,如果受害者从 Binance 等网站打开一个线程,它可以更改电子邮件的内容,并显示一个看起来与真实电子邮件线程完全相似的虚假电子邮件线程。它还包含所需字元串的占位符,扩展插件可以将这些字元串注入到消息页面的内容中。
伪造电子邮件线程模板
恶意扩展有许多其他 JavaScript,它能够执行其他操作。例如,它可以通过浏览器提取信息,如系统信息、cookie、浏览器历史记录、打开的选项卡的截屏,甚至可以接收来自 C2 伺服器的命令。
JavaScript:从 C2(左图)请求命令并进行截屏(右图)
扩展的目的是窃取比特币并操作目标加密货币网站和电子邮件服务,使恶意軟體尽可能隐秘进行,这样受害者就不会注意到任何有关欺诈交易的信息。由于用于通过特定比特币钱包的最后一笔交易检索 C2 伺服器的技术,该扩展可以更新其功能,该技术可以随时通过对该钱包进行另一笔交易来修改。这允许攻击者将網域 URL 更改为其他 URL,以防被杀毒軟體禁止或阻止。
受害者分析
此活动针对世界各地的个人用户,根据观察,2023 年第一季度,以下国家的用户最常被攻击:巴西、阿尔及利亚、土耳其、越南、印度尼西亚、印度、埃及和墨西哥。
总结
Satacom 是一个下载程式,它仍在运行活动,并由背后的攻击者开发。这个攻击者继续使用各种技术传播恶意軟體家族,例如通过 WordPress 网站的广告插件进行广告注入。
最近传播的恶意軟體是基于 Chromium 的浏览器的侧载扩展,它在浏览器中执行操作,以操作目标加密货币网站的内容。这种恶意扩展的主要目的是从受害者那里窃取加密货币,并将其转移到攻击者的钱包中。
此外,由于它是一个浏览器扩展,因此可以安装在各种平台上基于 Chromium 的浏览器中。尽管本文中描述的恶意扩展的安装和攻击链是特定于 Windows 的,但如果攻击者想要针对 Linux 和 macOS 用户,只要受害者使用基于 Chromium 的浏览器,他们就可以很容易发起攻击。