就像BleepingComputer首次报道中的情况一样,仅在几天前就有观察员发现GandCrab v4.0新版本已经将目标对准了那些搜索破解版应用程序的用户,攻击者将恶意页面注入到合法网站中,来诱导那些毫无防备的用户下载GandCrab恶意软件。
自GandCrab经历重大更新以来,已经过去了两个多月,虽然这个最新版本在代码结构方面做出了一些改革,但它的主要用途基本上没变,虽然作者删除了它的一些较旧的功能,但大多数标准功能仍然存在,而且值得注意的是,勒索软件部分在上一次大型更新中添加的更改壁纸功能现在已被移除。然而,GandCrab最大的变化主要还是从使用RSA-2048加密变成了以更快的Salsa20流密码来加密数据,这也是之前的Petya勒索软件使过的技术。此外,它还可以在加密受害者的文件之前连接到C2服务器,这也意味着它现在可以加密那些未连接到网络的用户。
注:感谢FortiGuard研究团队主管David Maciejak对被入侵网站进行调查。
注:点此阅读以前关于此主题的研究。
GandCrab V4.0的奴隶
据报道,恶意软件通过使用WordPress的受感染网站进行分发,这种方法一点儿也不新鲜,因为WordPress是目前最流行的攻击目标之一。事实上,对于这个最新版本,我们还发现在许多被感染的网站中都被注入了恶意网页(其中一些如下图所示)。
图1.受感染网站中被注入的页面
这些页面会立即将用户重定向到一个单独的页面,其中就包含GandCrab可执行文件的下载链接。有趣的是,当几分钟后再次访问这些站点时,除非您更改了IP地址,否则不会再发生重定向。
图2.下载GandCrab v4.0的页面
我们的分析显示可执行文件的恶意软件和下载链接正在被定期更新。以下是我们在分析过程中观察到的一些链接。它们遵循格式 http://<domain>/file_c.php<random_chars>=<HEX_digest_of_cracked_appname>
http[:]//gabysutton[.]com/file_c.php?vubljfwmqpkebpes=437261636b5f53617070686972655f506c7567696e735f666f725f41667465725f456666656374732e657865 (Crack_Sapphire_Plugins_for_After_Effects.exe)
http[:]//gagaryn[.]com/file_c.php?lkgpsudyvbjs=437261636b5f4d657267696e675f496d6167655f746f5f5044462e657865 (Crack_Merging_Image_to_PDF.exe)
http[:]//blog.ygtecnopc[.]com/file_c.php?rnopbuvnxdmk=437261636b5f4d657267696e675f496d6167655f746f5f5044462e657865 (Crack_Merging_Image_to_PDF.exe)
嘲讽与俄语的侥幸逃脱
正如我们预期的那样,GandCrab是直接执行的,没有进行反分析或者沉重的混淆。
代码中发现被混入了发给恶意软件研究人员经典的消息字符串,暗示着这个新版本仍出自同一个开发者之手。Salsa20密码和Zerophagel337的开发者,同时也是恶意软件研究员的Daniel J. Bernstein,也进入了的不断增长的嘲讽名单,新旧debug字符串也很难错过。
图3.从解压缩的二进制文件中的嘲讽字符串
正如之前的版本一样,如果目标系统来自于主要说俄语的国家,它就不对其进行感染。除了进行俄语键盘布局的检查外,这个最新版本还为以下俄语国家添加了用户界面语言检查:
- ·俄语(0x419)
- ·乌克兰语(0x422)
- ·白俄罗斯语(0x423)
- ·塔吉克语(0x428)
- ·亚美尼亚语(0x42B)
- ·阿塞拜疆语(0x42C / 0x82C)
- ·格鲁吉亚语(0x437)
- ·哈萨克斯坦语(0x43F)
- ·吉尔吉斯斯坦语(0x440)
- ·土库曼语(0x442)
- ·乌兹别克斯坦语(0x843)
- ·塔塔尔语(0x444)
- ·罗马尼亚语(0x818)
- ·摩尔多瓦语(0x819)
如果用户的Common AppData目录(例如C: ProgramData)中存在文件<8hex-chars> .lock(例如2078FBF8.lock)也会使恶意软件终止而不会感染系统。文件名的8hex-chars部分是在向右移动后从根驱动器的卷序列号值生成的。
图4.检查是否存在<8-hex> .lock的片段
Salsa20和共享网络加密
被加密的文件现在被添加了“.KRAB”扩展名,而被放到每个目录中的赎金提示文本也被更改为了“KRAB-DECRYPT.txt”
图5.添加了.KRAB扩展名的被加密文件
系统中的所有驱动器(包括映射驱动器)都会被恶意软件加密,而且这一次为了扩大其侵害范围,它还加密了受害者机器保存的共享网络。
图6.加密共享网络的例程
如上所述,这个新版本现在使用Salsa20流密码来加密文件,而不再是用于不同任务的RSA-2048加密。同样需要注意的是,在以前的版本中,此恶意软件在进行文件加密之前可能需要连接到其C2服务器,而这个新版本中不需要,这就意味着即使目标设备未连接到网络,也可以对其进行文件加密。
RSA-2048私钥和Salsa参数的加密过程如下:
- ·生成RSA-2048私钥和公钥
- ·由Salsa20的密钥分别随机生成一个32字节和一个8字节值
- ·使用Salsa20加密生成的RSA-2048私钥
- ·使用先前生成的RSA-2048公钥对Salsa20密钥和随机数进行加密
被加密的密钥存储为二进制块,写入注册表HKCUSoftwarekeys_datadataprivate中。
而原始RSA公钥被存储在HKCUSoftwarekeys_datadatapublic下。
图7.添加到注册表中的被加密的密钥
在文件加密进程运行期间执行一个类似的进程,生成一对随机的32字节和8字节值,分别由Salsa20用作关键字和随机数参数,这是为了每个要加密的文件完成的。正如我们预期的那样,这些密钥立即被RSA-2048公钥加密,该公钥连同其原始文件尺寸被附加在加密文件内容的末尾。
图8.GandCrab V4.0加密文件的结构
赎金提示文本和支付页面
结合上新的加密程序,赎金提示也发生了一些变化。现在,作为恶意软件受害者的通知和指示的赎金提示还包含了我们之前讨论的加密密钥(以base64编码)和受害者的基本信息,该信息在进行base64编码之前先通过硬编码密钥“jopochlen”的RC4算法加密。
图9.Ransom note包括了加密密钥和受害者数据
而GandCrab支付页面并没有太大变化。作为保证,他们仍然为受害者提供一次单个文件的免费解密。但是,在我们的测试中,它实际上并不能解密我们上传的加密文件。但无论测试的结果如何,仍然强烈建议受害者拒绝支付赎金。
图10.支付页面在几天后要求1000美元
图11.GandCrab支付网站的免费解密会导致一个错误
总结
尽管在过去两个月内攻击者对此新版本的GandCrab进行了大量内部更改,但它仍然是同一个活跃的文件加密恶意软件,对其设法感染的系统仍可能造成严重损害。即便如此,这也是良好的网络卫生可以缓解的问题。在这种情况下,我们建议用户始终对从网络下载的文件保持警惕,尤其是破解版的应用程序,这些不仅违反了版权法,而且还会带来很大的风险,特别是对于未经培训过的用户。
目前,恶意软件正被分发给受感染的网站,我们预计它将转移到其他分发模式,特别是像过去一样的垃圾邮件活动。
我们没有找到与此版本的任何网络通信。但是,在撰写更新版本时,GandCrab v4.1在v4.0发布后仅仅一两天就发布了。根据我们的简要分析,这个新版本现在包含了一些网络通信功能。我们将发表一篇讨论这一更新的文章。
与往常一样,FortiGuard Labs将继续监控此恶意软件以进行更新。
解决方案
目前,在系统的COMMON APPDATA文件夹中创建<8hex-chars> .lock文件可以防止此恶意软件感染系统。但是,这不应被视为一个永久性解决方案,因为攻击参与者可以轻松删除检查过程,尤其是对于像GandCrab这样的主动更新的恶意软件。
Fortinet客户受以下保护:
- ·通过启发式检测工具W32/GandCrypt.CHT!tr检测样本
- ·我们观察到的受感染网站已被FortiGuard Web过滤归类为恶意网站
- ·FortiSandbox将GandCrab评为高风险
IoCs
6c1ed5eb1267d95d8a0dc8e1975923ebefd809c2027427b4ead867fb72703f82 (packed) –
W32/GandCrypt.CHT!tr
15d70bdbf54b87440869a3713710be873e595b7e93c0559428c606c8eec1f609 (unpacked) –
W32/GandCrypt.CHT!tr
审核人:yiwang 编辑:边边