到目前为止,我们专门为有趣,低级的赎金软件致力于若干文章彼佳,劫持启动扇区。你可以在这里读到:

每个版本都使用Salsa20算法加密主文件表,使磁盘不可访问。然而,由于实现错误,预期的算法被削弱了——这给了恢复数据的机会。

不幸的是,在这种情况下,网络罪犯修复他们的密码只是时间问题。Petya的作者们在第三次尝试时发现了这一点。目前掀起的这一浪潮ransomware最后似乎有适当的萨尔萨20。

示例:c8623aaa00f82b941122edef3b1852e3

行为分析

Petya的行为没有改变 - 我们可以看到与之相同的UI以前的绿色版

green_petya

内部

让我们看看代码中的不同之处。通过使用BinDiff,我们可以发现没有多少函数发生了变化。但是,对上一版的薄弱环节进行了修改。

main_changes.

Salsa20.

首先,让我们来看看这个功能s20_littleendian这导致了上一个版本中的主要错误。由于它的无效执行,16个字符中只有8个是有意义的,强制执行按键变得更容易了procrash)。详细说明此错误您可以在更新中找到关于前一个Petya的帖子-在“新Petya,新bug”部分。

在左边-你可以看到有bug的函数的实现(来自上一个版本)。对右-电流,固定执行:

fixed_s20

解释
旧的实现被截断 - 它没有使用32位值,因为它应该 - 仅添加了16位值的符号位扩展:

静态int16_t s20_littledendian(UInt8_t * b){return b [0] +(b [1] << 8);}

现在,作者使用32位获得了正确的实现。因此,Salsa20中的最后一个错误最终得到了修复,使实现完成。

关键

在Petya的第一个(红色)版本中,作者使用了32字节长的Salsa键——然而,这是从16字节长的键生成的,使用一个自定义函数对其进行预处理和扩展。

在第二个绿色版本中,他们放弃了这个想法,并应用了原来的16字节长密钥,没有任何修改。

这一次,他们改变了思想,并回到了第一个解决方案,即使用32字节长键,但随着一些改进。我们可以看到expand32在代码中(而不是expand16从前面的版本中闻名):

expand32

当受害者插入键的键进行验证时,在使用它作为SALSA20键之前,它被新算法预处理(比红色Petya的情况更复杂):

process_key

结论

新版本显示该项目正在达到成熟 - 但是,正如我们可以在相关的洋葱页面上阅读 - 它仍然是一个测试版,我们可以期待它将继续不断发展。以下 - Petya的Raas网站的片段:

bet

我们还不确定分发方法,但概率很高,也是这次它是垃圾邮件,带有导致云存储的链接。我们强烈建议将工作申请的额外警惕升级到这几天 - 它已被证明是Petya / Mischa Dropper的普通封面。有关它的更多信息,您可以在我们之前的关于Petya的文章中找到。

附录

Petya和Mischa - 勒索软件二重唱(第1部分)

此视频无法显示,因为您的功能性饼干目前禁用。

要启用它们,请访问我们的隐私政策并搜索cookie部分。选择“点击这里”打开隐私偏好中心并选择“功能饼干”在菜单。您可以将选项卡切换回“活跃”或通过移动标签来禁用“不活跃。”点击“保存设置”。


这是一篇由Hasherezade撰写的客座文章,他是一个对InfoSec有浓厚兴趣的独立研究员和程序员。她喜欢详细说明恶意软件并与社区分享威胁信息。在Twitter上检查她hasherezade和她的个人博客:https://hshrzd.wordpress.com