本帖最后由 Potato 于 2021-11-25 18:59 编辑
相关阅读:Magniber勒索病毒家族详情
一、 概述
Magniber勒索软件在2017年首次被发现使用名为Magnitude Exploit Kit攻击包对韩国用户进行攻击,后续也被发现同样会攻击其他亚太地区国家,并且积极使用IE漏洞进行勒索软件的下发。
此次分析的样本rrthp.inf属于Magniber勒索病毒家族,出现于今年11月的勒索攻击中。攻击活动中涉及到今年曝出的MSHTML RCE漏洞CVE-2021-40444、CVE-2021-26411和打印机漏洞PrintNightmare。
攻击中下发的勒索加密模块以DLL形式被加载运行。Magniber对投放的勒索样本进行了高度的混淆和加密,借此躲避各杀软的扫描和检测,比如其中一种在SysWhisper中使用到的syscall直接调用以绕过AV/EDR的方法,在此次样本执行过程中被积极使用。
二、代码分析
rrthp.inf作为DLL,完全使用shellcode形式执行,不涉及导入导出表。在主函数中,多层解密解压shellcode到内存执行。并且为了更好地降低自身被内存代码检测引擎发现的风险,Magniber并不通过直接调用API实现相应功能,而是模拟相应API在ntdll中的行为,传入参数,然后指定syscall ID,直接手动调用syscall,同样可以实现直接调用系统API的作用。
由于windows不同版本syscall Table的差异,Magniber指定syscall ID时会先判断系统版本。获取对应syscall ID后,构造一个syscall调用片段,比如NtOpenProcess的调用涉及system call代码片段构造和system call的调用:
DLL执行后,被解压的shellcode首先会枚举当前的活动进程,对于非system权限且非WOW64进程尝试注入。
被注入的shellcode经过再一次解密后,同样出于躲避检测等目的,Magniber将使用提前存储的Metasploit ROR13 hash值寻找需要的API,执行时动态调用。
以名为“gihmepi”的互斥量保证shellcode的单例运行。
1. 搜索文件进行加密
相比于其他勒索病毒,Magniber没有进程和服务中止关闭等操作,直接开始搜索文件进行加密。分为两次,首次搜索加密小文件,第二次搜索加密大文件。
Magniber通过文件后缀名进行类型判断,且后缀名大于5的文件将被跳过。比较方式是通过对目标文件的后缀名字符串进行计算后,和内嵌的数值进行比较,命中则说明文件为加密目标类型,否则跳过。计算方式类似于27进制转化,代码置于文末。
病毒自带的预计算的目标值(部分):
通过枚举,可以还原出其中部分可命中的后缀名。首先是小文件的后缀名:
其次是大文件后缀名:
gz,arc,asf,avi,bak,bmp,fla,flv,gif,iso,jpg,mid,mkv,mov,mpg,paq,png,rar,swf,tar,tbk,tgz,tif,vcd,vob,wav,wma,wmv,zip,jpeg,mpeg,tiff,vmdk
2. 文件加密
加密文件时使用RSA+AES的加密方案。AES加密时使用的Key和IV为随机值,由RtlRandomEx和GetTickCount配合生成,长度皆为16字节,每个文件生成不同的Key和IV。
每次读取1MB内容到内存进行加密,反复读取直至读取止文件尾部。
文件内容数据加密完成后,使用内置的RSA-2048公钥对AES密钥和IV进行加密,加密结果共256字节写入文件尾部。
最后为文件添加扩展名”.gihmepi”。
3.信息上传
所有目标文件加密完成后,通过cmd中start命令启动默认浏览器访问网址,实现加密情况信息的上传,url字符为”<文件名后缀>&<加密的磁盘数量>&<加密的字节数>&<加密成功>&<找到的目标文件数量>&系统版本(win10为“23”,老版本为”12”)”。
4. 卷影删除
为防止数据通过备份恢复,Magniber通过vssadmin.exe删除卷影备份。并且会利用系统中autoElevate程序进行UAC Bypass,以管理员权限进行卷影删除。
如果机器为win10,设置以下注册表项:
HKCU\\Software\\Classes\\ms-settings\\shell\\open\\command\\DelegateExecute
HKCU\\Software\\Classes\\ms-settings\\shell\\open\\command\\ (Default)
配合执行computerdefaults.exe,实现注册表中设置的命令行执行,完成卷影的删除。
如果机器是更早的版本,使用注册表项为:
HKCU\\Software\\Classes\\mscfile\\shell\\open\\command
执行CompMgmtLauncher.exe实现以管理员身份命令执行。
5. 勒索信
每个被加密目录下会被释放一个勒索提示文件,文件最后加密完成后会被弹出以提示用户。在勒索信文件中,用户ID作为三级域名放置在链接中(本例中为1c347ed04ac46af068gihmepi),由系统磁盘卷序列号和计算机名计算得到。
勒索信内容(用户ID会变化):
ALL YOUR DOCUMENTS PHOTOS DATABASES AND OTHER IMPORTANT FILES HAVE BEEN ENCRYPTED!
====================================================================================================
Your files are NOT damaged! Your files are modified only. This modification is reversible.
The only 1 way to decrypt your files is to receive the private key and decryption program.
Any attempts to restore your files with the third party software will be fatal for your files!
====================================================================================================
To receive the private key and decryption program follow the instructions below:
1. Download Tor Browser from https://www.torproject.org/ and install it.
2. In the Tor Browser open your personal page here:
http://1c347ed04ac46af068gihmepi ... ng3ad.onion/gihmepi
Note! This page is available via Tor Browser only.
====================================================================================================
Also you can use temporary addresses on your personal page without using Tor Browser:
http://1c347ed04ac46af068gihmepi.hateme.uno/gihmepi
http://1c347ed04ac46af068gihmepi.oddson.quest/gihmepi
http://1c347ed04ac46af068gihmepi.dearbet.sbs/gihmepi
http://1c347ed04ac46af068gihmepi.legcore.space/gihmepi
Note! These are temporary addresses! They will be available for a limited amount of time!
后缀计算代码
def calc(s):
sum = 0
base=1
for c in s.lower()[::-1]:
sum += (ord(c)-0x60)*base
#print 'sum : ' + hex(sum) + ' base: ' + hex(base)
base *= 27
return sum
|
|
|
|
评论
直达楼层