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

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

一、 主要流程

图1 GoldenEye木马流程图

二、 Shellcode部分

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

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

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

图3 ShellCode解密出GoldenEye的代码

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

图4 解密Loader的xxxx区段

三、 伪装功能

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

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

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

图6 将自身复制到%appdata%\UUID\rsvp.exe中

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

\system32\w*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 FindFirstFileA查找匹配的任一系统文件

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

图8 UuidCreate创建随机UUID

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

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

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

图10 调用伪装后的GoldenEye

四、 选择Payload

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

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

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

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

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

图12 判断执行流程

五、 Petya模块

图13 Petya执行流程

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

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

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

图15 Petya感染后扇区布局

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

图16 Petya配置信息

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

图17 清除Salsa20的加密Key

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

图18 加密MFT关键代码

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

图19 密码的长度验证

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

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

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

图21 判断磁盘分区格式

图22 判断文件系统格式

六、 Mischa模块

图23 Mischa模块基本流程图

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

图24遍历硬盘和可移动磁盘

加密以下固定后缀的文件:

图25 加密文件的后缀

MisCha会对文件大小进行判断,如果文件大于32MB,只加密5MB大小的数据。

图26 判断文件大小

Mischa的文件名由原始文件名和用户标识Key的前8位组成:

图27 修改文件名

Mischa使用AES256算法对文件内容进行加密,每次加密0×400字节。对于每一个需要加密的文件来说,AES256的KEY是固定不变的,唯一不同的是随机生成的IV向量。

图28 加密文件内容

对文件加密完成后,会在文件末尾写入长度为0×76字节的解密相关的配置信息。

图29配置信息的内存布局

最后释放YOUR_FILES_ARE_ENCRYPTED.TXT,提醒用户文件已被加密。

值的一提的是,当Mischa加密完成之后, GoldenEye并没有善罢甘休,重新执行Petya流程,对MFT进行加密。

在高版本的系统中,读写MBR需要管理员权限,所以GoldenEye就会利用xxxx区段解密出的elevate_x86.dll/elevate_x64.dll进行提权,从而顺利的执行Petya。

提权的原理主要是通过查找系统白名单文件,对其进行dll劫持实现的。

图30 DLL劫持后的入口点代码

图31 重新执行GoldenEye

七、 GoldenEye勒索提示

恶意代码执行完之后就开始强制重启电脑,进行勒索提示:

图32 GoldenEye木马勒索提示画面

GoldenEye木马的赎金为1.3个比特币,且勒索方式相比Petya显得温和的多,不再因错过截止时间就翻倍赎金。GoldenEye木马会对输入的加密串进行简单的校验,如果出现大小写错误或者其他错误都会提示,直至输入正确的数据。

图33 提示输入识别码

输入正确的识别码之后提示用户勒索赎金的金额。

图34 提示比特币数额

最后提供支付赎金的账户。

图35 提示比特币收款账户

八、 360杀毒可以完美查杀

GoldenEye主要通过发送“求职垃圾邮件”的形式进行传播,并引诱受害者点击其中包含的恶意附件。首个附件是一个PDF文档,它将自己伪装成一封正经的求职信,而后还跟着一个包含了宏恶意软件的Excel文档。提醒广大网友:重要数据应定期备份。此外,他人发来的可疑程序或脚本(如exe、scr、js等)不要双击运行,这样就能最大限度的避免中招。

图36 2016年12月6日GoldenEye在VT上查杀的情况

* 本文作者:360安全卫士(企业帐号),转载请注明来自FreeBuf.COM

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2017-01-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

暗云Ⅲ BootKit 木马分析

概况 “暗云”系列木马自2015年初被腾讯反病毒实验室首次捕获并查杀,至今已有2年多。在这两年多时间里,该木马不断更新迭代,持续对抗升级。 从今年4月开始,该木...

69870
来自专栏七夜安全博客

练手之经典病毒熊猫烧香分析(上)

22630
来自专栏社区的朋友们

Petya 新型勒索病毒的加密原理分析

此次席卷乌克兰等全球多个国家的勒索病毒,与之前的 Petya 病毒极为相似,二者都会修改受害者电脑的 MBR,并且在电脑重启后,展示虚假的磁盘扫描界面,同时对磁...

45900
来自专栏FreeBuf

一款名为Rapid的勒索软件正在迅速传播

2017年勒索软件成为安全界的一个热门关注点,很多安全公司预测2018年它仍会是危害用户安全的一个重点。近期安全人员发现,一款名为Rapid的勒索软件正在快速传...

25280
来自专栏腾讯电脑管家的专栏

Petya 勒索软件新变种详细分析报告

据 twitter 爆料,乌克兰政府机构遭大规模攻击,其中乌克兰副总理的电脑均遭受攻击,目前腾讯电脑管家已经确认该病毒为 Petya 勒索病毒变种。

22900
来自专栏ml

Linux下如何查看自己的服务器有没有无线网卡

还是实验室那台破服务器,连不上网。有没有界面,所以想着如何用一些命令来链接上 热点。 当然,在linux下链接wifi没有win下那么一点就好了! ...

57750
来自专栏安恒网络空间安全讲武堂

RFID技术|门禁卡破解|IC卡破解学习过程

安全不仅仅包含网络上的安全,在我们实际生活中也同样存在很多个安全相关的事物,可以说跟科技扯上关系的事物都会有安全问题,无线,蓝牙,手机,无人机,汽车。真正有问题...

50.8K50
来自专栏zhangdd.com

近日微信支付提示HTTPS服务器更换证书,商户该如何应对?

2018年3月8日,微信支付商户平台发布公告:微信支付HTTPS服务器计划于2018年5月29日更换服务器证书。这则公告对使用沃通SSL证书的商户没有任何影响,...

20120
来自专栏Youngxj

QQ群被恶意封了?一招教你如何封群发言

12.6K30
来自专栏ionic3+

被Telerik的一个Cordova插件摆了一道

说起Telerik这名字,可能有些人比较陌生,不过对于做过.Net的开发人员来说,应该会有印象,或多或少用过它家的控件,对于常规前端,可能有听说过Kendo框架...

9130

扫码关注云+社区

领取腾讯云代金券