【翻译不合格】深度分析盗取加密货币的新型恶意软件CryptoClippy - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

【翻译不合格】深度分析盗取加密货币的新型恶意软件CryptoClippy

lucywang 技术 2023-06-02 10:09:19
0
收藏

导语:深度分析盗取加密货币的新型恶意软件CryptoClippy

Cryptojacking-r3d3.png

Unit 42最近发现了一个针对葡语用户的恶意软件活动,旨在将加密货币从合法用户的钱包中转移到由攻击者控制的钱包中,该活动使用了一种被称为CryptoClippy(加密货币剪切器)的恶意软件,它可以监控受害者的剪贴板,寻找加密货币钱包地址被复制的踪迹。

被称之为CryptoClippy的恶意软件试图将用户的实际钱包地址替换为攻击者的地址,导致用户无意中将加密货币发送给攻击者。

为了将恶意软件发送到用户的计算机,该活动中的攻击者使用谷歌广告和流量分发系统(TDS)将受害者重定向到假冒WhatsApp Web应用程序的恶意域名。他们借此来确保受害者是真正的用户,而且他们是葡语使用者。对于被发送到恶意域的用户,攻击者试图诱骗他们下载恶意文件,包括.zip或.exe文件,从而获得最终的有效负载。

什么是加密货币剪切器?

加密货币恶意软件旨在将加密货币资金从合法用户的钱包转移到由攻击者控制的钱包。当计算机感染加密货币剪切器时,恶意软件会不断检查受害者的剪贴板,看看他们是否复制了加密货币钱包地址。其背后的逻辑是,如果一个人将钱包地址复制到剪贴板,这表明他们可能正在将加密货币从一个钱包转移到另一个钱包。

CryptoClippy使用正则表达式来识别地址属于哪种类型的加密货币。然后,它将剪贴板条目替换为假冒的加密货币的钱包地址。由于钱包地址通常很长,有时超过40个字母数字字符,许多人不会注意到地址的变化,攻击者正式抓住了这点。

CryptoClippy始于SEO攻击,因此当一个人搜索“WhatsApp Web”时,结果会导致他们进入攻击者控制的域。一旦进入,受害者就会被提示下载一个.zip文件,该文件包含一个由恶意脚本组成的.lnk文件。这些脚本引发了一系列安装CryptoClippy的事件。各种CryptoClippy变体具有多种额外功能,可以帮助攻击者完成他们的加密窃取活动。这包括能够通过执行RC4加密的PowerShell脚本来建立远程桌面协议(RDP)后门。

此脚本包含Windows Management Instrumentation(WMI)、终端服务注册表操作、icacls、net命令和日志清除的元素。这些漏洞使攻击者能够在内存有效负载之外进行访问。

此外,该变体还具有针对以太坊和比特币加密货币钱包的功能。鉴于数字货币在拉丁美洲越来越受欢迎,这并不奇怪。

撰写本文时,攻击者控制的钱包显示了最近的活动。比特币地址显示收到0.039954比特币,大致相当于982.83美元。比特币余额来自四种不同的比特币交易。以太坊(ETH)地址也显示了收到资金的证据,其中0.110915556631181819 ETH(约等于186.32美元)是从三个不同的ETH地址发送的。

此活动中的攻击者采用了多阶段的方法,试图绕过基于签名和启发式的安全引擎。这种方法包括模糊技术来逃避检测,包括使用模糊的PowerShell脚本和编码的有效负载。

目前这种恶意软件的低检测率突出了这种方法的有效性,因为似乎只有少数供应商在VirusTotal中检测到这种恶意软件。检测到这一点的供应商已经为该恶意软件分配了通用名称。

CryptoClippy感染链

CryptoClippy感染流从传播一个初始.zip文件开始,该文件包含一个由模糊的PowerShell命令行脚本组成的.lnk文件。受害者双击.lnk文件后,将执行PowerShell脚本,该脚本将下载第二阶段和几个模糊/加密的有效负载(稍后在阶段1- 装入程序那部分中讨论)。

