本帖最后由 Potato 于 2020-4-1 19:08 编辑
相关阅读:Shvia勒索病毒家族详情
一、 样本信息
![]()
文件名:frost.exe
MD5:bf9aa5309e3c0e82d4075c76df10ac68
SHA1:2f3869e895bda960a7585c13cb8178fb39f9d257
二、 代码分析
![]()
病毒由C#语言进行编译,且通过替换图标的方式伪装成pdf文件,诱使用户点击。与多数勒索病毒不同的是,该病毒在执行过程中并没有采用非对称加密算法,而是直接将加密文件的对称加密密钥上传至远程服务器。
1. 信息上传
病毒通过访问URI:hxxp://ipv4bot.whatismyipaddress.com获取本地IP,之后通过GET请求方式上传本地IP至远程服务器。
接着生成32字节随机值,对其进行Base64编码,编码值将被用于文件加密密钥的生成。然后获取机器名、C盘磁盘序列号,将以上信息通过POST请求发送至服务器。
如果机器未联网,之后在下载远程服务器上的扩展名文件资源write3.php时,会发生阻塞,最终发生异常,病毒退出执行。
2. 删除卷影&结束指定进程
该部分操作在文件加密前和所有文件加密完成后分别进行一次。
结束数据库服务、Office编辑工具、作图工具等相关的目标进程,以免在加密时出现文件占用,从而导致加密失败。 - xfssvccon
- wordpad
- winword
- visio
- thunderbird
- thebat64
- thebat
- tbirdconfig
- synctime
- sqlwriter
- sqlservr
- sqlbrowser
- sqlagent
- sqbcoreservice
- powerpnt
- postgres
- outlook
- oracle
- onenote
- ocssd
- ocomm
- ocautoupds
- mysqld-opt
- mysqld-nt
- mysqld
- mydesktopservice
- mydesktopqos
- mspub
- msmdsrv
- msftesql
- msaccess
- infopath
- firefoxconfig
- excel
- dbsnmp
- dbeng50
3. 搜索文件进行加密
获取本地所有磁盘,采用并行方式对每个磁盘进行加密。
搜索文件时,跳过包含以下字符串的路径,以免加密相关目录后,导致系统和部分浏览器程序无法正常使用。
不对以下文件进行加密,HOW_TO_RECOVER_FILES.txt为勒索信息提示文件,其余为系统运行相关文件。 - thumbs.db
- ntuser.dat.log
- ntuser.dat
- iconcache.db
- HOW_TO_RECOVER_FILES.txt
- desktop.ini
- bootsect.bak
- boot.ini
- autorun.inf
病毒通过访问并下载在线的资源文件,获取大量的扩展名字符串,总共2848种扩展名类型。这2848种扩展名即为加密目标文件类型(无扩展名文件同样被加密),其余文件不被加密。具体后缀请参考附件:
4. 文件加密方式
文件加密算法采用对称加密算法AES256,加密模式CBC。
病毒加密文件分两次进行,首次加密文件首部4KB内容,第二次则是全部加密。两次加密采用同样的加密算法和加密模式。
首先是第一次加密,病毒通过判断文件长度是否大于4112字节而选择不同加密方式。
长度大于等于4112字节的文件,病毒先读取4KB偏移处的16字节,将其写入被加密文件尾部;接着再读取首部4KB文件,加密后写回文件首部。加密密钥:将信息上传阶段产生的32随机字节的Base64编码字符串传入内容加密函数,用于生成文件加密密钥。
长度小于4112字节的文件,病毒则将其全部加密,加密后写回原文件。加密密钥:计算信息上传阶段Base64编码字符串的SHA256摘要值,计算结果传入内容加密函数,用于生成文件加密密钥。
文件初次加密完成后,为原文件添加扩展名”.gоod”(扩展名中第2个字母’о’是Unicode编码的西里尔文字母,而非通常认知中的拉丁字母’o’)。
对所有文件完成初次加密并释放勒索信息文件到被加密目录后,病毒将释放info.hta文件并弹出。
完成上述操作后,病毒开始对所有”.gоod”后缀的文件进行第二次加密。首先读取文件全部内容进行加密,加密结果写回原文件,之后将文件后缀名由携带西里尔文字母的”.gоod”修改为ascii字符串”.good”。加密密钥:计算信息上传阶段Base64编码字符串的SHA256摘要值,计算结果传入内容加密函数,用于生成文件加密密钥。
两次加密阶段,AES256加密密钥产生方式:将传入的字节数组以及字节串”\x61\x62\x21\x39\x50\x48\x16\x89”分别作为password以及salt参数值,迭代1000次后,之后从中获取32字节密钥值Key和CBC模式中16字节初始向量值IV。
以大于等于4112B的文件为例,文件加密流程以及文件加密后结构如下图:
5. 勒索信息提示文件
病毒在所有被加密目录下释放一个勒索信息提示文件HOW_TO_RECOVER_FILES.txt。文件中”personal identifier”为C盘磁盘序列号。
在所有文件初次加密完成后,病毒会在C:\\Windows\\\\System32下创建文件info.hta,使用mshta.exe打开。并为该文件设置开机自启动,弹出以提醒用户数据被加密。
6. 自我删除
进程执行的最后,为C盘根目录下勒索文件HOW_TO_RECOVER_FILES.txt设置自启动项,开机弹出以提醒用户。
释放deleteMyProgram.bat,执行脚本,删除病毒执行文件以及脚本自身。
|
评论
直达楼层