Wannacry勒索软件母体主程序逆向分析-创新互联
Wannacry勒索软件母体主程序逆向分析
为红旗等地区用户提供了全套网页设计制作服务,及红旗网站建设行业解决方案。主营业务为成都网站建设、网站建设、红旗网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!0×01 逆向分析
好了,说正题,我从这里下载了Wannacry样本,一些枯燥的汇编分析细节就不多讲,我们尽量快速的了解到整体过程。
首先会通过一个函数算出一个标识,我们将这个函数命名为getDisplayName,本质就是通过GetComputerNameW获取计算机名然后取随机数算出一个唯一对应的标识(我们命名为DisplayName),后面的执行过程会用到这个标识
接下来会做几件事情,任意一项未执行成功都会退出
检查命令行参数是否为两个,并且是否有/i这个参数
检查并尝试在ProgramData目录 或 Intel目录 或 Temp系统临时目录下创建前面算出的DisplayName为标识的目录
将这个工作目录设置为6也就是0×2 和 0×4(FILE_ATTRIBUTE_HIDDEN 和 FILE_ATTRIBUTE_SYSTEM )隐藏和系统
创建自身的副本并命名为tasksche.exe
将tasksche.exe优先以服务方式启动,如果失败则以普通进程方式启动(副本启动的入口点和原始文件启动的入口点不同,从而实现不同的逻辑)
通过互斥体Global\\MsWinZonesCacheCounterMutexA来判断是否启动成功
以上几项都成功完成后流程才会继续,否则终止。
创建注册表项HKEY_LOCAL_MACHINE\Software\WanaCrypt0r\wd ,写入当前路径值
从资源中释放PE文件taskdl.exe、taskse.exe,为了免杀,资源中的PE文件是加了密的,释放过程中会解密,比较繁琐
会给释放的资源传一个类似key之类的参数过去,参数值为WNcry@2ol7
然后在当前目录下读取c.wnry文件
如果读取到了c.wnry文件,就会将13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94通过一个随机数加密后写回到c.wnry,而这一串数字就是***的比特币地址,也就是说c.wnry文件里保存的是加密后的***的比特币地址
上图就是c.wnry文件的加密算法,这个加密很简单,只用了两句来实现
下面的临时解决方案的自动化工具里就用到了这三个***的比特币地址
13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94
12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw
115p7UMMngoj1pMvkpHijcRdfJNXj6LrLn
执行这两句命令
attrib +h .
icacls . /grant Everyone:F /T /C /Q
attrib命令将DisplayName工作目录设置为隐藏
icacls命令开放目录的用户权限
接下来是动态获取所需的API地址
首先是获取kernel32.dll中的文件相关的API
然后是获取advapi32.dll中的加解密相关的API
CSP用的是系统默认或者是RSA and AES
加密文件以WANACRY!为特征头
被加密的文件涉及到各种文档、文本、虚拟机、压缩包、镜像、图片、视频、音乐、源代码、脚本、数据库、邮件、证书等近200种文件类型,几乎涵盖了方方面面,但确没有BT种子文件,看来***还是有所为有所不为啊^_^
0×02 临时解决方案自动化工具
网上流传了一个临时解决方案的思路是:
获取***收款地址的交易记录
将别人支付赎金的记录信息(交易hash值)冒充是自己付的发送给***来蒙混过关(挺贼的^_^)
通过https://btc.com/可以查询到交易记录,但是我们需要有***的收款地址,上面我们已经分析出来了
13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94
12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw
115p7UMMngoj1pMvkpHijcRdfJNXj6LrLn
网上有个python的自动化脚本,这里再优化一下,而且还有很多人不是搞IT的,不懂什么python,于是做了一个傻瓜式的exe程序来自动获取交易记录
工具链接: http://pan.baidu.com/s/1hsbwQaC 密码: p263
0×03 结尾
从下午开始一直坐在电脑前就没起过身,分析、码字、写工具,一晃现在都到半夜了,搞这行伤不起啊。写不动了,今天先休息了。不过也能猜到其他还要做什么,就是扫端口,找到开放了445端口SMBv1的就使用NSA老大的Eternalblue Doublepulsar实现蠕虫式传播
最后再分享下这次罪魁祸首的工具:
https://github.com/x0rz/EQGRP_Lost_in_Translation
https://github.com/misterch0c/shadowbroker
是工具(没有源码),用了一个python***框架Fuzzbunch简称fb,这个框架怎么用,可以看这里http://www.freebuf.com/articles/system/133853.html
微软的补丁信息:https://blogs.technet.microsoft.com/msrc/2017/04/14/protecting-customers-and-evaluating-risk/
文章地址:http://www.freebuf.com/vuls/134602.html
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站栏目:Wannacry勒索软件母体主程序逆向分析-创新互联
分享地址:http://cdiso.cn/article/cogjsd.html