本文作者是Vasilios Hioueras和Jérôme Segura

更新(2018-04-16):星等EK发生了变化从Magniber到GandCrab

更新(2018-02-28):主要开发与GandCrab。它的解密器可以从NoMoreRansom获得在这里.你可以看看欧洲刑警组织的新闻稿在这里

更新(2018-02-02): GandCrab是通过Necurs恶意垃圾邮件发送的[1].

更新(2018-02-01): GandCrab现在也通过eit运动(2] [3.].

- - - - - - - - - - - -

上周晚些时候出现了一个新的ransomware叫GandCrab。令人惊讶的是,它是通过两个工具包分发的:RIG EK和GrandSoft EK。

这有什么好惊讶的?除了EK级,它会持续推动Magniber ransomware在美国,其他开发套件今年大多放弃了其他有效载荷,如Ramnit或SmokeLoader,通常紧随其后的是RATs和coin miners。

尽管2017年第四季度勒索软件的增长有所放缓,但它仍然是一个经过考验的业务,保证了威胁行为人的一个重要收入来源。

分布

GandCrab第一次被发现了在1月26日,后来在开发工具包活动中被确认。

平台开发工具

经过详细记录的无缝门似乎在最近通过不同的线程推动特定的有效负载而变得多样化。而Seamless因拥有改为国际域名(idn)包含来自俄罗斯字母的字符,我们还在另一个反广告链中发现了一个标准域名。(注:同样的链也用于重定向到星等开发工具包。)

我们观察到同样的过滤在上游进行,它将过滤掉已知的ip,而gav[0 - 9]。php步骤是获得重定向到RIG EK的更可靠的方法。

此刻,只有gav4.php流被用来传播这种勒索软件。

GrandSoft开发工具包

这个开发工具包是一个很老的,不常见的,并且被认为有消失了.然而,这是发现它也被用来重新分配GandCrab。

GrandSoft EK的登陆页面没有混淆,似乎使用了在其他开发套件中发现的类似功能。

eit

这个活动是通过被泄露的网站进行的。

Necurs malspam

Necurs也开始掉落GandCrab。

赎金注意

有趣的是,GandCrab并没有要求支付流行的比特币,而是一种不太知名的加密货币Dash。这是另一个迹象,表明威胁行动者正在寻求更匿名、交易费用可能比比特币更低的货币。

技术分析

在解包之后,就分析而言,二进制文件是相当直接的。除了封隔器的第一层外,没有试图混淆数据或代码。从排除文件类型到web请求变量、url、av列表——甚至整个赎金消息——都在数据部分中以纯文本形式显示。在最初的浏览中,您可以通过简单地查看二进制文件的字符串来推断一些功能。

代码流保持相对内联,因此就反向工程而言,它允许您相当准确地分析它,甚至只是在反汇编程序中静态地分析它。该代码分为三个主要部分:初始化、网络加密。

初始化

解压后,grancrabb开始使用一些函数,它们的任务是设置一些稍后在代码中使用的信息。它查询用户的信息,如:

  • 用户名
  • 键盘类型
  • 计算机名
  • 防病毒的存在
  • 处理器类型
  • 知识产权
  • 操作系统版本
  • 磁盘空间
  • 系统语言
  • 活跃的驱动器
  • 语言环境
  • 当前的Windows版本
  • 处理器体系结构

它专门检查键盘布局是否为俄文,为结果写出一个整数表示,并构建一个包含所有这些信息的字符串。下面是开始写出变量名来标记收集到的信息的代码:

然后它循环遍历字母表中的所有字母,查询驱动器是否存在以及它的类型。如果它是一个CDRom,未知的,或不存在的,它跳过它。如果找到一个固定驱动器,它将其名称复制到缓冲区并复制描述驱动器类型的字符串。例如,C:驱动器是FIXED。

然后,它获取磁盘空闲空间和扇区信息,并通过这些扇区将其转换为另一组数字printf功能标记:C: FIXED_64317550592。它继续为每个驱动器创建一个列表。

它将在系统上收集的所有信息放在一起,您可以假设,在您进入代码的这一点之前,这些信息将以get请求的格式发送到C2服务器。下面是一个系统信息结构的例子:

知识产权= 99.8.160.100&pc_user= virusLab&pc_name=六世

它还搜索正在运行的进程,根据有限的杀毒程序集进行检查,这些杀毒程序也将被转换为C2服务器的信息字符串。

然后,它继续创建一个互斥锁,其中包含一些系统信息和生成的ID。例如:

全球\ pc_group = WORKGROUP&ransom_id = c9ed65de824663f