当执行第二阶段PowerShell脚本时,它会对CryptoClippy装入程序进行解混淆/解密并执行它。然后装入程序会将其窃取程序组件注入svchost.exe中。

CryptoClippy将在剪贴板API中设置基于用户模式事件的挂钩和回调函数,在将受害者的以太坊/比特币加密钱包复制到剪贴板时,将其替换为攻击者的加密钱包。它还包含与C2服务器通信的功能。

CryptoClippy感染链如下所示:

1.png

通过恶意广告(Malvertising)传播

研究人员观察到这种利用谷歌广告和TDS的恶意软件活动。首先,当用户搜索“WhatsApp网络”时,攻击者使用了出现在搜索结果中的谷歌搜索广告。这使他们能够诱骗受害者打开并下载他们的恶意压缩.zip文件。在2022年初收到这一攻击的警报后,谷歌实施了额外的保护措施,该公司表示,其系统在检测和防止再次攻击方面有所改进。

此外,攻击者使用TDS过滤恶意登录页面上的真正用户和机器人。TDS过滤器通过使用各种标准来确定客户端设备是否是真实用户以及葡语使用者,从而排除机器人和互联网爬虫。

首先,TDS检查连接设备是否来自虚拟专用网络(VPN)IP地址。使用VPN会使攻击者难以确定受害者设备的位置和特征,也会使其更难传播恶意内容。

接下来,TDS进行用户代理检查。用户代理是网络浏览器发送到网站以识别其自身及其功能的文本字符串。通过检查客户端设备的用户代理,TDS通过检查接受语言(Accept-Language) 标头来确定首选浏览器语言是否为葡语。TDS还可以检查其他信息,如设备类型、操作系统、浏览器版本和地理位置。

最后,TDS遵循超文本传输协议(HTTP)GET标头标准。HTTP GET标头是由web浏览器发送到服务器以检索资源的请求消息。标头可以包含各种信息,例如请求的URL、用户代理、Accept-Language标头和referer标头。检查HTTP GET标头中的条件是TDS确定浏览器的首选语言是否为葡语的另一种方法

如果TDS确定连接不符合上述标准,受害者将被重定向到另一个登录页(如下图所示),并被提示点击“继续到WhatsApp Web”。这将重定向到合法的WhatsApp Web域,而不会有任何进一步的恶意活动,有效地避免了受害者和安全软件的检测。

word-image-127548-2.png

恶意域名的内容

但是,如果TDS确定该连接满足上述条件,受害者将被重定向到恶意登录页面,并提示他们下载恶意的.zip文件

word-image-127548-3.png

受害者的浏览历史

这个网站伪装成WhatsApp的官方网站,提供WhatsApp桌面。从 mydigitalrevival[.]com下载此文件导致了最初的感染——WhatsApp.zip。

word-image-127548-4.png

mydigitalrevival[.]com网站

研究人员发现的属于本次活动的其他域名是preflightdesign[.]com和pickconferences[.]com,它们的葡语版本也有同样的内容。

当受害者成功加载恶意网页并下载所提供的.zip文件时,其中包含一个.lnk文件,如下图所示。

word-image-127548-5.png

初始ZIP文件中包含LNK文件

在执行.lnk文件后,研究人员观察到下载到C:\Users\\AppData\Roaming\Ricoly中的以下文件:

Ricoly.bat;

Ricoly.ps1;

两个混淆的加密文件(ps,sc);

一个混淆的加密辅助配置文件(pf);

第一个PowerShell脚本加载程序Ricoly.ps1由Ricoly.bat批处理文件启动并执行。Ricoly.ps1脚本的目的是解密第二阶段的模糊/加密脚本ps。

第二阶段PowerShell脚本ps的功能是充当反射PE装入程序。ps文件将以写入文件系统的名为sc的加密EXE文件为目标。sc文件是反射加载的,最终用作CryptoClippy的主装入程序。

主要CryptoClippy可执行文件

