后门和 Buhtrap 加密器使用 Yandex.Direct 进行分发

要针对网络攻击中的会计师,您可以使用他们在线搜索的工作文档。 这大致就是一个网络组织在过去几个月里一直在做的事情,传播已知的后门。 Bhuhtrp и RTM,以及用于窃取加密货币的加密器和软件。 大多数目标位于俄罗斯。 该攻击是通过在 Yandex.Direct 上投放恶意广告来实施的。 潜在受害者被引导至一个网站,要求他们下载伪装成文档模板的恶意文件。 在我们发出警告后,Yandex 删除了恶意广告。

Buhtrap 的源代码过去曾在网上泄露,因此任何人都可以使用它。 我们没有有关 RTM 代码可用性的信息。

在这篇文章中,我们将告诉您攻击者如何使用 Yandex.Direct 分发恶意软件并将其托管在 GitHub 上。 这篇文章将以对该恶意软件的技术分析作为结束。

后门和 Buhtrap 加密器使用 Yandex.Direct 进行分发

Buhtrap 和 RTM 恢复营业

传播机制和受害者

传递给受害者的各种有效负载共享共同的传播机制。 攻击者创建的所有恶意文件都被放置在两个不同的 GitHub 存储库中。

通常,该存储库包含一个可下载的恶意文件,该文件经常更改。 由于您可以查看 GitHub 上存储库的更改历史记录,因此我们可以了解在特定时期内分发了哪些类型的恶意软件。 为了说服受害者下载恶意文件,使用了网站 Blanki-shabloni24[.]ru,如上图所示。

该网站的设计和所有恶意文件的名称都遵循一个概念 - 表单、模板、合同、样本等。考虑到 Buhtrap 和 RTM 软件过去已被用于针对会计师的攻击,我们假设新战役中的策略是相同的。 唯一的问题是受害者如何到达攻击者的站点。

感染

至少有几个最终访问该网站的潜在受害者是被恶意广告吸引的。 下面是一个示例 URL:

https://blanki-shabloni24.ru/?utm_source=yandex&utm_medium=banner&utm_campaign=cid|{blanki_rsya}|context&utm_content=gid|3590756360|aid|6683792549|15114654950_&utm_term=скачать бланк счета&pm_source=bb.f2.kz&pm_block=none&pm_position=0&yclid=1029648968001296456

正如您从链接中看到的,该横幅发布在合法的会计论坛 bb.f2[.]kz 上。 值得注意的是,这些横幅出现在不同的网站上,都具有相同的活动 ID (blanki_rsya),并且大多数与会计或法律援助服务相关。 该 URL 显示潜在受害者使用了“下载发票表格”请求,这支持了我们有针对性的攻击的假设。 以下是出现横幅的网站以及相应的搜索查询。

  • 下载发票表格 – bb.f2[.]kz
  • 合同样本 - Ipopen[.]ru
  • 应用程序投诉样本 - 77metrov[.]ru
  • 协议表格 - Blank-dogovor-kupli-prodazhi[.]ru
  • 法庭请愿书样本 - zen.yandex[.]ru
  • 投诉样本 - yurday[.]ru
  • 样本合同表格 – Regforum[.]ru
  • 合同形式 – assisticus[.]ru
  • 公寓协议样本 – ​​napravah[.]com
  • 法律合同样本 - avito[.]ru

Blanki-shabloni24[.]ru 站点可能已配置为通过简单的视觉评估。 通常情况下,指向具有 GitHub 链接的专业网站的广告看起来并不是什么明显的坏事。 此外,攻击者仅在有限的时间内(可能是在活动期间)将恶意文件上传到存储库。 大多数时候,GitHub 存储库包含空的 zip 存档或空白的 EXE 文件。 因此,攻击者可以通过 Yandex.Direct 在响应特定搜索查询的会计师最有可能访问的网站上分发广告。

接下来我们看看这样分布的各种payload。

有效载荷分析

发行年表

该恶意活动于 2018 年 XNUMX 月底开始,在撰写本文时仍处于活动状态。 由于整个存储库在 GitHub 上公开可用,因此我们编制了六种不同恶意软件家族分布的准确时间表(见下图)。 我们添加了一行,显示横幅链接的发现时间(通过 ESET 遥测测量),以便与 git 历史记录进行比较。 正如您所看到的,这与 GitHub 上有效负载的可用性密切相关。 XNUMX 月底的差异可以解释为我们没有部分更改历史记录,因为在我们获得完整的更改历史记录之前,存储库已从 GitHub 中删除。