为了初始化自己以便将来加密,它循环执行一个硬编码的进程列表。这是勒索软件中常用的一种技术,它试图杀死可能对某些文件有锁定的进程,并希望加密这些文件。

关键过程清单:
msftesql.exe sqlagent.exe sqlbrowser.exe
sqlservr.exe sqlwriter.exe oracle.exe
ocssd.exe dbsnmp.exe synctime.exe
mydesktopqos.exe agntsvc.exe isqlplussvc.exe
xfssvccon.exe mydesktopservice.exe ocautoupds.exe
agntsvc.exe agntsvc.exe agntsvc.exe
encsvc.exe firefoxconfig.exe tbirdconfig.exe
ocomm.exe mysqld.exe mysqld-nt.exe
mysqld-opt.exe dbeng50.exe sqbcoreservice.exe
excel.exe infopath.exe msaccess.exe
mspub.exe onenote.exe outlook.exe
powerpnt.exe steam.exe thebat.exe
thebat64.exe thunderbird.exe visio.exe
winword.exe wordpad.exe

接下来,它调用内置加密函数来生成密钥。GandCrab在客户端生成公钥和私钥,并使用标准的Microsoft加密库Advapi32.dll.它调用CryptGenKey使用RSA算法。

网络连接

现在它进入主体循环勒索软件的互联网功能部分。该代码区域要么成功并继续到代码的加密部分,要么一次又一次地循环试图成功。如果它从未成功,它将永远不会加密任何文件。

这一节从做一个得到请求ipv4bot.whatismyipaddress.com保存返回的IP地址并添加到得到请求字符串,它是用系统信息构建的。

它继续并接受一个二进制块,这是在初始化之前存储的RSA公钥。该键被转换为base64CryptBinaryToStringAAPI具有以下参数:

CRYPT_STRING_NOCRLF和CRYPT_STRING_BASE64

它将被附加在现存的东西上得到字符串,它一直在构建。下面是RSA密钥在二进制文件中生成的示例及其转换,然后是最终确定的得到包含base64键的字符串:

这是一个使用crypto api生成的RSA公钥的例子:
A7 EC BD E2 49 43 E1 11达12 10 E0 25 59 AA 83 77 35 FC 3 e 49 C8 3 b 6 c 3 d 91 CF FF 96 6 e D8 45 FE - 8 58 91 AB 99 6 E2 04 E6 CB EC 58 66 95 05年8 c 2 f 7 e C6 19 6 d 24 B5 5 f C4 9 01 3 d 3 b FB 31 4 e AC 25 07年8 0 e 6 c 57 4 c C0 23 24 EB 57 97 17 79 3 F8 62 73 6 b广告B2 09年60 BB B7 9 a CF F9 5 b 68 B8 C1 44 07 F5 5 e 3 e 06 FE C2 35 CF 99 82 29 28 37 1 b E651 29 6C 0B 87 89 F9 90 26 F7 CC DA 75 C4 46 A1 E3 30 09 C0 6A CB 5E CB 87 8E 40 EF 4C 7E 02 AE E8 06 6A D7 24 FC 0E 40 EA 69 CD 6D 8D 24 92 6E 53 2F D2 69 D2 A2 F3 97 54 63 EB D9 C7 BD 9E 41 19 91 F1 6B D6 CA AD 9E 0E D3 0B A0 53 50 84 87 6D 49 4C 49 D2 3B 8E 80 F7 7F 35 F1 D7 A7 81 0F 90 04 40 AC 4B 7C ED 37 71 8A B1 FA 84 33 33 FB 62 EE 04 A3 C7 9A 47 2C 64 64 95 3D 34 A5 CC 12 6E E4 81 40 E6 7F 03 02 C4 57 D6

它被转换成:

BgIAAACkAABSU0ExAAgAAAEAAQCn7L3iSUPhEdoSEOAlWaqDdzX8PknIO2w9kc / / lm7YRf6KWCDmy5GrmWriBOxYZpUFjC9 + xhltJLVfxJoBPTv7MU6sJQeMDmxXTMAjJDrrV5cXefhic2utsglgu7eaz / lbaLjBRAf1Xj4G / sI1z5mCKSg3G + ZRKWwLh4n5kCb3zNp1xEah4zAJwGrLXsuHjkDvTH4CrugGatck / A5A6mnNbY0kkm5TL9Jp0qLzl1Rj69nHvZ5BGZHxa9bKrZ4O0wugU1CEh21JTEnSO46A93818dengQ + QBECsS3ztN3GKsfqEMzP7Yu4Eo8eaRyxkZJU9NKXMEm7kgUDmfwMCxFfW