在执行.lnk文件和两个后续的PowerShell脚本之后,CryptoClippy操作由一个可执行装入程序和主CryptoClipy可执行文件组成。CryptoClippy的装入程序是一个64位的EXE文件,其中主窃取程序EXE文件嵌入在.data部分中。装入程序使用系统调用,在执行时似乎与SysWhispers2实现重叠。

SysWhispers2是一个更隐蔽的代码执行实现,用于绕过对用户模式API的检查。这种绕过是可能的,因为用户模式API通常由应用程序使用,包括AV/EDR产品通过用户模式挂钩进行内省。

CryptoClippy的主要可执行文件是用C编写的,它是用传输层安全性(TLS)库Mbed-TLS静态编译的。可执行文件的主要功能包括它自己的名称生成算法(即文件路径、互斥对象和事件对象)。主可执行文件还广泛使用了一个名为pf的本地辅助文件,该文件包含一个加密的证书。CryptoClippy使用它自己的算法从辅助文件中消除字符查找表的混淆,从而从查找表中指向值的指针构建明文证书。

该威胁还使用两个不同的RC4密钥进行各种字符串解密。字符串解密例程将使用内存中内置的结构,用于结构中的索引位置、字符串偏移量和字符串大小。这些字符串与对象名称、域、加密钱包和持久性脚本有关。

RC4 Key: 1b43233d5a054808061c190336320e46

RC4 Key: 4646070B47445451604F291809444703

加密货币的窃取操作

CryptoClippy的主要目标是识别正在复制到剪贴板中的加密钱包字符串。CryptoClippy设置用户模式事件挂钩,并使用回调函数执行将复制到Windows剪贴板中的以太坊或基于比特币的钱包替换为攻击者拥有的硬编码钱包值。下图显示了捕获剪贴板输入的窗口。根据装入程序的执行流程,这个特定的应用程序通常是不可见的。

word-image-127548-6.png

窃取剪贴板里的内容

CryptoClippy剪贴板函数的反编译视图(如下图所示)显示,攻击者使用的钱包地址将被RC4解密,以便稍后在任何加密钱包的替换中使用。

CryptoClippy将对被推入剪贴板的数据执行字符串检查。它将检查与以太坊或比特币相关钱包相关的常见前导字符。复制到剪贴板中的字符串将循环通过以确定字符数。在下图的第27行,从总字符数中减去25并进行比较,看看它是否小于或等于9。

word-image-127548-7.png

CryptoClippy剪贴板函数的反编译视图

此字符串检查操作适用于以1开头的比特币地址。否则,代码路径将被跳过,剪贴板中的字下图所示的调试视图显示了API GetClipboardData和API的返回值,其中包含复制的以太坊钱包示例。

word-image-127548-8.png

以太坊钱包示例0xdB055877e6c13b6A6B25aBcAA29B393777dD0a73

一旦获得剪贴板数据,将执行上面反编译视图中指出的字符串检查,查找使用的特定加密钱包类字符。下图提供了一个以太坊钱包作为输入,随后检查起始字符值0x。

word-image-127548-9.png

使用的以太坊钱包示例0xB49eae711FBa241f657dA46A998833A6591848b

负责操作剪贴板的函数将使用API SetClipboardData将用户复制的以太坊钱包地址替换为0xB49aeae711FBa241f657dA46A998833A6591848b的以太坊钱包地址。

测试了示例钱包地址的一小部分。下表包含用户提供的值,这些值被复制,然后被加密剪切函数替换。

10.png

复制钱包和替换钱包的示例

为了保持对受害者计算机的访问,CryptoClippy通过将Ricoly.link添加到Startup文件夹(\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\Ricoly.lnk)来获得持久性。Ricoly.nk将在用户登录时启动,它将执行Ricoly.bat脚本,然后执行Ricoly.ps1。

维护访问权限的其他工作包含在rc4加密的PowerShell脚本Tozzia.ps1中,注入svchost.exe的CryptoClippy有效负载提取Tozzia.bat和Tozzia.ps1 文件。