后门和 Buhtrap 加密器使用 Yandex.Direct 进行分发
图 1. 恶意软件分布的时间顺序。

代码签名证书

该活动使用了多个证书。 有些是由多个恶意软件家族签名的,这进一步表明不同的样本属于同一活动。 尽管私钥可用,但操作员没有系统地签署二进制文件,也没有对所有样本使用该密钥。 2019 年 XNUMX 月下旬,攻击者开始使用 Google 拥有的证书创建无效签名,但他们没有私钥。

下表列出了该活动涉及的所有证书及其签名的恶意软件系列。

后门和 Buhtrap 加密器使用 Yandex.Direct 进行分发

我们还使用这些代码签名证书来建立与其他恶意软件系列的链接。 对于大多数证书,我们没有找到不是通过 GitHub 存储库分发的示例。 然而,TOV“MARIYA”证书被用来签署属于僵尸网络的恶意软件 Wauchos、广告软件和矿工。 该恶意软件不太可能与此活动相关。 该证书很可能是在暗网上购买的。

Win32/Filecoder.Buhtrap

第一个引起我们注意的组件是新发现的 Win32/Filecoder.Buhtrap。 这是有时打包的 Delphi 二进制文件。 主要分布于2019年XNUMX月至XNUMX月。 它的行为类似于勒索软件程序 - 它搜索本地驱动器和网络文件夹并加密检测到的文件。 它不需要互联网连接就可以被破坏,因为它不会联系服务器来发送加密密钥。 相反,它在勒索消息的末尾添加了一个“令牌”,并建议使用电子邮件或 Bitmessage 联系运营商。

为了加密尽可能多的敏感资源,Filecoder.Buhtrap 运行一个线程,旨在关闭关键软件,这些软件可能打开了包含可能干扰加密的有价值信息的文件处理程序。 目标进程主要是数据库管理系统(DBMS)。 此外,Filecoder.Buhtrap 会删除日志文件和备份,使数据恢复变得困难。 为此,请运行下面的批处理脚本。

bcdedit /set {default} bootstatuspolicy ignoreallfailures
bcdedit /set {default} recoveryenabled no
wbadmin delete catalog -quiet
wbadmin delete systemstatebackup
wbadmin delete systemstatebackup -keepversions:0
wbadmin delete backup
wmic shadowcopy delete
vssadmin delete shadows /all /quiet
reg delete "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientDefault" /va /f
reg delete "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers" /f
reg add "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers"
attrib "%userprofile%documentsDefault.rdp" -s -h
del "%userprofile%documentsDefault.rdp"
wevtutil.exe clear-log Application
wevtutil.exe clear-log Security
wevtutil.exe clear-log System
sc config eventlog start=disabled

Filecoder.Buhtrap 使用合法的在线 IP 记录器服务,旨在收集有关网站访问者的信息。 这是为了跟踪勒索软件的受害者,这是命令行的责任:

mshta.exe "javascript:document.write('');"

如果文件与三个排除列表不匹配,则选择要加密的文件。 首先,具有以下扩展名的文件未加密:.com、.cmd、.cpl、.dll、.exe、.hta、.lnk、.msc、.msi、.msp、.pif、.scr、.sys 和。蝙蝠。 其次,完整路径包含以下列表中的目录字符串的所有文件都被排除。

.{ED7BA470-8E54-465E-825C-99712043E01C}
tor browser
opera
opera software
mozilla
mozilla firefox
internet explorer
googlechrome
google
boot
application data
apple computersafari
appdata
all users
:windows
:system volume information
:nvidia
:intel

第三,某些文件名也被排除在加密之外,其中包括勒索消息的文件名。 该列表如下所示。 显然,所有这些例外都是为了保持机器运行,但适航性极低。

boot.ini
bootfont.bin
bootsect.bak
desktop.ini
iconcache.db
ntdetect.com
ntldr
ntuser.dat
ntuser.dat.log
ntuser.ini
thumbs.db
winupas.exe
your files are now encrypted.txt
windows update assistant.lnk
master.exe
unlock.exe
unlocker.exe

文件加密方案

