«

【病毒分析】Babyk加密器分析-NAS篇

站长 • 2024-08-15 13:14 • 60 次点击 • 技术教程


 

1.前情提要

继上篇分析了关于Babyk加密器在Windows环境的行为特征,本篇是针对NAS系统的相关分析。

2.总体行为:

 

3.密钥下发(Builder.exe)

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

 

文件释放列表及作用:

无法复制加载中的内容

流程图:

 

逻辑分析:

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

 

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

 

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

 

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


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

 

 

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

 

4.密钥产生程序

4.1 逆向分析(keygen.exe)

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

 

其中systemFunction036是cryptbase.dll中的函数

 

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

 

5.NAS

5.1 目录结构

存在一个build.bat批处理文件和main.go代码文件

 

5.2 单独构建脚本(build.bat)

build.bat:

@echo off

set GOOS=linux
set GOARCH=386
go build -o e_nas_x86.out

set GOOS=linux
set GOARCH=arm
go build -o e_nas_arm.out

pause

该脚本会生成两个版本的文件,一个是linux下intel架构的程序,另外一个是linux下arm架构的程序。

5.3 加密器分析(e_nas_x86)

5.3.1 整体流程

 

5.3.2 逆向分析

首先获取勒索信的长度,并将其赋值到note_content,用于后续勒索信的写入。

 

5.3.2.1 读取参数

判断是否存在输入参数,如果有就对其进行遍历,如果没有那就打印帮助说明e_nas_x86.out /path/to/be/encrypted,意味着参数1是需要指定加密路径。

 

遍历文件,对文件进行过滤加密,不是文件就继续递归

 

5.3.2.2 路径过滤

目录的判断是有遇到过滤目录的话,就会选择跳过,不做加密操作,最后遍历完后,会写入勒索信。

5.3.2.3 过滤目录

/proc
/boot
/sys
/run
/dev
/etc
/home/httpd
.system/thumbnail
.system/opt
.config
.qpkg
/mnt/ext/opt

 

5.3.2.4 过滤文件

.babyk
README_babyk.txt

如果是文件,会判断是否是加密后缀的文件(.babyk),或者是否是勒索信(README_babyk.txt),如果都不是,会调用main_main_func1_gowrap1函数进行加密流程,否则就跳过。

 

5.3.2.5 文件加密

main_main_func1_gowrap1函数

这里的话,主要就是调用main_encrypto_file进行加密实现

 

5.3.2.6 加密核心(main_encrypto_file函数)

基本的流程和windows差不多,一个是在生成IV和Key的过程换成了sha256,其次就是最后的流加密算法换成了Chacha20。

 

生成加密私钥和公钥,并结合黑客的公钥生成共享密钥,最后将文件名称修改为加密文件名称。


利用共享密钥生成IV和KEY

 

 

对文件进行加密,然后将加密当前文件生成的公钥和加密标志“choung dong looks like hot dog!”写入到文件末尾,

这里会对文件的大小进行计算,来选择合适大小的加密大小。

计算方法:根据需要加密文件的大小来进行判断,如果大于0x1400000,就属于大文件,对其进行分块进行循环加密,一个块大小为0xA00000,如果小于等于0x1400000,并且大于0x400000,那就一次只加密0x400000大小的文件内容,如果小于0x400000,文件大小就是加密大小,全加密。

 

 

5.3.2.7 加密后缀

 

5.4 总结

该架构的设计因为加密的系统是NAS文件存储系统,并未进行多余的服务关闭等功能,只是做了简单的目录过滤,然后就开始了加密,加密完毕后写入公钥和加密标志并且会对每个目录下写入勒索信。

还没收到回复
请先 登录 再回复