和构建得到发送给C2的字符串,包含之前的所有系统信息,以及加密密钥:

行动=电话知识产权= 99.8.160.100&pc_user= virusLab&pc_name= VIRUSLAB-PC&pc_group=工作组pc_lang= en - uspc_keyb= 0 &os_majorWindows 7 =企业os_bit= x64ransom_id= c9ed65de824663fc&硬盘驱动器= C: FIXED_64317550592/50065174528&pub_key= BgIAAACkAABSU0ExAAgAAAEAAQCn7L3iSUPhEdoSEOAlWaqDdzX8PknIO2w9kc / / lm7YRf6KWCDmy5GrmWriBOxYZpUFjC9 + xhltJLVfxJoBPTv7MU6sJQeMDmxXTMAjJDrrV5cXefhic2utsglgu7eaz / lbaLjBRAf1Xj4G / sI1z5mCKSg3G + ZRKWwLh4n5kCb3zNp1xEah4zAJwGrLXsuHjkDvTH4CrugGatck / A5A6mnNbY0kkm5TL9Jp0qLzl1Rj69nHvZ5BGZHxa9bKrZ4O0wugU1CEh21JTEnSO46A93818dengQ + QBECsS3ztN3GKsfqEMzP7Yu4Eo8eaRyxkZJU9NKXMEm7kgUDmfwMCxFfW &priv_key= BwIAAACkAABSU0EyAAgAAAEAAQCn7L3iSUPhEdoSEOAlWaqDdzX8PknIO2w9kc / / lm7YRf6KWCDmy5GrmWriBOxYZpUFjC9 + xhltJLVfxJoBPTv7MU6sJQeMDmxXTMAjJDrrV5cXefhic2utsglgu7eaz / lbaLjBRAf1Xj4G / sI1z5mCKSg3G + ZRKWwLh4n5kCb3zNp1xEah4zAJwGrLXsuHjkDvTH4CrugGatck / A5A6mnNbY0kkm5TL9Jp0qLzl1Rj69nHvZ5BGZHxa9bKrZ4O0wugU1CEh21JTEnSO46A93818dengQ + QBECsS3ztN3GKsfqEMzP7Yu4Eo8eaRyxkZJU9NKXMEm7kgUDmfwMCxFfWGRZmQmHH5W5K1RYgSg8VJEFLebRW8 + o7X0K30wzzrw5NHpJpVJYX8OKot8KvopS4wsZzuxu5YJih1ZYVgF6QT5FW4WEG3BzMtq5vGVqTmrlckudC0xfGlGb7J41vUkZsp6S07NTIIT7HtYJSA / pxS51Zg + 13 tfu0nxc92rkkuva / 8 dzmgssm6ue7ayjqfekumkpimyrehgipsffeegtzm9zwz4txbrxlch0bornher + GFLJclnLc5JMg / J4BLaS6js + RGxRbZGMPJDVX6lTEEl + aIYO38Wh49 + Zcpzs4EOUfb1EsoLEDAZbppIWq8Yr1P6KtWkqIXRzjUk9HXiJm3qHm0u0vchV4iRAKz2MJ / xZdYjHp + C3qMTTsNbQbtcscpy13 / rEv8oO6clfciSCPcthy5IkLFLKZQP5be + IcsAjxeSoOqqtEpNpj8nOKfZ5PvEs + / kn718vG0R5CMU4I0fyF0BD68AFat6dl5gHK1sKs0ndAvCKdDMg / HqO / JKUZRSza2VKkgxpXC57BRGNP0r / jYySGnqhE2owHQaXoEmP9tme1A8PHsAoNtUEd0SO4 pn4hDg70o / Nmph UWqtOq9nSlrxQMD8Q08w4K2H1CC3eCAnHZOM8PTCDYH3nh6f / ftkVtyrpudTpicTjoUSEkwtEPRsWk7ff3F / Na8D2FcXSI5xQ6R + R2uy8GvVoxpBy8Xdh78VqViOBlu5 + Jxp09PMQmI2EFususg4VJeH047Wayi2r + YBKjBUkIh9WPCmFjO + 3 + VemzAX1rTuMh2mRKfKa +实验性自身免疫性脑脊髓炎lll7gqv7p4jfm1g2sjrm / dPWnoGzfg1E7brER6aD2q + w1 + 4 o8wczntnvph2bwpmyv6r + vbWOVZUTprzZ4sRr7KxT0ucZmNA76WX39NegSU56tOngYpAQprOMrJP0NYmrizT8FsCOcqlUGk0jf6moarJSWQxh2MxXtlpFAvJjPTqqKruIVMhIkTJ9aZHKnn02a5PIdLcs4a09D85js9klKZn90Gj6C4AxlT2nI / ba9m+ 7 srvxxbh1xngi987iwlslypwxhlrptjqivi0zaa3euvwzuz8f6sqlm2交货/ rSxdOnFW5hd8am9zgopimktfkjFtsHpev Svf0VlxQ3Fj22A06aXqfi7hmWPZ8ZCtZ874PUHgbrG3foNESQiTghT2NLV9rNNad7ij / kVA = &版本= 1.0
[Crypto key base 64 functions]
[将编码后的密钥添加到priv_key参数下的get字符串中的代码段]

