1.背景
1.1来源
近期,Solar团队收到某医疗单位的援助请求,该公司的计算机受到了某勒索病毒的侵害,所有的文件被加密并且添加了.DevicData-P-470b1abd后缀,我司人员现场取证进行排查并提取加密器,本文是对于加密器的分析。
2.恶意文件基础信息
2.1 文件基础信息
大小 | DevicData.exe(160256 bytes) |
---|---|
操作系统 | Windows |
架构 | Amd64 |
类型 | exe |
字节序 | Little Endian |
SHA256 | 79a0a6b7760be083c17e496d3a9dc6f7a113c9d8034fed1afe1e2cac2e82363d |
2.2 勒索信
Recover files!!!.txt
YOUR FILES ARE ENCRYPTED !!!TO DECRYPT, FOLLOW THE INSTRUCTIONS:To recover data you need decrypt tool.To get the decrypt tool you should:1.In the letter include your personal ID! Send me this ID in your first email to me!
2.We can give you free test for decrypt few files (NOT VALUE) and assign the price for decryption all files!
3.After we send you instruction how to pay for decrypt tool and after payment you will receive a decryption tool!
4.We can decrypt few files in quality the evidence that we have the decoder.
5.Your key is only kept for seven days beyond which it will never be decrypted!
6.Do not rename, do not use third-party software or the data will be permanently damaged!
7.Do not run any programs after the computer is encrypted. It may cause program damage!CONTACT US: ID:
3.恶意文件分析
3.1威胁分析
病毒家族 | DevicData |
---|---|
首次出现时间/捕获分析时间 | 2024/01/15 || 2024/03/28 |
威胁类型 | 勒索软件,加密病毒 |
勒索软件地区 | 国外 |
加密文件扩展名 | .DevicData-P-470b1abd |
勒索信文件名 | Recover files!!!.txt |
有无免费解密器? | 无 |
联系邮箱 | DevicData@tutanota.com |
感染症状 | 无法打开存储在计算机上的文件,以前功能的文件现在具有不同的扩展名(.DevicData-P-470b1abd)。会生成勒索信(Recover files!!!.txt)。 |
感染方式 | 受感染的电子邮件附件(宏)、恶意广告、漏洞利用、恶意链接? |
受灾影响 | 除了c:\Windows目录,所有exe和dll,powershell程序文件,勒索病毒配置文件之外的所有文件均被使用多种模式加密. |
3.2加密前后对比
加密后
文件1
文件2
解密后
文件1
文件2
4.逆向分析
4.1 混淆去除
将程序拖入de4dot即可基本解混淆.剩下的代码不影响分析。
4.2 感染共享文件夹
遍历ip列表,找到存在的共享分区,在分区上运行加密。
判断是否为合法共享分区。
获取本地分区列表,排除掉系统分区之后,找到存在的合法分区进行加密.。
4.3 创建工作线程
枚举分区并创建工作线程。
4.4 读取配置文件
String_0
为勒索信的内容。
String_1
为随机字符串。publickey
为rsa的公匙,key
为aes的密钥;String4
为随机id;String2
为文件加密后的后缀名的前半部分,即”Devicdata”字符串;Byte_0
为使用aes加密经过rsa加密后的id字符串和密码的拼接(中间分号隔开).这个变量占512字节,因为每个被加密文件的开头在解密器中都会往后移动512bytes。猜测这个变量是本来要传给黑客的,但这是demo病毒,省去了与黑客的网络交互.或者是要事先传一个文件给黑客,才能进一步解密出受害者的setting文件,进行解密。加载完毕,删除配置文件。
4.5 递归加密
从每一个分区的根目录开始递归,如果目录名为windows文件夹则不进入,否则进入。List里面存着powershell文件的路径,也会排除。
获得文件列表,使用冒泡排序将文件列表以修改时间升序排序。
拼接后缀名,用于后面判断,加密后写入的文件也是这个后缀.开头为原后缀名,接上DevicData,接上一个-P-,再接上id.截取最前一个后缀名(文件原后缀名),先排除exe,dll,加密后文件以及勒索信,再进入判断是否为特殊后缀(大小写不敏感),是则采用一些模式解密(method_7),否则采用另一些模式解密(method_8).模式在下文说明。
特殊后缀:
".IB",".GDB",".FDB",".MDB",".ACCDB",".ACCDR",".ACCDE",".DAT",".DB",".BAK",".MDF",".NDF",".LDF",".DB2",".DBF",".ORA",".SQL",".CSV",".DMP",".MYD",".MYI",".FRM",".EDB",".GDB",".STM",".NS",".DB3",".WDB",".RAR",".ZIP",".7Z",".TAR",".VMDK",".VMEM",".AVHD",".AHD",".VHDX",".VHD",".AVHDX"
powershell目录名:
如果目录为空,则进入递归.num2置1则不为空,进入加密。
写入勒索信,内容来自配置文件。
4.6 加密算法
采用aes256 ecb加密文件和配置文件,采用rsa加密受害者的文件key。
4.7 加密模式分类
概览:
从上到下分别为X,Y,Z,A,B,C,D。
树状图:
根函数:
先分为两大类,分别是为特定后缀名和其他文件。
4.8 Method8函数
大于20mb的进入AESWriteByteToOldFile,小于的进入AESModelBWriteFile。
4.9 AESWriteByteToOldFile函数
大于50mb的进入AESWriteByteToOldFile_FB,否则进入AESWriteByteToOldFile_FC。
4.10 AESModelBWriteFile函数
写入512字节的字符串(加密后的密码,上文提到过).再单纯的写入加密后的文件数据。
4.11 AESWriteByteToOldFile_FB函数
每1mb一组,当组数为10的倍数的时候,加密;其余交换一些bytes(不加密).交换伪代码如下:
Swap(19930,3550);
Swap(1220,6500);
Swap(19430,7500);
Swap(19701,5023);
Swap(197101,297101);
4.12 AESWriteByteToOldFile_FC函数
当组数小于25的时候,每1mb加密;大于25的时候,组数每逢10的倍数加密,其余操作同AESWriteByteToOldFile_FB的交换方式。
4.13 Method7函数
若文件名不为Recover files!!!.txt且不为只读,则加密,大小分为1gb以上和以下,大于1gb进入DESWriteByteToOldFile_F方法,小于则进入DESModelBWriteFile。
4.14 AESWriteByteToOldFile_F函数
大于10gb进入AESWriteByteToOldFile_FD,小于则进入AESWriteByteToOldFile_FA。
4.15 AESWriteByteToOldFile_FD函数
如果大于5gb,则大于5gb的部分每隔5mb加密1mb,小于部分1mb大小的块加密;如果小于5gb,则全部1mb分块加密。
4.16 AESWriteByteToOldFile_FA函数
单纯地把文件分割成每1mb一段并加密写入。
5.病毒分析概览
加密器读取配置文件中的文件后缀等信息,生成随机密钥,接着遍历ip,感染可访问的共享文件夹,然后每个分区创建一个工作线程,具有选择性地递归遍历目录,选择指定类型的文件,根据文件后缀,大小使用5种不同模式加密,将加密后的随机密钥和加密数据写入文件,最后删除原文件。