2018年1月,总部位于印第安纳州格林菲尔德的Hancock Health(医疗保健网络)遭到SamSam勒索软件攻击。它加密了包含患者数据的文件,从而破坏了他们的关键服务。尽管SamSam不是新的勒索软件,但它已经发展了一段时间。我们在2016年2月观察到其第一个变种,该变种使用RSA算法加密目标用户的文件。但是,这次,我们发现了勒索软件的启动方式发生了重大变化。新旧版本之间的主要区别是可执行文件的使用‘runner.exe’ – it decrypts the ‘.stubbin’扩展文件并执行解密的内容。解密的结果是一个SamSam勒索软件文件。
下面的图1描绘了当前SamSam勒索软件活动的攻击链。

部署技术使“ Runner”成为SamSam勒索软件活动中的关键组成部分。但是,我们不知道感染的来源‘runner.exe’。在这篇文章中,我们将更深入地研究‘runner.exe’–此广告系列的关键组成部分。
跑步者
在过去的几个月中,我们看到了“ 运行程序”的不同变体。对于每个变体,我们注意到传递给‘runner.exe’。第一个参数用作解密密码的密码‘.stubbin’传递文件和其余参数以解密有效载荷(SamSam勒索软件)。

我们来看一下带有三个命令行参数的.NET编译后的可执行文件(runner.exe)的详细信息。

“ Runner.exe”在其当前工作目录中搜索扩展名为“ .stubbin”的文件。找到的第一个文件是所需的加密文件。然后,它将文件的内容复制到数组(arg_4E_0)中,并删除原始的“ .stubbin”文件。加密字节数组和命令行(密码)中的第一个参数传递给‘Decrypt’功能。然后,运行程序将解密的字节加载到内存中,并通过传递其剩余的命令行参数作为输入来执行它。
解密ion of ‘.stubbin’ file
“ Runner.exe”使用Rijndael算法解密作为密码数据传递的字节。这是一个对称密钥密码算法。在这里,它使用32字节的密钥和16字节的初始化向量(IV)来解密“ .stubbin”文件。
下面的图4显示了使用密码生成密钥和IV。

‘PasswordDeriveBytes’类用于生成密钥和IV。它是一个预定义的.NET构造函数,它使用密码和盐作为输入来生成密钥。 Salt是一个随机数据,用作“散列”密码功能的附加输入,并用于使普通密码变得不常见。
下面的图5显示了解密例程,该例程对SamSam勒索软件文件进行解密。

‘CryptoStream’构造函数和Rijndael解密程序用于对CipherData执行的加密操作。使用IV,Rijndael算法对Cipher数据的密钥将导致勒索软件有效载荷。
跑步者变体
在最旧的SamSam勒索软件中,没有‘runner.exe’被观测到。仅使用RSA对称密钥作为命令行参数来执行有效负载。但是,最新的变体用法‘runner.exe’ with 4 arguments.
下面的图6显示了在不同的版本中传递的参数之间的差异‘runner.exe’.

我们还在代码和函数名称中使用混淆来观察一些变体。

山姆勒索软件活动中使用的部署技术使核心勒索软件的检索变得困难。因此,这阻碍了在SamSam勒索软件文件上提供静态检测的过程。变体中的timedatestamp特性描述了新变体的到来‘runner.exe’每个月。因此,在未来的几天里,我们可能会看到具有更多混淆功能和某些高级功能的新变体。
危害指标
D8469E625AE90AB64D4AEF0B63F42150
7A25B0D43047552CBDAD17CFB488317D
038FB413F51B0AB7EB088E0F3EA7BE90
A82DB52BC6F1E5477EB1809CD5F23489
主题专家
Dhwanit Shrivastava,Yogesh Bane |快速修复安全实验室
没意见