搜索此博客

2017年1月30日星期一

MBR勒索木马再度来袭:GoldenEye分析

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
MBR勒索木马再度来袭:GoldenEye分析  阅读原文»

早在今年上半年,破坏力极强的修改MBR并加密MFT (Master File Table)的勒索木马Petya就引起了杀毒厂商的高度关注,然而在今年下半年360白名单分析组又捕获了该作者最新的勒索木马"GoldenEye"。 半年以来该木马作者与杀毒软件的对抗持续升级,新的勒索木马的查杀难度显著增强。 

一、 主要流程

1.jpg

图1  GoldenEye木马流程图

二、 Shellcode部分

GoldenEye为了伪装自己,在微软的开源代码ZoomIt中嵌入了恶意的ShellCode。

2.png

图2  GoldenEye中微软开源的ZoomIt相关字符串

ShellCode经过多层SMC解密出GoldenEye主体,并PE Loader执行。

3.png

图3  ShellCode解密出GoldenEye的代码

接着解密Loader的xxxx区段,里面包含Petya以及提权DLL(elevate_x86.dll/elevate_x64.dll),并动态载入API。

4.png

图4  解密Loader的xxxx区段

三、 伪装功能

如果主程序不处于%AppData%目录下,则执行伪装功能,否则执行加密功能。

5.png

图5  判断程序路径执行不同功能

通过将自己伪装成系统文件来迷惑用户。

6.png

图6  将自身复制到%appdata%UUIDrsvp.exe中

其中rsvp.exe是由FindFirstFileA匹配以下模式来获得的任一系统文件名:

system32w*w.exe、 l*x.exe、m*p.exe、l*h.exe、a*r.exe、g*d.exe、f*i.exe、a*v.exe、o*i.exe、y*n.exe、l*h.exe、h*q.exe、p*b.exe、m*d.exe

7.png

图7  FindFirstFileA查找匹配的任一系统文件

UuidCreate创建随机Uuid,如图6中的{0a993d81-16ef-454e-84a0-4cf182e67159}。

8.png

图8  UuidCreate创建随机UUID

调用UpdateResourse将正常系统文件版本资源数据替换给GoldenEye,设置GoldenEye文件时间和kernel32.dll一致。

9.png

图9  GoldenEye获取正常系统文件版本资源更新到拷贝的文件

创建进程执行伪装后的GoldenEye。

10.png

图10  调用伪装后的GoldenEye

四、 选择Payload

首先解密出暗网的网址以及用户标识KEY,暗网网址+用户标识Hash的前8位就是用户支付赎金的网址。

11.png

图11  GoldenEye暗网网址的相关生成算法

然后通过VerifyVersionInfoW(系统版本)以及GetTokenInformation(管理员权限)来决定执行流程,如果拥有管理员权限则执行Petya,否则执行Mischa。

通过硬盘物理序列会生成两个hash字符串,作为互斥量的名称。

互斥量的作用是为了防止同一加密流程被重复执行。

12.png

图12  判断执行流程

五、 Petya模块 

13.jpg

图13  Petya执行流程

Petya通过向MBR写入数据并调用NtRaiseHardError强制重启来触发加密流程。

14.png

图14  Petya部分写入MBR以及强制重启的关键代码

petya感染之后恶意数据在系统磁盘的分布如下:

15.jpg

图15  Petya感染后扇区布局

其中0×20扇区写入的是配置文件,里面包含Salsa20的相关密钥。

16.png

图16  Petya配置信息

其中Salsa20的加密Key会在加密后抹去,IV向量保持不变。

17.png

图17  清除Salsa20的加密Key

0×22保存着是加密过的原始MBR,Petya会通过其定位MFT表,然后进行加密,每次加密2个扇区,并且每加密0×40个扇区时会更新进度条。

18.png

图18  加密MFT关键代码

老版本的Petya使用了简化的Salsa20算法来加密MFT(主文件表),存在暴力破解密钥的漏洞,所以新版本的Petya修复暴力破解的漏洞,并提升了Salsa20的算法强度,密码的长度验证扩充为32字节。

19.png

图19  密码的长度验证

Salsa20用输入的key对0×21扇区进行解密后,如果解密后的数据都为0×7则表示验证通过。

20.png

图20  对0×21扇区数据进行验证

Petya只会针对分区格式为MBR且文件系统为NTFS的MFT(主文件表)进行加密,否则只修改MBR,显示黄色骷髅头,这就意味着我们可以通过直接修复MBR来恢复系统。因为Petya只对MFT表进行加密,并不加密文件内容,所以我们也可以直接通过相关的分区工具直接对文件进行恢复。

21.png

图21  判断磁盘分区格式

22.png

图22  判断文件系统格式

六、 Mischa模块

23.jpg

图23  Mischa模块基本流程图

从代码中我们可以看出Mischa能够加密硬盘以及可移动磁盘。

24.png

没有评论: