nemty 3.1病毒分析
本帖最后由 若初 于 2020-5-9 22:05 编辑文件信息
简要分析
病毒进行了代码混淆,为了躲避杀毒软件检测,核心代码需要经过解密才能执行。
程序运行申请一段内存空间,写入一段shellcode,shellcode运行后再次申请一段内存空间,并释放一个PE文件到这段内存中,随后将PE文件加载到内存中。
复制PE文件头及各区段
两层循环修复IAT
完成这些操作后,跳转到新PE的入口开始执行。
新PE文件运行后将执行以下操作:
1、创建名为“Oni platyat po ipoteke, batya v tyur'me, a mama na kreke, domashniyarest, na noge tracker, fake - retsepty v kazhdoy apteke”的互斥体,若创建失败,程序退出。
2、计算字符串“My na fibi v tripe, obgonyayem mera v dzhipe,nuzhno bombeya vypit', avtopilot voditel'”的SHA值,派生出RC4字符串的解密密钥。
3、用上面获取的密钥解密出勒索提示信息的固定部分。
4、通过命令行设置禁止计算机启动自动恢复,删除备份编录和卷影副本。
5、生成用户RSA密钥对并进行base64编码。
生成密钥对
编码
6、生成由”NEMTY_”+随机生成的7个字节组成的加密文件后缀,获取本机基本信息并拼接成json格式,随后用攻击者公钥加密并进行base64编码。获取的信息包括加密文件扩展名、本机HwProfileGuid值、ip、所在地区、计算机名、用户名、操作系统版本、用户RSA私钥的base64编码值、磁盘信息(磁盘类型、盘符、大小、已用空间)以及一些病毒内置信息项,其中ip地址是通过访问https://myexternalip.com/raw获取,再由ip地址,访问http://api.db-ip.com/v2/free/<ip>/countryName查询所在国家地区。
7、创建注册表项,nt的值是json格式的信息经过攻击者RSA公钥加密并进行base64编码后的数据,pb是用户公钥进行base64编码后的数据。
8、把加密并编码后的json格式信息中“+”替换成“.”,然后作为data参数上传到http://nemty1.top/public/gate.php?data=。
9、为每个枚举到的磁盘驱动器分别创建一个线程进行文件加密。
10、病毒在每个被加密目录下释放一个勒索信息提示文件,并在加密完成后设置桌面为带有警告信息的背景。提示文件的内容就是之前解密出的信息,<BEGIN NEMTY KEY>部分是之前加密编码过的json数据。
提示文件
运行后桌面
加密部分:
1、首先遍历每个磁盘上的文件,判断是否执行加密。以下是不执行加密的目录文件或文件类型,文件名中包含“NEMTY”的文件也会被跳过。
2、加密算法使用AES-128的计算器模式,原始key和counter是调用RtlGenRandom函数随机生成的,使用用户RSA公钥分别进行加密后,追加到待加密文件尾部,再在最后写入字符串”NEMTY_”+随机后缀。
3、加密之前先判断文件大小,不大于1200000字节的文件会被全部加密,大于1200000字节的文件,取前600000个字节进行加密,把加密后的内容写回原文件,多出的部分以明文保留,最后将文件名替换成原文件名+”NEMTY_”+随机后缀。
有几个图好像没贴到正文中,处理一下? Hmily 发表于 2020-5-9 17:27
有几个图好像没贴到正文中,处理一下?
剩下几个图觉得太啰嗦就没加,现在是登录看不见,不登录能看见。。不知道怎么编辑,而且图片本地路径不知道怎么去掉…… 若初 发表于 2020-5-9 19:13
剩下几个图觉得太啰嗦就没加,现在是登录看不见,不登录能看见。。不知道怎么编辑,而且图片本地路径不知 ...
点编辑页面右上角的纯文本就看到了。 样本可以提供,学习一下吗 Hmily 发表于 2020-5-9 20:45
点编辑页面右上角的纯文本就看到了。
噢噢,酱紫~改了改了~ 2013年 发表于 2020-5-9 21:50
样本可以提供,学习一下吗
样本传上来了~相互学习,有不到位的地方还请指出~ 谢谢分享,我再看看这个勒索病毒,我觉得之前论坛有个xiaoba也做得不错,好像是个小孩做的
页:
[1]