执行后,恶意软件会生成 512 位 RSA 密钥对。 然后使用硬编码的 2048 位公钥(公共指数和模数)对私有指数 (d) 和模数 (n) 进行加密、zlib 打包和 Base64 编码。 负责此操作的代码如图 2 所示。

后门和 Buhtrap 加密器使用 Yandex.Direct 进行分发
图 2. 512 位 RSA 密钥对生成过程的 Hex-Rays 反编译结果。

下面是带有生成私钥的纯文本示例,私钥是附加到勒索消息的令牌。

DF9228F4F3CA93314B7EE4BEFC440030665D5A2318111CC3FE91A43D781E3F91BD2F6383E4A0B4F503916D75C9C576D5C2F2F073ADD4B237F7A2B3BF129AE2F399197ECC0DD002D5E60C20CE3780AB9D1FE61A47D9735036907E3F0CF8BE09E3E7646F8388AAC75FF6A4F60E7F4C2F697BF6E47B2DBCDEC156EAD854CADE53A239

下面给出了攻击者的公钥。

e = 0x72F750D7A93C2C88BFC87AD4FC0BF4CB45E3C55701FA03D3E75162EB5A97FDA7ACF8871B220A33BEDA546815A9AD9AA0C2F375686F5009C657BB3DF35145126C71E3C2EADF14201C8331699FD0592C957698916FA9FEA8F0B120E4296193AD7F3F3531206608E2A8F997307EE7D14A9326B77F1B34C4F1469B51665757AFD38E88F758B9EA1B95406E72B69172A7253F1DFAA0FA02B53A2CC3A7F0D708D1A8CAA30D954C1FEAB10AD089EFB041DD016DCAAE05847B550861E5CACC6A59B112277B60AC0E4E5D0EA89A5127E93C2182F77FDA16356F4EF5B7B4010BCCE1B1331FCABFFD808D7DAA86EA71DFD36D7E701BD0050235BD4D3F20A97AAEF301E785005
n = 0x212ED167BAC2AEFF7C3FA76064B56240C5530A63AB098C9B9FA2DE18AF9F4E1962B467ABE2302C818860F9215E922FC2E0E28C0946A0FC746557722EBB35DF432481AC7D5DDF69468AF1E952465E61DDD06CDB3D924345A8833A7BC7D5D9B005585FE95856F5C44EA917306415B767B684CC85E7359C23231C1DCBBE714711C08848BEB06BD287781AEB53D94B7983EC9FC338D4320129EA4F568C410317895860D5A85438B2DA6BB3BAAE9D9CE65BCEA6760291D74035775F28DF4E6AB1A748F78C68AB07EA166A7309090202BB3F8FBFC19E44AC0B4D3D0A37C8AA5FA90221DA7DB178F89233E532FF90B55122B53AB821E1A3DB0F02524429DEB294B3A4EDD

这些文件使用 AES-128-CBC 和 256 位密钥进行加密。 对于每个加密文件,都会生成一个新密钥和一个新初始化向量。 密钥信息被添加到加密文件的末尾。 让我们考虑一下加密文件的格式。
加密文件具有以下标头:

后门和 Buhtrap 加密器使用 Yandex.Direct 进行分发

添加了 VEGA magic 值的源文件数据被加密到前 0x5000 字节。 所有解密信息都附加到具有以下结构的文件中:

后门和 Buhtrap 加密器使用 Yandex.Direct 进行分发

- 文件大小标记包含指示文件大小是否大于 0x5000 字节的标记
— AES key blob = ZlibCompress(RSAEncrypt(AES key + IV, 生成的 RSA 密钥对的公钥))
- RSA 密钥 blob = ZlibCompress(RSAEncrypt(生成的 RSA 私钥,硬编码的 RSA 公钥))

Win32/ClipBanker

Win32/ClipBanker 是一个从 2018 年 4 月下旬到 XNUMX 月初间歇性分发的组件。 它的作用是监视剪贴板的内容,它查找加密货币钱包的地址。 确定目标钱包地址后,ClipBanker 将其替换为据信属于运营商的地址。 我们研究的样本既没有被装箱也没有被混淆。 用于掩盖行为的唯一机制是字符串加密。 运营商钱包地址使用 RCXNUMX 加密。 目标加密货币是比特币、比特币现金、狗狗币、以太坊和瑞波币。

