本帖最后由 Potato 于 2019-12-30 18:57 编辑
相关阅读:Buran勒索病毒家族详情,我是链接请点我
一、 样本信息
文件名:buran.exe
MD5:3058D76E5FB2F2D2F65E232E98536182
SHA1:3E6E9ABD6241526BF932885D118CBBE54E4E1CBE
二、 样本分析
Buran勒索病毒启动后根据参数不同,执行不同的动作,初始时应是无参数状态启动。主要有以下三种情况:
(1) 无参数时,主要完成行为有:转移病毒到指定目录并设置自启动,以参数-start重起新目录下病毒文件,删除当前执行目录下病毒文件并退出;如果以上行为失败,则继续执行参数-start时的行为;
(2) 参数为-start时:生成用户RSA公钥和病毒自定义MachineID,将其写入注册表;删除数据备份;搜索可加密磁盘,记录到注册表,为每个可加密磁盘启动一个勒索病毒进程,参数-agent< IndexInReg >;在桌面释放勒索信息文件,使用记事本打开勒索信息文件以提醒用户;
(3) 参数-agent<IndexInReg>:搜索参数下标对应注册表中的磁盘,对可加密文件进行加密。
病毒中的字符都通过RC4流对称加密算法进行加密,待解密数据前32字节为Key, 其余字节为密文。
1. 地区避免
访问网址http://geoiptool.com(重定向至www.geodatatool.com),获取用户所在国家(地区),从而通过比较避过以下国家(地区):
- Ukraine(乌克兰)
- belorussia(白俄罗斯)
- Kazakhstan(哈萨克斯坦)
- Russian Federation(俄罗斯)
2. 参数-start自启动
调用cmd.exe执行命令,将自身复制为<AppData>\\ Microsoft\\Windows\\lsass.exe(与系统程序lsasse.exe同名),并为病毒文件lsass.exe添加自启动项Local Security Authority Subsystem Service,启动参数为-start。
如果病毒成功复制自身,接着尝试以管理员权限,携带参数”-start”执行病毒文件lsass.exe;若执行失败,则以普通权限,参数”-start”执行lsass.exe。
以上各项行为执行成功后,当前无参数进程执行以下命令语句,退出当前进程并删除执行目录下的病毒文件。
3. 用户公钥&UID生成
在参数为-start的执行流程中,进行地区避免后,Buran为当前用户生成一对RSA公私钥pk_user(公钥)和sk_user(私钥),其中私钥pk_user通过攻击者RSA公钥处理并base64编码后放入注册表HKCU\\Software\\Buran V\\Service\\Machine ID;公钥sk_user放入注册表HKCU\\Software\\Buran V\\Service\\Public Key。
注册表中的值都是先经过RC4加密后拼接RC4加密密钥,再进行base64编码得到。RC4解密方式和病毒解密密文字符串方式一致。
标识用户的UID从公钥元素N首部截取,为UUID格式。
接着病毒使用GET方式请求URI:iplogger.ru/1Oh8E.jpeg。然而实际上UUID作为refer参数值实现上传。
4. 备份&日志的删除
进行卷影删除等高权限操作前,病毒尝试为进程启用高权限。在Win7下执行该行为同样需要高权限,普通权限下会调用失败。
如果执行上述行为失败,程序返回,不进行后续行为;一旦成功,说明进程拥有高权限,调用cmd执行命令,实现备份数据的删除,防止管理员恢复数据,并禁用系统开机自动修复,清空注册表RDP连接记录,清空系统日志,禁用事件记录,从而消除自身痕迹。
5. 参数-agent<IndexInReg>进程启动
Buran通过WNetResourceW等相关系统API枚举可访问的网络资源,记录本地磁盘中非DRIVE_CDROM类型的设备。将所有资源写入注册表项HKCU\\Software\\Buran V\\Service\\Paths,每个资源根目录对应其下一个键,键名从0开始递增,键值为资源根目录名。如:
之后为每个键创建一个buran进程,参数为-agent<IndexInReg>(如-agent 0对应C盘)。
接着-start进程等待新创建的加密子进程执行完毕后,将会在桌面创建勒索信息提示文件,使用记事本notepad.exe打开文件以提示用户,最后自我删除退出。
6. 搜索文件进行加密
对网络资源和本地资源,在过滤可加密文件时有些许不同,区别在于网络资源buran不会进行路径的判断和过滤,只会对文件名和扩展名进行判断。
搜索可加密文件时避过一下目录(除网络资源外),主要包括系统、程序、用户和浏览器等程序运行相关的目录,避免加密后系统和浏览器等无法运行,导致用户无法正常支付赎金。
- <WINDIR>
- :\$RECYCLE.BIN\
- :\$Windows.~bt\
- :\RECYCLER
- :\System Volume Information\
- :\Windows.old\
- :\Windows\
- :\intel\
- :\nvidia\
- :\inetpub\logs\
- \All Users\
- \AppData\
- \Apple Computer\Safari\
- \Application Data\
- \Boot\
- \Google\
- \Google\Chrome\
- \Mozilla Firefox\
- \Mozilla\
- \Opera Software\
- \Opera\
- \Tor Browser\
- \Common Files\
- \Internet Explorer\
- \Windows Defender\
- \Windows Mail\
- \Windows Media Player\
- \Windows Multimedia Platform\
- \Windows NT\
- \Windows Photo Viewer\
- \Windows Portable Devices\
- \WindowsPowerShell\
- \Windows Photo Viewer\
- \Windows Security\
- \Embedded Lockdown Manager\
- \Windows Journal\
- \MSBuild\
- \Reference Assemblies\
- \Windows Sidebar\
- \Windows Defender Advanced Threat Protection\
- \Microsoft\
- \Package Cache\
- \Microsoft Help\
避免加密的文件如下,主要是和操作系统运行相关文件和勒索信息文件。
- boot.ini
- bootfont.bin
- bootsect.bak
- desktop.ini
- ctfmon.exe
- iconcache.db
- master.exe
- master.dat
- ntdetect.com
- ntldr
- ntuser.dat
- ntuser.dat.log
- ntuser.ini
- thumbs.db
- !!! ALL YOUR FILES ARE ENCRYPTED!!!.TXT
避过如下扩展名类型的文件,包括可执行、符号链接和程序运行等类型文件:
- .bat
- .cmd
- .com
- .cpl
- .dll
- .msc
- .msp
- .pif
- .scr
- .sys
- .log
- .exe
- .lnk
- .buran
7. 文件加密
加密前,病毒程序通过读取文件首部5个字节比较其是否等于”BURAN”和”STORM”,从而判断文件是否已经被加密。
Buran根据文件大小采用两种不同的加密方式:
(1) 文件小于128Kb,从文件首部开始进行连续加密,最多加密32Kb,被加密文件首部5个字节写入字符”BURAN”;
(2) 文件大于128Kb,间隔一定偏移(最多间隔40Kb,一定距离内随机选择,不会出现内容冲突)进行加密,总共最多8个小片段,每个片段4Kb,即同样最多加密32Kb内容,字符串”STORM”写入首部;由于被加密文件首部附加了21字节其他数据(包括常量字符串、加密后和加密前的内容大小),并且写回时每4kb写回一次,导致实际被加密数据并未写回原偏移处,而是在每个片段基础上相会偏移了21字节。
而两种方式加密的文件都会添加以下片段:
使用注册表中的用户公钥pk_user通过FGIntRSA加密AES算法的文件加密密钥Key和初始向量IV(两者共48字节),加密后的数据大小和数据都将被写入尾部;接着读取注册表中的Machine ID,base64解码并RC4解密,将解密结果的数据大小和数据写入尾部;最终整个尾部的大小值共4字节追加在文件末尾。
以第(1)种方式加密为例,文件加密流程和加密后文件结构如下图:
8. 勒索信息文件
勒索信息文件包含德语和英语两个部分,两处内容一致,但只有英语部分含有UID。文件告知用户联系黑客进行解密的连个邮箱:
Wiederherstellung@cock.li
Wiederherstellungsdatei@airmail.cc(备用)
正式支付赎金前,用户可以免费解密一个文件,以确认黑客可以正确解密文件。
|
|
|
|
评论
直达楼层