译者:興趣使然的小胃
预估稿费:200RMB
投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿
一、前言
随着时间的推移,加密货币(以下简称密币)已逐渐从新奇元素、乌托邦式的经济转变为颇有影响力的商业元素,即便是信息技术中最为脱节的社会单元也会受其影响。与此同时,密币已经得到许多“心怀不轨”人士的拥护,这些人的目标是牺牲其他人的利益来使自己利益最大化:攻击者会以各种方式运行挖矿程序,比如把挖矿程序嵌入用户JS脚本中、植入到处于生产状态的IoT设备中、隐藏在带有SMB漏洞利用技术的无数个木马变种中等。
这篇文章中,我会向大家介绍来自“挖矿前线”上的两个不同寻常的成功故事。第一个故事与TinyNuke事件遥相呼应,可以从许多方面反映当前的挖矿局势;第二个故事可以告诉我们一个道理:无需“燃烧”处理器来挖矿,你也能拿到密币。
二、DiscordiaMiner以及论坛上的争论
在6月初,我们的分析人员发现了一款新的、貌似很普通的木马,这款木马会下载非常流行的门罗币挖矿程序。然而,随着调查过程的深入,我们发现了许多更为有趣的细节,我们希望与大家一起分享这些信息。
卡巴斯基实验室产品将这款木马标记为Trojan.Win32.DiscordiaMiner。木马的工作流程如下:
1、在系统中创建多个目录,下载所需的文件;
2、将自身复制到C:ProgramDataMicrosoftCorporationWindowsSystemDataIsass.exe;
3、从服务器获取更新;
4、创建自启动任务;
5、下载挖矿程序;
6、获取用户凭据,使用该用户名来运行挖矿程序;
7、运行挖矿程序。
木马通过GET请求与命令服务器(C&C)交互,交互动作发生在程序启动期间,木马没有做其他任何检查或校验操作。所有的木马样本都使用hxxp://api[.]boosting[.]online这个地址作为C&C地址。该地址后面会跟上用户标识符(如MTn31JMWIT)以及所请求资源的地址,这些资源包括文件、新版程序等。典型的地址为:hxxp://api[.]boosting[.]online/MTn31JMWIT/getDiscordia。
2.1 论坛上的争论
前面我们提到过,在运行过程中的某一时刻,木马会得到指令,使用一些参数来运行挖矿程序:它会指定获得挖矿收益的用户邮箱地址,如下所示:
-user <user_email> -xmr
提取出<user_email>参数后,我们搜索了一下这个地址,根据第一行搜索结果,我们发现俄语论坛上有关于这个木马的一些话题:
在这个论坛帖子中,网友对木马的具体工作流程发起了广泛的讨论。讨论中最有趣的部分出现在第21页:网友纷纷指责木马作者将用户地址替换成自己的地址。除此之外,还有一份聊天记录,作者在聊天中表明出现这种替换行为是不值一提的错误。
在这个论坛上,DiscordiaMiner的作者表明这个错误的存活周期非常短,以此为根据来为自己辩护:
作者同样提到木马已感染200,000台主机。我们很难确认这个数字的准确性,然而,在我们拿到的恶意软件样本中,经常会看到这个独特的邮箱地址。样本中还出现过其他地址,如ilya-soro*****12@mail.ru、v*****re@gmail.com、topne*****arin@gmail.com、J ***** m@yandex.ru、steamfa*****aunt1@mail.ru、me*****ook@gmail.com、x*****z@yandex.ru、piedmont ***** lines@yahoo.com。
除此之外,在争论过程中,作者还提到DiscordiaMiner木马的源码现已公开。
的确如此,使用这个关键词进行搜索,第一行搜索结果就是作者的代码仓库地址。
该源码与恢复完毕的木马代码完全一致,此外,这个仓库中还包括分析木马操作的翔实图表、投放木马时所用的样本文件以及绕过UAC机制的具体步骤。我们从该仓库中截取了一些图片(该仓库目前已无法访问),如下所示:
根据这个源码,不同程序之间只有与用户有关的字符串(ClientID)有所不同。
虽然开放程序源码之前也出现过,但这次事件与NukeBot事件有些共同点:论坛上先出现一些争议,然后作者就公开源码,目的是“捍卫荣誉与尊严”。这两个木马还有另一处相同点,那就是采用“最简”设计理念:NukeBot只能在浏览器中嵌入基于web注入的载荷,而DiscordiaMiner可以从远程服务器下载并运行文件。除此之外,我们无法确认这两个程序之间有没有更具体的联系。
2.2 样本MD5值
00B35FB5C534DEA3EA13C8BE4E4585CC
083FD078FECFE156B17A50F73666B43E
0AB8E9C539554CBA532DFC5BC5E10F77
377B9C329EBF7ACFE7DABA55A0E90E98
48E6714A486B67D237B07A7CF586B765
4BD80738059B5D34837633692F18EA08
4E79B826AE4EC544481784EF77E05DE4
4EF5A04A56004AA93167F31296CCACF7
539B092C176183EDCA6A69421B62BCE8
5F8E4CF0971B543525CA807B6A2EC73F
65CF0CC192E69EA54373758C130A983F
7F65252701C80F8D4C1484EE06597DF0
80B04BBC2F18E3FE4625C3E060DA5465
三、CryptoShuffler
挖矿软件的作者想一夜暴富是极为罕见的事情。除了一些特例以外,在整个木马运行周期内,攻击者所使用的钱包地址通常只包含价值50-100美元的密币。然而,某些人不想重复这条荆棘之路,他们会选择其他“旁门左道”。CryptoShuffler木马的作者正是其中一份子。
卡巴斯基实验室产品将该木马标记为Trojan-Banker.Win32.CryptoShuffler.gen,样本的MD5值为0ad946c351af8b53eac06c9b8526f8e4。
CryptoShuffler的核心功能为:木马不会浪费时间用处理器来挖矿,它会直接替换剪贴板中的发送方地址!我们曾经在WebMoney及比特币(Bitcoin)案例中看到过类型情况,但这款恶意软件的目标是所有常见的加密货币。
与许多木马刚开始的流程一样,这款木马会把自己写入注册表中,完成自启动目标:
在该木马的后续版本中,这个流程稍微有些不同:如果木马模块使用动态加载库方式实现,那么它就会使用rundll32这个系统应用实现自启动。被调用的程序入口以及相关库的主函数为call_directx_9。
木马会创建一个执行线程,在该线程中维护自启动方式(如上图所示)。
木马使用OpenClipboardGetClipboardDataSetClipboardData这几个API函数完成替换操作。
木马使用正则表达式搜索剪贴板中的字符串是否包含对应的钱包地址。常见的大多数密币钱包地址都会以某些字符串开头,并且钱包地址的长度也为固定长度,因此对应的正则表达式也非常简单。比如,比特币钱包地址很容易识别,这类地址的起始数字为“1”或者“3”.
木马文件中包含与各种密币对应的一些钱包地址,主要包括如下地址:
大量金钱从用户的比特币钱包流入网络犯罪分子的口袋:在本文成稿时,这些地址中大约包含23个比特币,截至10月底,这些比特币市值约14万美元。其他钱包中包含的钱数各不相同,从数十到数千美元不等。
这款恶意软件是“理性”投资的完美典范,它的动作非常简单却行之有效,这个过程没有连接到任何矿池、没有出现网络交互、不会给处理器带来可疑的负载。
样本MD5值
以下为MD5值:
095536CA531AE11A218789CF297E71ED
14461D5EA29B26BB88ABF79A36C1E449
1A05F51212DEA00C15B61E9C7B7E647B
1E785429526CC2621BAF8BB05ED17D86
2028383D63244013AA2F9366211E8682
25BF6A132AAE35A9D99E23794A41765F
39569EF2C295D1392C3BC53E70BCF158
50E52DBF0E78FCDDBC42657ED0661A3E
6EB7202BB156E6D90D4931054F9E3439
7AE273CD2243C4AFCC52FDA6BF1C2833
7EC256D0470B0755C952DB122C6BDD0B
80DF8640893E2D7CCD6F66FFF6216016
AA46F95F25C764A96F0FB3C75E1159F8
B7ADC8699CDC02D0AB2D1BB8BE1847F4
D45B0A257F8A0710C7B27980DE22616E
D9A2CD869152F24B1A5294A1C82B7E85