在恶意软件传播到攻击者的比特币钱包期间,有少量资金被发送到 VTS,这让人怀疑该活动是否成功。 此外,没有证据表明这些交易与 ClipBanker 有关。

Win32/RTM

Win32/RTM 组件于 2019 年 2017 月上旬分发了几天。 RTM是一个用Delphi编写的银行木马,针对远程银行系统。 XNUMX 年,ESET 研究人员发表了 详细分析 对于这个程序,描述仍然相关。 2019 年 XNUMX 月,Palo Alto Networks 还发布了 关于 RTM 的博客文章.

布特拉普装载机

一段时间以来,GitHub 上提供了一个与以前的 Buhtrap 工具不同的下载器。 他转向 https://94.100.18[.]67/RSS.php?<some_id> 获取下一个阶段并将其直接加载到内存中。 我们可以区分第二阶段代码的两种行为。 在第一个URL中,RSS.php直接通过了Buhtrap后门——这个后门与源代码泄露后可用的后门非常相似。

有趣的是,我们看到多个带有 Buhtrap 后门的活动,据称它们是由不同的运营商运行的。 在这种情况下,主要的区别在于后门是直接加载到内存中的,并没有使用我们讨论的DLL部署过程中通常的方案 。 此外,运营商还更改了用于加密 C&C 服务器网络流量的 RC4 密钥。 在我们见过的大多数活动中,运营商都懒得去更改这个密钥。

第二个更复杂的行为是 RSS.php URL 被传递到另一个加载器。 它实现了一些混淆,例如重建动态导入表。 Bootloader的目的是联系C&C服务器 微星officeupd[.]com/api/F27F84EDA4D13B15/2,发送日志并等待响应。 它将响应作为 blob 进行处理,将其加载到内存中并执行。 我们看到执行此加载程序的有效负载与 Buhtrap 后门相同,但可能还有其他组件。

Android/间谍银行家

有趣的是,在 GitHub 存储库中还发现了适用于 Android 的组件。 他只在主分支待了一天——1 年 2018 月 XNUMX 日。 除了在 GitHub 上发布之外,ESET 遥测没有发现该恶意软件正在分发的证据。

该组件作为 Android 应用程序包 (APK) 托管。 它非常混乱。 恶意行为隐藏在 APK 中的加密 JAR 中。 它使用以下密钥通过 RC4 进行加密:

key = [
0x87, 0xd6, 0x2e, 0x66, 0xc5, 0x8a, 0x26, 0x00, 0x72, 0x86, 0x72, 0x6f,
0x0c, 0xc1, 0xdb, 0xcb, 0x14, 0xd2, 0xa8, 0x19, 0xeb, 0x85, 0x68, 0xe1,
0x2f, 0xad, 0xbe, 0xe3, 0xb9, 0x60, 0x9b, 0xb9, 0xf4, 0xa0, 0xa2, 0x8b, 0x96
]

使用相同的密钥和算法来加密字符串。 JAR 位于 APK_ROOT + image/files。 文件的前 4 个字节包含加密 JAR 的长度,该长度紧随长度字段之后开始。

解密该文件后,我们发现它是阿努比斯 - 以前 记录在案 Android 版银行家。 该恶意软件具有以下特点:

  • 麦克风录音
  • 截图
  • 获取 GPS 坐标
  • 键盘记录器
  • 设备数据加密和勒索要求
  • 发送垃圾邮件

有趣的是,银行家使用 Twitter 作为备用通信渠道来获取另一台 C&C 服务器。 我们分析的样本使用了@JonesTrader 帐户,但在分析时该帐户已被阻止。

银行家包含 Android 设备上的目标应用程序列表。 它比 Sophos 研究中获得的列表更长。 该列表包括许多银行应用程序、亚马逊和 eBay 等在线购物程序以及加密货币服务。

MSIL/ClipBanker.IH

作为该活动一部分分发的最后一个组件是 .NET Windows 可执行文件,于 2019 年 1.0.0 月出现。 研究的大多数版本都是用 ConfuserEx vXNUMX 打包的。 与 ClipBanker 一样,该组件也使用剪贴板。 他的目标是广泛的加密货币以及 Steam 上的优惠。 此外,他还使用 IP Logger 服务窃取比特币 WIF 私钥。

保护机制
除了 ConfuserEx 在防止调试、转储和篡改方面提供的优势之外,该组件还包括检测防病毒产品和虚拟机的能力。