此时,很明显,恶意软件将把这些信息发送到C2服务器。这很有趣,因为可以从内存中提取密钥并使用它们来解密文件。我们将继续调查此事,如果有任何发现,我们将更新文章。

GandCrab的服务器托管在.bit域,因此它必须查询支持此TLD的名称服务器。它通过使用命令查询以下域的地址来实现:

Nslookup[插入域]a.dnspod.com。

该命令查询a.dnspod.com名称服务器,它支持下面某个域的.bit TLD。

bleepingcomputer。nomoreransom。esetnod32。emsisoft。位gandcrab.bit

网路资讯查询子进程通过创建的管道打开。这样做是为了让子进程可以直接影响父进程中的内存,而不是手动来回传输输出。这是一个有趣和有用的技术。你可以查看下面的代码部分了解更多细节:

勒索软件现在尝试向服务器发送数据,如果发生错误或服务器不可达,它将继续整个过程,直到找到一个有效的,重新查询客户端IP并运行网路资讯查询一次又一次使用不同的IP输出。除非它与服务器连接,否则它将运行直到手动关闭。

如前所述,它不会继续加密例程,直到它找到一个服务器,这意味着它将进入一个IP请求的无限循环:

一旦找到其中一个,它将继续打开一个线程,该线程将启动主要的加密功能。然而,在它开始之前,它会打开另一个线程,创建一个窗口并将自己标记为Firefox。窗口加载的代码将自身复制到临时目录并在注册表中设置自己。这实际上是恶意软件中少数不是直接从纯文本中获取的部分之一。文件名本身的副本是通过调用cryptGenRandom函数,并在字母数组上使用其输出。

这个函数的奇怪之处不在于它做了什么,因为它创建了我们一直在等待的持久性,而在于为什么要首先创建一个窗口。据我们所知,启动一个窗口来执行这些任务没有任何好处。也许这是作者的实验,但意图尚不明确。

加密程序

正如我们从恶意软件的初始化部分所建立的,使用的加密算法是RSA。在我们得到加密部分之前,代码确保它没有加密它认为受保护的特定类型的文件。文件如下,硬编码到恶意软件:

desktop.ini自动运行。inf ntuser.dat iconcache.db bootsect.bak boot.ini ntuser.dat thumbs.db GDCB-DECRYPT.txt .sql

如果它发现该文件名在列表中,它将跳过该文件名并继续执行下一个。如果它是以下关键文件夹之一,它也会跳过查看文件夹:

本地应用数据Windows程序文件程序数据勒索软件本地设置

当它通过这些检查并到达一个特定的文件时,它会根据要加密的可接受的文件扩展名列表对扩展名进行最后一次检查:

如果所有检查都通过,它将继续使用前面生成的密钥以及生成的一些salt和随机数加密文件,并使用. gdcb扩展名重命名文件。主加密循环是一个递归函数,它最终会到达驱动器上的每个文件。

保护

必威平台APPMalwarebytes用户在交付链上受到保护(利用保护),但我们也在看到它之前主动阻止了这个勒索软件,感谢我们的反勒索软件引擎:

结论

有趣的是,一种新的勒索软件正在通过开发工具包传播,到目前为止似乎还在进行一些活动。另一个有趣的方面是,两个截然不同的开发工具包正在提供这一服务,尽管尚不清楚这两个活动的幕后操作者是否相同,是否在尝试不同的分销渠道。

妥协的指标

无缝的门

31.31.196.187 xn - 80 abmi5aecft.xn——p1acf

GrandSoft艾克(IP)

62.109.4.135

GandCrab(包装)

69年f55139df165bea1fcada0b0174d01240bc40bc21aac4b42992f2e0a0c2ea1d

GandCrab(打开)

ab0819ae61ecbaa87d893aa239dc82d971cfcce2d44b5bebb4c45e66bb32ec51