连同另外两个脚本,Tozzia.ps1脚本包含与终端服务的注册表修改、本地帐户创建、网络命令和事件日志清除相关的各种功能。

过去几年,以加密货币为重点的恶意攻击越来越多。

通过LNK文件感染

受害者最初下载的.zip文件中的.lnk文件包含一个截取的命令,如下图所示。双击该文件将执行一个模糊命令,该命令位于快捷方式的目标字段中,负责检查攻击者控制的域。

11.png

LNK文件,其目标字段包含要运行的命令

.lnk文件使用了几种不同的字符填充方法进行混淆,其中包括以下字符集:

^

!!

:~

下图显示了如何在.lnk文件中使用这个填充。

12.png

LNK字符混淆

反混淆后,LNK得到以下PowerShell命令,该命令将通过HTTP协议将字符串uiPX上传到攻击者控制的域tunneldrive[.]com。

13.png

与LNK执行一起运行的PowerShell命令,用于将字符串上载到攻击者域

需要注意的是,研究人员观察到的示例中,感染链可以追溯到扩展名为.lnk的文件。这些文件通常包含在.zip中。然而在分析中,研究人员观察到另一种变化,其中初始有效负载是一个.exe文件,该文件链接到前面提到的域mydigitalreversion[.]com。

当检查模拟WhatsApp Web的.exe文件时,一旦执行,它就会联系前面提到的tunneldrive[.]com域。然后,它将释放并执行一个.bat文件来删除自己。

这个.bat文件(如下图所示)使用了一种模糊处理,它逐渐构建了其有效负载,类似于本文中详细介绍的有效负载,但有更多的混淆。

14.png

BAT文件在第一阶段被释放

装入程序第一阶段

第一个PowerShell脚本装入程序Ricoly.ps1由Ricoly.bat批处理文件启动并执行。Ricoly.ps1脚本的目的是解密同样位于C:\Users\\AppData\Roaming\Ricoly中的释放的第二阶段模糊/加密脚本ps。

Ricoly.ps1脚本使用的XOR密钥大部分是硬编码的(静态设置的),而XOR密钥的一部分是从计算机的处理器ID动态派生的。这将锁定有效负载并添加额外的反分析层,如下图所示。

15.png

PowerShell脚本,负责对要执行的下一个脚本进行XOR解密

装入程序第二阶段

研究人员使用以下CyberChef XOR秘钥来解密第二阶段的有效负载:

XOR KEY: b8 55 2e 7c 48 f6 44 ea c1 7c 9e 09 eb b0 f5 f1 23 f4 22 42 02 15 a1 cb ed 69 50 c1 1b 46 bf eb fb ff 00 08 06 ec bc c5 55 c1 de 96 14 3b bb a8 85 59 13 70 0b 28

16.png

CyberChef用于解码第二阶段PowerShell脚本文件ps的内容

在上述第一阶段下载时,会将名为sc的加密EXE文件写入文件系统。这个EXE文件将成为第二阶段ps脚本的目标和焦点。

第二阶段PowerShell脚本ps的功能是充当反射PE装入程序。它使用.NET方法和D/invoke来处理.NET委托,以逃避检测和动态解析。

ps脚本将确定操作系统是32位还是64位。它还将确定kernel32.dll作为反射装入程序所需的API功能。它通过使用GetDelegateForFunctionPointer解析所需的API(如VirtualAlloc和CreateThread)来实现这一点。

然后,ps脚本将对有效负载进行XOR解密,并调用EXE文件sc。

17.png

使用D/invoke方法和XOR操作的第二阶段PowerShell脚本

反射加载到内存中的EXE文件sc充当主装入程序,使用系统调用将代码注入另一个新创建的进程。新创建的svchost.exe进程包含CryptoClippy。

文件夹名称和互斥字符串生成器

窃取程序的前几个函数将首先映射出文件系统,以创建要使用的文件夹。这是通过使用API GetWindowsDirectoryA、GetVolumeInformationA和SHGetFolderPathA来实现的。

