对bozon3勒索程序的分析

admin 2022年7月31日19:15:36程序逆向评论6 views2270字阅读7分34秒阅读模式



【导读】:因工作需要,对这个勒索病毒前后分析了两次,第一次粗浅地分析了下,就交差了。没想到第二次又碰上了,所以说嘛,第一次应该认真对待,就不会有第二次的分析了。


后来弘连约稿,就将这篇文章投给他们了。稿子印刷出来了,我就在这里公布出来。

对bozon3勒索程序的分析


为了更深入地了解这个Bozon3勒索病毒,在一周后再次对它进行了分析,虽然还有些地方还不太理解,但基本脉络已清楚成型,细节部分也有所掌握了解。


这个病毒文件由三部分组成:一个母文件+两个子文件;母文件由C#编写,子文件一个是批处理文件一个为C++编写的子程序。批处理完成“勒索词和要执行的命令,关闭、杀死安全类的服务、进程以及各类数据库的进程”。C++的子程序完成“删除卷影备份、部分种类文件的加密及在尾部写入88字节的解密所需信息”。因此,这个勒索是有解的。


在分析中遇到两个奇怪的地方:一是程序中没有调试出回传地址(勒索信中写有交钱给解密工具,所以回传地址不需要了);二是母程序居然可以用winrar打开释放子程序,但母程序又不是自解压程序。


第一部分 【母体:C#部分】

1、bozon3勒索病毒隶属于Mallox家族,

 

对bozon3勒索程序的分析

2、查壳:是C# .net的,32位。

 

对bozon3勒索程序的分析


3、反编译,

 

对bozon3勒索程序的分析

入口位于Main处,如下,


 

对bozon3勒索程序的分析

4、这里面有个资源文件,

 

对bozon3勒索程序的分析

导出来,看看,

 

对bozon3勒索程序的分析

查下壳,

 

对bozon3勒索程序的分析

提示不是有效的PE文件。


5、运行下,看看发生了什么?

 

对bozon3勒索程序的分析

cmd /c 启用了一个批处理里,后来删除了,

 

对bozon3勒索程序的分析

6、恢复后,得到:

 

对bozon3勒索程序的分析

原来是勒索词和要执行的命令,有好几块,禁服务、杀进程等跟安全相关的操作。

 

对bozon3勒索程序的分析


7、在执行的过程中,有很多次的释放资源不成功,

 

对bozon3勒索程序的分析


8、这个程序有个有意思的地方:居然可以用winrar打开,但它又不是自解压缩程序,非常奇特。

 

对bozon3勒索程序的分析

这个地方确实非常神奇,用7z这种压缩软件就看不到这样的结果。


8、解压缩后,发现这个子程序跟前面的同名的母程序不是一回事,它主要起到加密勒索的作用。


第二部分 【子体:逆向】

1、程序的整体框架:中间红框就是核心代码。

 

对bozon3勒索程序的分析

2、程序运行后,会对系统语言进行判断,如果系统使用语言为俄罗斯语、哈萨克语、白俄罗斯、乌克兰、 鞑靼语,则不勒索。

 

对bozon3勒索程序的分析


3、如果判定达成,程序首先会提取系统权限,然后破坏系统保护,删除卷影备份,禁用系统故障重启和修复功能。

 

对bozon3勒索程序的分析


1)Deprotecion():破坏系统保护

 对bozon3勒索程序的分析

这里破坏系统保护,主要是让 Raccine 通过镜像文件劫持对抗勒索病毒的手段失效。Raccine 是一个开源勒索软件保护程序,能够拦截有勒索病毒相关行为的进程。



2)Delshadow():删除卷影副本

 

对bozon3勒索程序的分析

3)killbase():关闭数据库相关服务

 对bozon3勒索程序的分析

对bozon3勒索程序的分析

4、进入核心代码区sub_40611B:

 对bozon3勒索程序的分析


1)文件加密方式:

Bozon3勒索病毒采用家族mallox同样的加密算法:ECDH(基于椭圆曲线的Diffie-Hellman密钥交换)+ChaCha20(salsa20流加密变种算法)。


程序中首先为当前用户生成一对ECDH公私钥sk_user和pk_user,均为32字节。攻击者的ECDH公钥pk_attacker被内置于程序中,被用于和sk_user生成会话密钥ShareKey。ShareKey将被用于当前机器的文件加密。


Sub_40611b->4062c5:生成ShareKey

 

对bozon3勒索程序的分析

对bozon3勒索程序的分析

 

Pk_attacker写在程序内部。



(2)回传机器信息+加密文件+写勒索文档:

Sub_40611b->4063e2:主要由三个函数构成,以下一一分解,

 

对bozon3勒索程序的分析

(2-1)internet_send_id_pc_dc_name():

 

对bozon3勒索程序的分析

这里有个生成勒索号:

 

对bozon3勒索程序的分析

在这里 取到了机器名和 生成的 机器编号(由系统启动到现在的时间和进程PID和线程PID进行xor来生成id值)。一般情况下,这时子程序会将这串值传回C&C以作以后交赎金解密之用,但奇怪的是程序中找到了用以POST的header:“Content-Type:application/x-www-form-urlencoded”,但在调试的过程中始终IP没有出来,真是奇怪,不知道往哪回传。有几种可能情况,一是调试时没取到;二是怀疑这是个阉割版,根本就不回传,只能跟作者留下的邮箱联系,交赎金发解密程序。


(2-2)Cryptfile():

完成准备工作,程序会启动大量加密线程cryptfile->StartAddress,对文件进行加密,将文件后缀名修改文 bozon3,最后释放勒索信。


加密目标文件时,每次跳过一个指定的偏移量,均匀地从文件头部读至文件尾部进行加密并写回原偏移,每次读取0x1000字节(4KB)。

StartAddress->sub_404632:

 

对bozon3勒索程序的分析

加密算法使用ChaCha20,包括pk_user在内的解密所需信息被写入到文件尾部,共88字节。

 

对bozon3勒索程序的分析

写了3次,分别是0x28+0x10+0x20;前两个是什么东西,用OD跟一下就知道了,我不想跟了,最后32字节是pk_user。


加密工作完成后,病毒会为被加密成功后的文件添加后缀名.bozon3。


(2-3)dropletter():写勒索文件

病毒在C盘根目录下创建名为HOW TO RECOVER !!.TXT的勒索信息文件,同时会在其他所有被加密目录下创建文件RECOVERY INFORMATION.txt,二者内容一致。不同受害机器上,勒索信息中只有Personal ID是不同的,该ID字符串是将pk_user前6个字节转为16进制的大写字符的方式得到。

 

对bozon3勒索程序的分析

至此,整个勒索病毒分析完成了。


原文始发于微信公众号(MicroPest):对bozon3勒索程序的分析

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月31日19:15:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  对bozon3勒索程序的分析 http://cn-sec.com/archives/1212322.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: