管家首页下载管家
忘了密码?

扫一扫,访问微社区

腾讯电脑管家论坛

搜索
电脑管家论坛勋章申请贴茶馆版区活动申请专用贴管家论坛活动汇总管家论坛精华帖申请管家论坛策划组成立啦!
查看: 1885|回复: 1

[病毒木马] Petya新型勒索病毒的加密原理分析

[复制链接]
Sukey        

117

主题

2

好友

4068

积分

总版主

Rank: 8Rank: 8

帖子
4836
彩盾
15084

突出贡献 论坛元老 至尊荣耀 我是你的眼公益达人 活跃管饭 美女勋章 安全达人 光棍勋章 快乐管家

发表于 2017-6-29 12:00 |显示全部楼层

        简介


        此次席卷乌克兰等全球多个国家的勒索病毒,与之前的Petya病毒极为相似,二者都会修改受害者电脑的MBR,并且在电脑重启后,展示虚假的磁盘扫描界面,同时对磁盘MFT进行加密操作,在加密完毕后向受害者展示敲诈信息,勒索赎金。然而,有安全厂商仍然审慎地表示,此次病毒并非Petya勒索软件的变种。腾讯安全反病毒实验室对样本的加密代码部分进行了分析,着重留意了代码与原始Petya勒索病毒的异同。


1.png




        一、文件加密逻辑

       之前的Petya勒索病毒的加密重点在于磁盘数据,在写完恶意MBR之后,会使系统强制重启,直接进入MBR引导模式;只有在写MBR失败的情况下,病毒才会使用备用方案,利用Mischa勒索病毒加密磁盘文件。而此次爆发的勒索病毒,会使用计划任务执行重启操作,在电脑尚未重启之前,病毒还会开启一个线程执行文件加密操作:


图片1.png



       而在文件加密的过程中,只会对文件的前1MB字节进行加密,以此提升加密的速度:

图片2.png




       二、磁盘加密逻辑

       1.磁盘加密整体流程

图片3.png


      2.修改磁盘引导扇区

       勒索病毒样本在写入磁盘时,分为四个部分写入不同的扇区。首先是恶意MBR代码部分,从扇区0开始一共写入了19个扇区,这部分包含伪装磁盘扫描界面、加密MFT、显示勒索文字、接受用户输入密码并尝试解密等完整功能:


图片4.png


       其后,病毒又写入了0x20、0x21、0x22三个扇区的内容:

图片5.png



       从后往前看,三个扇区的功能分别如下:

      0x22扇区存放的是病毒一开始从磁盘中读取的原始MBR内容,与0x07进行XOR操作的结果:

图片6.png


图片7.png



       0x21扇区存放的是长度为0x200字节的0x07的内容:

图片8.png


图片9.png


       在加密过程中,此扇区也会使用与MFT相同的密钥进行加密,用于在用户输入密钥之后进行解密验证:

图片10.png


       0x20扇区存放的是加密流程中用到的一些配置内容,比如加密密钥等。在之前的Petya敲诈病毒中,此扇区结构如下:

图片11.png


      (参考:https://securelist.com/petya-the-two-in-one-trojan/74609/

       而此次病毒写入内容的格式也基本一致:

图片12.png



       所不同的只是显示的暗网地址被换成了比特币地址。

     3.MBR加载与勒索

      MBR启动后,通过int13 AH=42将1到21扇区的内容拷贝到内存0x8000处,并在随后执行。

图片13.png


图片14.png


        在经过标志位(0x20扇区中的state)的比较,判断当前磁盘是否已经被加密,如果被加密则直接显示敲诈信息,否则则展示虚假的磁盘检查信息

图片15.png


图片16.png


       随后,程序会调用salsa20算法对MFT进行对称加密,key是32byte大小的salsa_key,iv是8byte大小的salsa_iv。

图片17.png


图片18.png


图片19.png


       病毒作者还对salsa算法的初始化参数做了修改,由原始算法的“expand 32-byte k”变成了如下字符串:

图片20.png


      通过此算法,最终会把MFT逐个字节的进行对称加密。加密完成后,密钥会从磁盘中删除,防止加密数据被还原。

图片21.png


      而ec_data被展示在敲诈界面上,作为受害者个人标识:

图片22.png




      4.可疑的ec_data

       引起我们注意的即是这个ec_data。在之前的Petya敲诈病毒中,此数据是使用密钥经过ECDH、SHA、AES等多次运算后得到的一个Base58字符串,目的是使用此数据与病毒作者手中的私钥一起可以计算出加密MFT使用的密钥,即前面被置空的salsa_key部分。

        然而,在此次的敲诈病毒代码中,我们发现,病毒在生成随机数据之后,直接使用此数据生成了Base58字符串,并没有使用什么复杂的算法,也没有与加密密钥产生任何关联:

图片23.png


        这就意味着,即使此次病毒作者在公布的邮箱中获取了受害者的标识,也无法将其与受害者的加密密钥对应起来。很有可能,此次病毒的始作俑者并不想帮受害者解密MBR部分。

      结论

       通过前面的分析可以看出,此次勒索病毒的作者使用了与之前Petya病毒类似的代码,通过MBR中代码、数据格式、加密流程等多处的高度一致性可以判定,这次的新型Petya病毒与之前的Petya病毒有着千丝万缕的联系。同时也可以注意到,与Petya病毒前几个版本不同的是,新型Petya病毒一方面使用了其它逻辑加密磁盘文件,另一方面并没有想要为受害者解密磁盘。我们猜测,此次勒索病毒的作者可能并非Petya勒索病毒的原始作者。




欢迎前往腾讯电脑管家官网:https://guanjia.qq.com/main.html  了解管家最新动态

1

主题

0

好友

66

积分

[LV.2] PCMgr Beta

Rank: 1

帖子
44
彩盾
431

光棍勋章

发表于 2017-7-4 12:05 |显示全部楼层
看得懵懵懂懂,一脸懵逼。但是有管家给我护航。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
您需要登录后才可以发帖 QQ登录

手机版|Archiver|Tencent Inc   

GMT+8, 2017-7-23 10:46 , Processed in 0.595159 second(s), 10 queries , Memcache On.

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部