翻译:overXsky
预估稿费:200RMB
投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿
背景分析
本文我们将介绍Locky Bart勒索软件。Locky Bart的开发者已经有两个非常成功的勒索软件,分别被称为“Locky”和“Locky v2”。在一些用户报告感染Locky Bart后,我们开始调查它们并寻找差异,以获得更多的信息来理解这个新版本。
Locky Bart勒索软件具有与其前身不同的新特性。它可以在不需要联网的情况下加密机器,并且采用了更快的加密机制。
我们的研究还表明,Locky Bart的后端基础设施可能由与原始版本不同的威胁主体维护。虽然恶意软件内部的二进制存在大量的相似之处,但是仍有一些显着的差异值得关注。
这些差异包括: 应用程序代码中的注释,但更重要的是后端服务器中使用的软件类型。
这些发现并不意外,因为网络犯罪分子常常被冠以分享、租赁、销售、甚至偷窃彼此的恶意代码的名声。
二进制分析
在以前的版本中,Locky Bart使用了更简单的加密过程。它枚举了要加密的文件,将它们放在受密码保护的ZIP存档中,并不断重复此过程直到所有文件都被加密完成。开发者并没有使用AES加密算法来保护ZIP存档,而是使用了一个老旧的算法,也正因如此,研究人员能够开发出对应的解密软件。
Locky Bart会执行一组相当直接的操作来加密受害者的文件。操作列举如下:
使用VSSadmin擦除系统还原点。
生成种子来创建加密用户文件的密钥。
枚举它将要加密的文件,跳过某些文件夹来提高速度。
使用生成的密钥加密枚举文件。
使用主密钥加密用于加密文件的密钥,得到的密钥被用于标识它们的受害者身份的“UID”。
在桌面上创建一个带有付款页面链接及其“UID”的赎金记录。
图1:用于生成种子的函数,创建用于加密文件的密钥。它使用诸如系统时间,进程ID、线程ID、进程活动时间和CPU时钟这样的变量来生成随机数。
图2:用于枚举并加密文件的函数。
图3:Locky Bart将跳过包含像tmp、Recovery、AppData等这些字符串的任何文件夹。
图4:Locky Bart要加密的文件类型
图5:Locky Bart中用于赎金说明的字符串。
其中 “khh5cmzh5q7yp7th.onion”是支付服务器,并且样本UID “AnOh / Cz9MMLiZMS9k / 8huVvEbF6cg1TklaAQBLADaGiV”将与URL一起被发送到服务器以供受害者进行支付。请记住,UID只是可用于解密受害者文件的密钥的加密版本。
Bart Locky的开发者如何获得密钥(UID)的方式是新版本与其前身的最主要区别。当勒索软件的受害者访问URL以支付赎金时,他们不知不觉地将其解密密钥发送给了犯罪分子。
让我们以一个更加细致的方法来分解这个过程,以便能够更好地理解它。
1、Locky Bart收集受害者机器上的相关特征信息以创建加密密钥。
2、Locky Bart使用在上一步中根据种子创建的密钥来加密用户的文件。
3、Locky Bart使用公钥/私钥对方法中的公钥,用单向加密机制加密用于原始加密的密钥。用于此加密过程的私钥驻留在恶意软件服务器上并且受害者无从访问。
4、然后Locky Bart在受害者的机器上生成一个URL。它包含指向托管恶意后端网站的由TOR隐藏的.onion后缀地址的链接。该链接中包含用户ID。该UID是加密形式的解密密钥。
5、受害者访问.onion站点,恶意软件服务器将收集到加密的UID。
这个UID对受害者是无用的,因为他们没有私钥来解密他们的文件。 然而,对于勒索软件开发者的服务器来说是有用的,这意味着他的服务器不仅可以使用UID来识别受害者,而且还可以在受害者支付赎金后将UID解密成受害者文件的加/解密密钥(在对称密码体制中,加密密钥和解密密钥相同;而在非对称密码体制中,公钥可由任何人获取,但私钥只有本人知道,译者注)。
最后,只有勒索软件开发者可以解密用户的文件,并且由于此特性,不需要再访问恶意软件服务器来加密它们。
软件保护技术
Locky Bart二进制也使用了软件保护技术。这种技术被称为代码虚拟化,并通过使用“ WPProtect ”软件将其加入了Locky Bart的二进制中。
这显然使得二进制逆向变得更加困难,并且使得代码更加复杂化。这种类型的软件的合法使用在反盗版机制中最常见。采用该技术的软件的商业版本的示例是Themida 。Locky Bart的作者可能选择了这种特殊的防篡改机制,因为它是免费的、开源的、并提供了许多功能。这种软件保护技术的采用是一种十分麻烦的发展。这些应用程序,包括WPProtect在内,都使得逆向和分析变得更具挑战性。
服务器分析
Locky Bart服务器主要用于向受害者提供支付机制来支付赎金。机制中包括:
接收用作付款方式的比特币。
将比特币转移到其他钱包。
为受害者生成解密EXE。
向受害者提供解密EXE。
收集关于受害者的更多信息。
Locky Bart后端运行在一个名为yii的框架上。Yii是一个高性能的PHP框架,最适合开发Web 2.0应用程序。这个框架包含了大量关于Locky Bart内部工作的信息。
图6:包含有关配置服务器详细信息的Yii调试面板
访问此控制面板显示:
服务器上运行的所有软件的配置设置,比如PHP,Bootstrap,Javascript,Apache(如果使用),Nginx(如果使用),ZIP等等。
向服务器发出的每一项请求,包括其请求信息、标题信息、主体、时间戳以及它们的起始位置。
显示每个错误、跟踪和调试选项的日志。
所有自动化电子邮件函数。
MYSQL监视功能,显示每个语句的作用和它的返回值。
Locky Bart将信息存储在MYSQL数据库中。MYSQL服务器的凭据驻留在站点路径下“Common”文件夹中的“Config”PHP文件中。示例路径如下所示:/srv/common/config/main-local.php
图7:Locky Bart的服务器中MYSQL配置文件的内容
MYSQL数据库中包含的信息包括受害者的唯一标识符、加密密钥、比特币地址、付费状态和时间戳。
图8:数据库中保存勒索软件信息的表的一小部分
Locky Bart服务器还包含第二个数据库,其中包含有关勒索软件受害者的进一步信息
图9:Locky Bart勒索软件的“Stats”表示例
图10:在服务器上找到的“ReadMe”文件好像详细列举了Stats数据库上的一些功能
Locky Bart服务器包含一个“BTCwrapper.php”文件,它使用一个“controller”控制器方法公开一个“BTC”比特币(BiTCoin)钱包类,这样所有其他PHP文件都可以调用这个类。该类通过用户名和密码启动与比特币服务器的连接。这个类包含完整的方法来控制和使用由犯罪分子设置的主比特币钱包来储蓄所有收到的钱。这个钱包会定期清空。这个类也可以创建新的比特币地址,并有能力清空那些钱包中的钱把它们付款到主钱包里去。还有一些方法可以检查每个受害者的付款情况。
图11:一些BTCWrapper类中调用的函数
图12:BTCWrapper类的前几个函数。
该类使用CURL联系与区块链通信的本地运行的比特币服务器。
Locky Bart服务器有2个接收受害者转账的比特币地址,当前是第一个:
图13:与Locky Bart相关联的当前BTC地址在其使用寿命中累积了7,671.60美元
然后是第二个,它在恶意软件服务器上的PHP配置中被引用。
图14:同样与Locky Bart相关联的旧BTC地址累积了457,806.06美元
此勒索软件的服务器配置与合法业务非常相似。它模仿充当了一个“支持票务部”,用户可以联系勒索软件支持服务描述任何他们可能遇到的问题。
整个过程是完全自动化的。用户将受到感染,并根据他们收到的“赎金通知”的指示访问对应网站。然后当他们访问该站点时,服务器将生成其唯一的比特币地址并自动呈现给他们。
之后,如果用户决定支付赎金,但同时他们可能有一些问题,都可以直接联系支持服务。
如果他们确实做出支付赎金的决定,他们将通过许多可用的方法,比如BTC ATM,LocalBitcoins – 它允许您与当地人见面把比特币兑换为货币或使用像西联汇款这样的银行和接线,或使在线信用卡支付。
图15:支付方式举例
如果用户的比特币电子钱包中拥有足够的勒索软件指定的金额,他们就会将钱从他们的钱包转移到为他们生成的勒索软件付款页面的付款地址。
勒索软件服务器每隔几分钟会检查一次其受害者是否在准备付款和付款是否已确认。一旦服务器证实付款已成功,它将在数据库中将该受害者标记为“付费”。
当受害者被标记为“付费”时,服务器会生成“解密工具EXE”,并将用户加密密钥写入该exe的二进制文件,并提供下载链接到受害者的个人支付页面上。之后当受害者再次检查他们的付款页面时,他们将得到链接、下载工具、并解密他们的文件。
图16:生成受害者的解密工具
结论
这项针对Locky Bart勒索软件的研究给出了操作勒索软件的一个很好的视角,因为我们通常不会看到后端的运作情况。运营这些操作的罪犯拥有非常高的专业水平,而用户应该总是采取额外的措施来保护自己免受这些类型的攻击。
勒索软件将继续增长并变得越来越高级,用户需要确保他们重要文件已经备份,使用像Malwarebytes这类的安全保护程序,并确保这些保护程序有一些类型的反勒索软件技术保护他们免受这些高级攻击(Malwarebytes已经配备)。