首页
社区
课程
招聘
[原创]【病毒分析】BabyK加密器分析-Windows篇
发表于: 2024-5-30 13:52 12910

[原创]【病毒分析】BabyK加密器分析-Windows篇

2024-5-30 13:52
12910

1.背景

Babuk勒索家族最早曝光于2021年1月初,在几个月内,它就跻身于最臭名昭著的勒索软件组织之列。自回归以来,它通过在地下论坛上积极宣传自己而获得了更多的知名度。在策略方面,其加密功能与其他勒索软件组织没有太大区别。随着时间的流逝,勒索软件组织通过发布新变种并致力于改进其攻击机制,成功地制造了混乱。

该加密器使用了多种加密方式:HC-128/ChaCha8 对称加密算法、椭圆曲线 Diffie-Hellman (ECDH)、SHA256 hashing等,特征也极为特殊,会将所有被加密文件后缀修改为.babyk,并且在所有加密文件的加密内容末尾附加字符串“choung dong looks like hot dog!!!”,该字符串的意义是为了标注着勒索软件与 Babuk 有关。

解析Babyk行为文章链接

以下是针对 Linux/UNIX 和 ESXi 或 VMware 系统的跨平台加密后提取的勒索信内容。

勒索信

该加密器最初的泄露是来自于一篇Twiter文章,是由其babuk的开发者泄漏的源代码。

Twiter文章:


源码泄漏地址:

其中存在三种针对不同系统类型(Linux系统、NAS系统、Windows系统)的病毒文件,本篇是针对Windows系统的分析。

这里可以通过VS生成了Builder.exe来实现对其Builder过程进行分析,可以看到主要是对这部分文件的处理与释放

文件释放列表及作用:

1 读取参数,第一个参数是文件夹路径,第二个是指定密钥文件

2 根据参数1的文件路径,来和kp.curve25519与ks.curve25519进行拼接,用于后续存储密钥

3 利用随机数函数CryptGenRandom来产生一个私钥,再利用该私钥配合curve25519算法生成一个公钥

4 或者看是否存在第三个参数,有指定私钥的文件,利用该文件内的私钥配合curve25519算法生成一个公钥

5 将私钥和外部的note.txt勒索信写入到加密器中,将私钥写入到解密器中


6 将生成的私钥和公钥写入到kp.curve25519和ks.curve25519文件中

1.整体流程就是调用随机数函数SystemFunction036,产生了32位的随机数。

2.其中systemFunction036是cryptbase.dll中的函数。

3.之后就是经过了Curve25519算法的密钥生成,得出了一个公钥和一个私钥。

程序先初始化了一下加密的句柄,使用了CryptAcquireContextW函数,获取了两次一共,第一次就是有现成的加密句柄就用现成的,第二次的话就是保障一下,如果没有就创建一个,然后第三个参数是加密的类型,这里的0x18则是对应的PROV_RSA_AES,意味着支持RSA和AES加密算法。

最后将加密句柄返回。

回到主函数,获取了输入的参数,并且判断是否存在debug参数,如果存在则开启调试模式


如果是调试模式开启,则创建一个用于记录调试模式的文件


主要比较有特点的就是,通过使用ControlService函数,来对服务发出停止操作,然后调用sleep函数直到服务成功停止后,再调用。

所停止的服务有:

调用了cmd命令实现:

获取了系统的信息,并且获得了系统的处理器的数量,并且创建了参数分别为0和1的两个加密线程。

StartAddress

一共有两种参数,0的话就是会检查一下当前的文件队列,1的话就直接开始加密。

获取shares和paths的参数,该程序格式应该是用逗号分开的。

其中shares代表了加密IPC共享资源中的文件。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2024-5-30 14:49 被solar解密编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//