为了验证它是否在虚拟机中运行,恶意软件使用内置的Windows WMI命令行(WMIC)来请求BIOS信息,即:

wmic bios

然后程序解析命令输出并查找关键字:VBOX、VirtualBox、XEN、qemu、bochs、VM。

为了检测防病毒产品,恶意软件会使用以下命令向 Windows 安全中心发送 Windows Management Instrumentation (WMI) 请求: ManagementObjectSearcher API如下图。 从 Base64 解码后,调用如下所示:

ManagementObjectSearcher('rootSecurityCenter2', 'SELECT * FROM AntivirusProduct')

后门和 Buhtrap 加密器使用 Yandex.Direct 进行分发
图 3. 识别防病毒产品的流程。

此外,该恶意软件还会检查是否 加密剪辑观察者,一种防止剪贴板攻击的工具,如果运行,则会挂起该进程中的所有线程,从而禁用保护。

坚持

我们研究的恶意软件版本将自身复制到 %APPDATA%googleupdater.exe 并为 google 目录设置“隐藏”属性。 然后她改变了价值 SoftwareMicrosoftWindows NTCurrentVersionWinlogonshell 在 Windows 注册表中并添加路径 updater.exe。 这样,恶意软件就会在用户每次登录时执行。

恶意行为

与 ClipBanker 一样,该恶意软件会监视剪贴板的内容并查找加密货币钱包地址,找到后将其替换为运营商的地址之一。 下面是基于代码中找到的目标地址的列表。

BTC_P2PKH, BTC_P2SH, BTC_BECH32, BCH_P2PKH_CashAddr, BTC_GOLD, LTC_P2PKH, LTC_BECH32, LTC_P2SH_M, ETH_ERC20, XMR, DCR, XRP, DOGE, DASH, ZEC_T_ADDR, ZEC_Z_ADDR, STELLAR, NEO, ADA, IOTA, NANO_1, NANO_3, BANANO_1, BANANO_3, STRATIS, NIOBIO, LISK, QTUM, WMZ, WMX, WME, VERTCOIN, TRON, TEZOS, QIWI_ID, YANDEX_ID, NAMECOIN, B58_PRIVATEKEY, STEAM_URL

对于每种类型的地址都有一个相应的正则表达式。 STEAM_URL值用于攻击Steam系统,从缓冲区中定义的正则表达式可以看出:

b(https://|http://|)steamcommunity.com/tradeoffer/new/?partner=[0-9]+&token=[a-zA-Z0-9]+b

渗漏通道

除了替换缓冲区中的地址之外,该恶意软件还针对比特币、比特币核心和 Electrum 比特币钱包的 WIF 私钥。 该程序使用plogger.org作为渗透渠道来获取WIF私钥。 为此,运营商将私钥数据添加到 User-Agent HTTP 标头中,如下所示。

后门和 Buhtrap 加密器使用 Yandex.Direct 进行分发
图 4.带有输出数据的 IP 记录器控制台。

运营商没有使用 iplogger.org 来窃取钱包。 由于该字段的 255 个字符限制,他们可能采用了不同的方法 User-Agent显示在 IP 记录器 Web 界面中。 在我们研究的示例中,另一个输出服务器存储在环境变量中 DiscordWebHook。 令人惊讶的是,这个环境变量没有在代码中的任何地方分配。 这表明该恶意软件仍在开发中,并且该变量已分配给操作员的测试机。

还有另一个迹象表明该计划正在开发中。 该二进制文件包含两个 iplogger.org URL,数据泄露时都会查询这两个 URL。 在对这些 URL 之一的请求中,Referer 字段中的值前面带有“DEV /”。 我们还发现了一个未使用 ConfuserEx 打包的版本,该 URL 的接收者名为 DevFeedbackUrl。 根据环境变量名称,我们认为运营商计划使用合法服务Discord及其网络拦截系统来窃取加密货币钱包。

结论

该活动是在网络攻击中使用合法广告服务的一个例子。 该计划针对的是俄罗斯组织,但如果看到此类攻击使用非俄罗斯服务,我们不会感到惊讶。 为了避免泄露,用户必须对他们下载的软件来源的声誉充满信心。

妥协指标和 MITRE ATT&CK 属性的完整列表可在 链接.

来源: habr.com

添加评论