窃取程序包含一个函数,它将创建字母数字字符串。此字符串生成器用于主程序中的多个位置。它首先用于在AppData路径下创建一个唯一的文件夹名称。为此,使用一个常量值作为字符串生成器的参数。

在本例中,常量是0x79FE6D,它将在字符串生成器函数中使用,并映射到格式字符串%08x-%08x。

18.png

函数字母数字生成器的常数值参考和外部参照

字符串生成函数将使用提供给函数的常数值和从受害者系统查询的卷序列号。它将创建以下字符串作为示例:079fe6d-de786dd1。

19.png

常量值和卷序列号连接成格式字符串

该算法将按每个字符拆分字符串来打乱字符串079fe6d-de786dd1。第一个操作是由字符串的第一个字符对值FFFFFFFF执行XOR。

然后,所得到的运算将被右移1,并被异或常数0x82F63B78。结果异或操作将遵循相同的操作集,在16个字符示例字符串079fe6d-de786dd1中,每个字符总共执行8次。

算法完成后,返回要添加到AppData目录的文件夹名称。本例中的文件夹名称为55abf82d,完整路径为C:\Users\xxx\AppData\Roaming\55abf82d。这将根据作为输入提供的常量和卷序列号而变化,以创建唯一的字母数字字符串。

20.png

使用的算法的结果,即要创建的文件夹名称

互斥锁

攻击者的互斥锁的创建也使用字符串生成器函数,该函数作为参数提供了一个不同的常量值。在本例中,值为0x24F2D5。

21.png

用于创建带有卷序列号的互斥锁的常量值

用户模式事件挂钩设置

为了便于窃取者剪切复制到剪贴板的加密钱包,并将其替换为二进制文件中包含的硬编码钱包,它将首先调用API SetWinEventHook来设置事件挂钩,以便在触发特定事件时调用负责与剪贴板数据交互的函数。

EVENT_OBJECT_FOCUS

EVENT_OBJECT_VALUECHANGE

EVENT_SYSTEM_FOREGROUND

事件挂钩设置将具有一个从所有进程以及所有现有线程接收事件的进程范围,然后跳过连接负责创建挂钩的所属进程。在设置事件挂钩之后,创建一个Windows事件对象。它通过调用用于同步的Windows API CreateEventA来实现这一点,当特定事件发生并完成时,它将向线程发出信号。

22.png

windows事件钩子和注册类的反编译视图

创建Windows对象事件之后,窃取程序将使用API RegisterClassExA。此API提供了一个指向WNDCLASSEX结构的指针,该结构包含wcbClass和各种结构字段。

在此之后,调用CreateWindowExA,它将创建一个具有前面API所指向的结构的窗口。在这个结构中,我们分析的重要字段是lpfnWndProc字段,它指向恶意软件开发者的剪贴板函数。

后门

在CryptoClippy执行期间,此威胁将解密并写入文件Tozzia.bat和Tozzia.ps1到文件系统,这些文件系统嵌入到文件系统中。执行批处理文件Tozzia.bat,然后执行Tozzia.ps1。

23.png

Tozzia.bat文件内容

下图显示了Tozzia.ps1 被写入文件系统并执行,从而提供额外的持久性。

24.png

Tozzia.ps1 内容

下图显示了Tozzia.ps1 通过创建计划任务来获得持久性。

25.png

执行Tozzia.bat的计划任务

在Tozzia脚本解密后,另外两个脚本Giddia和Knowledgeprojects也被解密,但没有被执行或写入文件系统。从内存中提取Giddia和Knowledgeprojects这两个脚本,可以看到几百行额外的脚本代码。

Giddia脚本包含操纵与终端服务相关的注册表属性值的功能,目的是削弱它们。它还包含网络命令和本地帐户相关操作的功能。

26.png

PowerShell脚本名Giddia

27.png

Giddia功能

28.png

名为Knowledgeprojects的PowerShell脚本

Knowledgeprojects脚本包含使用PowerShell清除日志的功能。

29.png


本文翻译自:https://unit42.paloaltonetworks.com/crypto-clipper-targets-portuguese-speakers/如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务