freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Nokayawa 勒索软件的变种:Nevada
2023-03-14 22:55:11
所属地 北京

研究人员一直在持续跟踪 Nokoyawa 勒索软件家族及其前身,包括 Karma 勒索软件与 Nemty 勒索软件。最早在 2022 年 2 月,使用 C 语言开发的 Nokoyawa 勒索软件被在在野发现。其利用非对称椭圆曲线(ECC)、NIST B-233 (SECT233R1)算法与 Tiny-ECDH 开源库的 Salsa20 算法来对文件实现加密。2022 年 9 月,Nokoyawa 勒索软件启用 Rust 语言开发的版本。该版本的恶意软件仍然使用 Salsa20 算法,但使用 Curve25519 取代了 ECC 算法。

2022 年 12 月,地下犯罪论坛上出现了 Nevada 勒索软件,分析人员确定其与基于 Rust 开发的 Nokoyawa 变种存在代码共享。2023 年 1 月,研究人员发现了另一个使用 C 语言开发的 Nokoyawa 勒索软件,但使用了与 Rust 语言开发的 Nokoyawa 勒索软件相同的配置项。研究人员认为,Nokoyawa 勒索软件团伙似乎在利用两个独立的分支进行勒索软件攻击。

技术分析

目前已经发现至少四个不同版本的 Nokoyawa 勒索软件,根据代码相似性进行编号其异同如下所示:

特征Nokoyawa 1.0Nokoyawa 1.1Nokoyawa 2.0Nokoyawa 2.1(Nevada)
加密算法SECT233R1 + Salsa20SECT233R1 + Salsa20X25519 + Salsa20X25519 + Salsa20
加密库Tiny-ECDHTiny-ECDHx25519_dalekx25519_dalek
开发语言C/C++C/C++RustRust
加密参数硬编码命令行命令行硬编码
API 哈希
独联体国家例外
架构x64x64x64x64
最早编译日期2022 年 2 月2023 年 1 月2022 年 9 月2023 年 1 月

所有的 Nokoyawa 变种间是存在共同点的,例如都是只针对 64 位版本 Windows 进行编译、都使用相同的方式删除 Windows 卷影副本。删除卷影副本的方式非常小众,通过 IOCTL_VOLSNAP_SET_MAX_DIFF_AREA_SIZE (0x53C028) 参数调用函数 DeviceIoControl 即可删除全部卷影副本。

image.png-227.7kB删除卷影副本的代码

所有版本的 Nokoyawa 都支持命令行参数 --file与 --dir,但 1.1 与 2.0 版本的 Nokoyawa 需要通过 --config参数配置才能执行勒索软件。配置参数如下所示:

Key含义
NOTE_NAME勒索信息文件名
NOTE_CONTENT勒索信息内容
EXTENSION加密文件扩展名(也用作随机数)
ECC_PUBLICCurve25519 算法公钥
SKIP_EXTS不加密的文件扩展名
SKIP_DIRS不加密的目录
ENCRYPT_NETWORK加密网络共享
DELETE_SHADOW删除 Windows 卷影副本
LOAD_HIDDEN_DRIVES显示隐藏驱动器并加密文件

Nokoyawa 1.1 的 --safe-mode 参数支持进入 Windows 安全模式,从而加载最少的应用程序来实现加密文件的最大化。另外,Nokoyawa 1.1 也是唯一通过 CRC32 哈希混淆运行时调用 API 的变种。

Nevada 的参数被加密硬编码在样本文件中,但其命令行选项与 Nokoyawa 1.1 和 2.0 基本相同。如下所示,Nevada 还支持 --help 参数。

image.png-77.5kBNevada 的命令行提示

Nokayawa 2.0 和 Nevada 都会检查失陷主机是否位于独联体国家。前者通过 GetSystemDefaultLCID 获取语言 ID,后者调用 GetUserDefaultUILanguage 获取系统的区域与语言。攻击者并未逐一添加对应的 ID 值,而是采取了区间范围判断的方式。

根据 BinDiff 的分析,Nokoyawa 1.0 和 Nokoyawa 1.1 共享约 39% 的代码,而 Nokoyawa 2.0 和 Nevada 则共享超过 87% 的代码。

调试打印语句

Nokoyawa 2.0 和 Nevada 之间的另一个相似之处是调试打印语句几乎相同,如下所示:

image.png-476.1kB左侧 Nokoyawa 2.0 与右侧 Nevada 的对比

许多字符串在 Nokoyawa 2.0 和 Nevada 之间也略有变化,如下所示:

image.png-29.8kB调式打印语句的对比

加密算法

Nokoyawa 1.0 和 1.1 通过 Tiny-ECDH 库使用椭圆曲线 SECT233R1 (NIST B-233) 算法生成每个文件对应的 Salsa20 密钥。Nokoyawa 2.0 和 Nevada 通过 Rust 开源库 x25519_dalek 使用 Curve25519 算法为每个文件生成 Salsa20 密钥。

在 Nokoyawa 1.1 和 2.0 中,文件扩展名被用作随机数。而 Nokoyawa 和 Nevada 勒索软件的原始版本分别使用硬编码的值:lvcelvce 和 pmarpmar。

结论

研究人员确定了两个并行版本的 Nokoyawa 勒索软件,分别使用 C 与 Rust 进行开发。出现的两个分支可能表示该勒索软件的源代码已经泄露,或者攻击者想要逃避检测并且转移安全人员的注意力。总之,Nevada 勒索软件是基于 Rust 开发的 Nokoyawa 勒索软件新变种,而非新的勒索软件。

IOC

a32b7e40fc353fd2f13307d8bfe1c7c634c8c897b80e72a9872baa9a1da08c46
3339ba53e1f05f91dbe907d187489dbaba6c801f7af6fd06521f3ba8c484ec6c
7095beaff5837070a89407c1bf3c6acf8221ed786e0697f6c578d4c3de0efd6
855f411bd0667b650c4f2fd3c9fbb4fa9209cf40b0d655fa9304dcdd956e0808

参考来源

Zscaler

# 勒索软件 # Rust
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录