当前位置:首页资讯大全 → 遭遇勒索软件应该怎么办

遭遇勒索软件应该怎么办

来源:小编 | 更新时间:2023-07-02 13:56:25

随着网络技术的不断发展,一系列的网络恶意软件也不断衍生出来。勒索软件是黑客用来劫持用户资产或资源并以此为条件勒索用户金钱的恶意软件。

勒索软件

在本文中,Cylance 高级威胁研究员Derek Soeder 分享了如何对勒索软件进行逆向工程以恢复加密用户文件的密码。我们来看看Soeder 是如何恢复被勒索软件“绑架”的用户数据的。

勒索软件挑战2013 年初,一个组织向我们寻求帮助,希望帮助他们从感染ACCDFISA 勒索软件的服务器中恢复数据。该恶意软件仔细扫描了每个驱动器上的每个文件,并恶意加密了所有重要文件。从备份恢复是不可能的,因为服务器上的备份驱动程序也安装了恶意软件。这实在是彻底的失败了!

该恶意软件将每个文件转换为包含加密RAR 的自解压程序,命令为:(!Decrypt email id…to…@…!).exe。

该变种声称使用高级加密标准,该标准是随机生成的256 个字符。 256 单独加密每个“受害者”,攻击者可以远程存储这些密码。据说这种加密方法可以安全地删除所有未加密的原始文件以及密码文件,从而阻止硬盘恢复工作。

试图在解压软件的加密中寻找漏洞似乎并不是最有效的解决方案;相反,我们应该把注意力转向破解密码。为此,我们需要找到创建密码的代码。

找到密码生成器

经过反复检查受感染服务器的驱动程序副本,我们发现恶意程序与一些奇怪的文件之间可能存在关联。我们找到了Microsoft Sysinternals 中的删除工具(可永久删除文件)、“NoSafeMode”库以及用于自解压程序的RAR 实用程序。 RAR 实用程序就成为我们进行逆向工程的起点。

该实用程序接受加密密钥作为命令行参数,因此我们怀疑可以通过回溯用于启动它的恶意软件代码来找到密码生成器。

找到密码生成器

首先,我们在一次性系统上运行此勒索软件。我们使用调试器拦截对构建过程的调用并启动RAR 实用程序,伪装成svchost.exe。这样我们就可以看到勒索软件执行的每个命令以及最终用于加密文件的密码。截获的密码为aseT322B2XgM(mC0.长度为57个字符,大小写字母、数字、标点符号混合,一键随机生成)。 aes开头的密码可能是巧合,也可能是刻意的修饰。如果是故意的,那么我们预计会在勒索软件代码中找到字符串。当我们打开勒索软件反汇编程序时,我们不仅发现了aes,还发现了aesT322。因此我们知道密码实际上是aesT322 后跟大约50 个随机生成的字符。

勒索软件反汇编程序

我们知道截获的密码不一定与用于加密客户文件的密码相同。但我们已经知道一些线索来指导我们下一步的逆向工程:我们可以查找密码本身或片段,查找可能用于生成密码的字符表,并查找用于构建密码部分的字符串命令行的。我们使用调试器来查找勒索软件运行时分配给全局变量的值。通过逆向工程,我们识别出一个全局变量:一个带有aesT322 前缀字符串,另一个带有50 个随机字符串和57 位完整密码。

了解发电机的工作原理

我们已经了解了很多有关勒索软件如何运作的知识,但目前我们认为它不会帮助受害者。事实上,我们已经排除了在所有情况下只使用一个固定字符串(即简单密码)的可能性,我们仍在路上。

通过跟踪程序中每个实例中的三个变量,我们发现了一个循环,其中从由26个小写字符、26个大写字母、10个数字和16个标点符号组成的78个字符中随机选择50个字符表,该字符表有重复。计算机很难实现真正的随机性。破解加密的一种方法是攻击“伪随机数生成器”(PRNG),这就是我们真正要做的。

最终我们找到了初始化的PRNG,或者说“种子”,它是一个32 字节的数字,带有执行此代码的线程的标识符,以及系统运行了多长时间(以毫秒为单位)。这些是可预测的值。由于32 字节种子,我们现在知道可能有多达40 亿个不同的密码,而不是真正从78 个字符中随机生成50 个字符的天文数字可能性。

原因在于,正如前面提到的,即使是随机行为,计算机通常也会使用刚性的决策方法。对于任何给定的种子值,PRNG 可以随时以相同的顺序和方式从初始值生成相同的数字。而种子是一个32字节的数字,因此有0到10亿种可能性,因此相同初始状态存在的可能字段受到很大限制。

猜测密码的过程非常耗时,这就是我们接下来要做的。

猜密码

40 亿个密码的列表令人恐惧。但我们知道,种子依赖于一个线性ID(它是四的倍数),通常小于10000并且系统正常运行周期。在49.7 天的时间里,正常运行时间将从0 计数到40 亿,然后一圈又回到0。第——章被攻击(第——章)但我们发现了一些更好的案例。

猜密码

在所有奇怪的文件中,我们在ProgramData目录中发现了一个stppthmainfv.dll,其中有21行,每行8个随机字母。我们决定逆向操作,使用“蛮力”破解所有可能的种子值,找出哪一个可能使PRNG 生成这21 行。由于这是一个32 位字符串,我们知道在普通计算机上搜索不会超过几个小时。这比使用所有潜在密码破解RAR 实用程序要快得多。单核CPU可以在4秒内测试31956209种可能性,同时找到stppthmainfv.dll中相同字母序列生成的31956208个种子值。我们生成了大约12MB 的密码列表和种子值用于测试(可能比测试236GB 大小中的40 亿强得多)。我们连夜运行了一批程序,针对RAR 实用程序进行逐个密码的测试。

当早晨到来时,我们得到了我们一直在等待的正确密码——。实验成功了!最后,观看我们成功从勒索软件中恢复用户数据。

热点资讯

CopyRight©2020-2030 http://www.jitabbs.cn