事情是这么回事...
去年6月份左右一直持续到年底,陆陆续续都有中勒索病毒的客户,提取的病毒样本都是一致的fast.exe
到今年三月份的时候,有团队的小伙伴去处理一个勒索病毒的应急,提取回来的样本依然是这个,我这个暴脾气,还没完没了了是吧!
因为问的人太多,索性就写一篇文章科普一下这个fast.exe的整个"业务"逻辑。
Fast.exe勒索病毒样本分析详解
0X01 病毒概述
文件为winpe 32位程序
该程序采用了RSA+AES双重加密,加密逻辑为AES密钥是使用10H字节的随机数据和10H字节的数据从解密的公共密钥生成的。
RSA公钥是Sub_401706中的常量值提供
后续信息是加密的AES密钥(80H字节)的相关数据,该数据是使用卷序列号“%systemdrive%”以及解密后的一些数据生成的。
加密的AES密钥后的最后四个字节是以上两部分的CRC32哈希值。
0x02 勒索病毒的业务执行逻辑
0x21 程序启动后首先直接调了sub_4029F5
0x22 sub_4029F5 中在一系列的系统、环境等等检查后
0x23 在LABEL_86块下,直接调用sub_401A76开始遍历驱动及文件
0x24 sub_401A76 中调用GetLogicalDrives函数遍历本地驱动及共享文件驱动
0x25 再通过sub_405840 扫描所有的文件
0x26 sub_408782 加密核心事件
0x03 总结
该勒索病毒理论只要获取到AES的key和IV就能够解密被加密的文件,但是为了保护AES密钥,攻击者使用带有公钥的RSA算法对其进行加密。因此,即使通过暴力破解也很难获得带有保存在病毒中公共密钥的RSA私有密钥。私钥始终由攻击者保留。
加密的AES密钥将记录在加密的文件中。
IV(初始化向量)数据的长度为10H字节,通常是随机生成的。它也像加密的AES密钥一样记录在加密的文件中。IV与AES密钥一起用于数据加密,就像MD5算法的盐一样。
所以目前没有更好的办法通过本地的方式去解密被加密的文件!!!
用C++复刻了一遍这个病毒,但是我不想发布不出来,于是我退而求其次用golang复刻一下这个病毒,主要是讲解原理,如果你要去搞破坏,我也没办法,但是我有干掉你的办法。
下一篇文章详细来跟着我的思路一步步复刻这个不要face的辣鸡勒索病毒😊