Locky勒索软件在短暂的消逝之后,5月底再次卷土重来。
这次,它为自己配备了硬编码的javascript。
专家们从6月20号以来发现了大量恶意邮件,看起来似乎是新型Locky卷土重来了。
Proofpoint的研究员发现这种新型Locky勒索软件与Necurs僵尸网络相连,比从前多了许多新特征,比如说添加了反分析技术和拥有可以解码有效负载参数的javascript。
早在三月初就有人发现了它的踪迹,但是现在它变得更加先进了,并且通过各种手段扩张着,呈现出不同的攻击特色。
这篇文章会仔细介绍所有的步骤:
垃圾邮件&压缩文件附件
正如我们所知,Locky勒索依靠发送大量垃圾邮件进行传播。下面是这种恶意邮件的示例:
1、“示例邮件”
2、主题:报告最终版本
3、主体:
4、尊敬的xxx,
Lance Davis让我给您发送这份邮件,附件部分是这次报告的最终版本。
如果对文件有任何问题,我会为您解答;如果对报告内容有什么疑问,可以直接找Lance。
祝好
Faith Leonard
首席执行官
5、附件里是javascript的压缩文件
正如我们所看到的这样,攻击者谎称附件中是WORD文档,要受害人打开。但其实附件里是包含javascript编码文件的压缩文本。
javascript文件
之前的Locky发送的是勒索软件,这次也一样,它发送的那个附件中包含的javascript编码文件就是用来从某个受损域中下载勒索软件。
其中包含了多层模糊处理,第一层包含的是javascript代码字符串值,第二层使用了大量的变量和函数定义,使得他人难以进行分析。
绕过这第二层之后,展现在我们面前的是更加可读的代码,很容易就会发现用于下载Locky软件有效荷载的域。
所有这些都会在受害者不知情的情况下发生。
首先这些文件会被保存在磁盘,然后在运行之前利用解码函数来解码该文件,之后任务就会在一个wScript命令下进行。
这个%TEMP%变量包含的是从服务器上下载可执行文件的目录路径。
此命令会用解码所需要的123参数来运行主要的有效荷载。
通过模糊化处理网络样本转移,恶意软件希望能够绕过机器的智能化分析。
下面是这些步骤的图像示例:
新型Locky
在本篇报告中,我们将重点关注Locky恶意软件的具体特征。
我们将根据对各种行为的系统调用模式对一般恶意软件和Locky进行区分。
主要行为有:
· 删除卷影副本;
· 枚举驱动器;
· 枚举文件;
· 例行加密。
在研究这些行为之前,我们想展示一下Locky使用的一种有趣的手段,如果有人想要通过反向分析技术手段RDTSC(读取时间戳计数器)反向分析它的代码,它会利用这种手段察觉:
它包括了正常情况下执行指令的时间和被调试时执行指令的时间。如果时间长于正常时间,那就说明有人正在调试二进制文件。
现在让我们来看一下这个示例:
我们研究的样本是6月23日找到的感染域中的一个,SHA256: e5a6828f732bea6b66c4f6d850b235f6c1f139b10f8d9f2c3760298cfd88c163。
首先我们要看看其中是否存在删除卷影副本的行为:
结果是肯定的,它将命令行指令“vssadmin.exe Delete Shadows /All /Quiet”传递到提示执行的函数中,这样就完成了这一行为。
在WINDOWS操作系统的默认设置中,用户正在使用的文件会被自动备份到操作系统驱动器中。
所以这种恶意软件的常见行为就是删除卷影副本,以避免受害者自己恢复加密文件。
第二步是启用枚举驱动器,因为Locky不仅会加密操作系统本地驱动器中的文件,同时还加密所有与之相连设备中具有可写权限的文件(包括网络共享文件):
这种做法的原理是(1)通过 GetLogicalDrive() 调用系统返回所有与这台机器相连设备的名称。(2)对这些名称进行while循环。(3)如果是远程驱动器,程序会再次进行检查。
在这之后,它会调用GetVolumeInformation() 来检索关于驱动器传递周期的更多信息。然后检查是否有可能在这些驱动器中写入数据。所有的检查都结束之后,它会调用 enumFilesFromDrive() 函数来枚举所有文件:
enumFilesFromDrive() 函数是通过在驱动器名称中附加一个“*”,将其作为函数的参数进行传递。
然后,它再调用一个 FindFirstFileW() 来查找该驱动器中的所有文件和目录。此函数是递归函数,如果发现目录就会自动调用:
它会将 FindFirstFilesW() 的调用结果和 FILE_ATTRIBUTE_DIRECTORY 进行对比,来检查找到的文件是一个目录还是一个文件。如果是一个目录,就会使用递归函数枚举目录下的所有文件。
这种做法的前提是要对驱动器根目录的所有文件进行一次循环。
如果检查结果发现这只是一个文件,那这就意味着该文件可以被加密,从而实施Locky勒索:
勒索软件的第一步就是在文件名加上“.locky”的扩展名,然后替换原文件。之后它会创建新文件,并在“w+”模式下打开。
它会从原文件中读取内容,然后生成一个随机密钥,这个密钥会被用来加密该文件,一般密钥的长度是16个字节。
一旦获得密钥,勒索软件就会调用 CryptEncrypt() ,将加密内容写入新文件中,然后删除原始文件。
发现了这个勒索软件的一些常见做法之后,我们就报告了我们的发现。
几分钟之后我们就从服务器中下载了php文件:
<?php
declare(strict_types=1);
require_once(__DIR__.'/settings.php');
require_once(__DIR__.'/functions.php');
if (!isset($_SERVER['REQUEST_METHOD']) || $_SERVER['REQUEST_METHOD'] != 'POST') exit_error(404);
if (!($data = @file_get_contents('php://input'))) exit_error(404);
parse_str(decrypt_bot_request($data), $_POST);
if (empty($_POST['id']) || empty($_POST['act'])) exit_error(404);
$id = get_id();
/*
$data = print_r($_POST, true);
$fh = fopen('ppplog', 'a');
fwrite($fh, $data."n----------------------------n");
fclose($fh);
*/
$script = __DIR__.'/actions/'.trim(basename($_POST['act'])).'.php';
if (!@file_exists($script)) exit_error(404);
require_once($script);
?>
下面清单列举的是这次新型Locky已经感染的域:
3141592.ru/ wyesvj
4k18.com/ u69f97
aberfoyledental.ca/ 6dil05
abligl.com/ 8v62l4i4
adbm.co.uk/ 1o2wejz
angeelle.nichost.ru/ y6s1y9h
arogyaforhealth.com/ jujg6ru
atlantaelectronics.co.id/ quv7rcc1
babycotsonline.com/ ph42q6ue
barum.de/ c2blg
beautifulhosting.com.au/ rxn80
bilgoray.com/ vi5sfu
bobbysinghwpg.com/ pdqcqlnr
boranwebshop.nl/ ggc7ld
bptec.ir/ kvk9leho
cameramartusa.info/ xrfpm
capitalwomanmagazine.ca/ 6k1oig
century21keim.com/ c7xb2xy
certifiedbanker.org/ obmv6590
cg.wandashops.com/ evqbfwkx
clients.seospell.co.in/ fkn67zy
climairuk.com/ h32k491o
climatizareonline.ro/ azkqs
cond.gribochechki.ru/ zibni
dentalshop4you.nl/ m22brjfz
disneyexperience.com/ psyyhe
elviraminkina.com/ ojyq1
empiredeckandfence.com/ h2uppib
euro-support.be/ rdl3n7u
focolareostuni.it/ 0k2ren
freesource.su/ ijugasq1
grantica.ru/ 6hjli
honeystays.co.za/ siu2k
ideograph.com/ k7qfsxx
imetinyang.za.pl/ 74hd4by5
immoclic.o2switch.net/ styvuwti
jd-products.nl/ xjld131
karl-lee.se/ x23ft
margohack.za.pl/ wkiokl
matvil8.freehostia.com/ 64tmb1
mycreativeprint.com/ mqib9te
oakashandthorn.charybdis.seedboxes.cc/ f7ge4y3k
promoresults.com.au/ gx4al
redpower.com.au/ xlkdld
tip.ub.ac.id/ k2e32vh
www.centroinfantilelmolino.com/ 60wfh
www.darkhollowcoffee.com/ oqlyd9m
www.ellicottcitypediatrics.com/ 7d6sdl
www.keven.site.aplus.net/ fmlonxl
结论
鉴于防病毒检测工具很难检测出Locky勒索软件,更有效的做法就是安装一个好的防火墙软件,然后阻止该列表中的所有域。这样可以很好的防止感染。
另一个建议就是禁用vssadmin.exe服务,这样可以防止勒索软件删除卷影副本,这样一来受害者还有很大机会可以自行恢复加密文件。