freeBuf
主站

分类

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

特色

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

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

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

FreeBuf+小程序

FreeBuf+小程序

勒索软件 BlackBasta 2.0 的技术演变
2023-02-26 23:34:21
所属地 北京

2022 年 11 月 16 日,研究人员发现 BlackBasta 勒索软件开始使用全新的样本文件。新版本的 BlackBasta 相比旧版本更新了许多代码(包括文件加密算法与库文件),拥有更低的引擎检出率。恶意样本的大部分字符串都已经经过混淆,文件名也已经随机化,这阻碍反病毒引擎与 EDR 等安全产品的检测。

技术分析

字符串混淆

与 Conti 勒索软件类似,BlackBasta 勒索软件开发人员似乎也使用了 ADVObfuscator 进行字符串混淆。如下图所示,基于栈进行构建,并且使用异或操作对单个字节进行解密:

image.png-273.3kB字符串混淆

目前,并非是所有字符串都经过混淆处理。但可以预期的是,日后会有更多的字符串被混淆。

文件加密

BlackBasta 2.0 版本中给最重要的部分就是对加密算法的修改。最初,BlackBasta 勒索软件使用非对称 4096 位 RSA 公钥与对称 ChaCha20 算法进行加密。而且,RSA 算法是通过 GNU 多精度算术库(GMP)实现的。而在最新的 BlackBasta 2.0 中,加密算法已经被椭圆曲线(ECC)和 XChaCha20 算法所取代。并且,算法实现转而使用 Crypto++。新版本使用的椭圆曲线算法为 secp521r1,内嵌的公钥为:

Public-Key: (521 bit)pub:04:00:52:1f:d8:b3:65:b7:9c:30:bd:fa:1c:88:cc:77:77:81:f6:50:9d:d9:17:8d:17:d8:fa:3a:8c:b0:f2:6f:87:21:0c:95:db:94:f5:9c:bf:fd:ca:f0:8d:19:6a:9c:2f:9f:4b:96:20:31:95:41:54:3e:92:43:ed:7b:d1:81:8c:58:78:01:2e:31:b8:02:7a:c1:b9:7f:2f:b4:b2:ba:aa:df:ed:68:a2:df:eb:90:4a:4f:da:28:10:db:f5:ae:12:08:cf:dd:1f:10:80:48:00:32:38:1d:23:40:0c:ca:05:2c:5c:d2:79:1d:ae:8f:0a:74:a1:1c:79:b3:0c:38:21:aa:94:1a:4fASN1 OID: secp521r1NIST CURVE: P-521writing EC key-----BEGIN PUBLIC KEY-----MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAUh/Ys2W3nDC9+hyIzHd3gfZQndkXjRfY+jqMsPJvhyEMlduU9Zy//crwjRlqnC+fS5YgMZVBVD6SQ+170YGMWHgBLjG4AnrBuX8vtLK6qt/taKLf65BKT9ooENv1rhIIz90fEIBIADI4HSNADMoFLFzSeR2ujwp0oRx5sww4IaqUGk8=-----END PUBLIC KEY-----

BlackBasta 2.0 在加密过程中使用被成为 DHIES 的加密模式,利用 Crypto++ 中的椭圆曲线集成加密方式(ECIES)生成每个文件的 XChaCha20 与基于哈希的消息认证码(MHAC)。在完成加密后,BlackBasta 会向文件结尾追加一个 314 字节的数据,如下所示。

image.png-108.2kBBlackBasta 2.0 加密文件

蓝色部分的 133 个字节是为每个文件临时生成的 secp521r1 公钥,接下来的 56 个字节是用于 XChaCha20 加密的密钥(32 字节)与随机数(24 字)。随后的红色部分是 HMAC(20 字节),灰色部分为空字节填充,橙色部分为加密文件的大小(2 字节)。最后的紫色部分为 flag(12 字节),攻击者依赖此处识别受害者。

为了提高加密速度,BlackBasta 根据文件大小使用 XChaCha20 对文件进行不同策略的加密。如果件小于 5000 字节,则整个文件将以 64 字节为单位进行加密。如果文件大于 64 字节且不是 64 字节的偶数倍,则不会加密最后的 64 字节块。如果文件小于 1GB,BlackBasta 会交替加密 64 字节块并跳过 128 字节,直到文件末尾。如下图所示:

image.png-121.6kB交替加密数据

如果文件大于 1GB,BlackBasta 会首先加密文件前 5064 个字节。在跳过 6336 个字节后,加密 64 个字节再跳过 6336 个字节,一直持续到文件末尾。XChaCha20 加密代码如下所示:

image.png-545.7kBXChaCha20 文件加密代码

加密完成后,BlackBasta 使用硬编码的扩展名重命名文件。这些扩展名都是针对每个受害者定制的,例如 .agnkdbd5y、.taovhsr3u 或 .tcw9lnz6q。以前版本的 BlackBasta 使用的扩展名是固定的,为 .basta。

勒索文件的图标也进行了修改,从白色变成了红色:

image.png-34.6kB图标对比

勒索信息

BlackBasta 2.0 将勒索信息也作了修改,如下所示:

image.png-550.1kB勒索信息(2022 年 11 月)

特征变化

新旧版本的特征对比如下所示:

特征BlackBasta 1.0BlackBasta 2.0
加密库GMPCrypto++
非对称加密RSANIST P-521
对称加密ChaCha20XChaCha20
更改加密文件图标
加密文件扩展名.basta.[a-z0-9]{9}
更换桌面壁纸
勒索信息文件名readme.txtinstructions_read_me.txt
字符串混淆
终止进程与服务
删除卷影副本根据样本
加密文件图标名称fkdjsadasd.icofkdjsadasd.ico
互斥量dsajdhas.0ofijweiuhuewhcsaxs.mutex

其命令行参数也进行了修改,如下所示:

参数BlackBasta 1.0BlackBasta 2.0描述
-threads加密进程数
-nomutex不创建互斥量
-forcepath加密指定路径下的文件
-bomb通过活动目录传播

结论

Conti 勒索软件似乎已经分裂成包括 BlackBasta 在内的多个攻击组织,进一步扩大了勒索软件的威胁。自从 2022 年 11 月中旬,BlackBasta 2.0 面世以来,研究人员发现了多个受害者。这表明该攻击组织是十分成功的,并且也在持续更新和升级。

IOC

e28188e516db1bda9015c30de59a2e91996b67c2e2b44989a6b0f562577fd757
c4c8be0c939e4c24e11bad90549e3951b7969e78056d819425ca53e87af8d8ed
350ba7fca67721c74385faff083914ecdd66ef107a765dfb7ac08b38d5c9c0bd
51eb749d6cbd08baf9d43c2f83abd9d4d86eb5206f62ba43b768251a98ce9d3e
07117c02a09410f47a326b52c7f17407e63ba5e6ff97277446efc75b862d2799

参考来源

Zscaler

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