Wannacry勒索软件母体主程序逆向分析

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

Wannacry勒索软件母体主程序逆向分析

0×01 逆向分析

好了,说正题,我从这里下载了Wannacry样本,一些枯燥的汇编分析细节就不多讲,我们尽量快速的了解到整体过程。

1.jpg

首先会通过一个函数算出一个标识,我们将这个函数命名为getDisplayName,本质就是通过GetComputerNameW获取计算机名然后取随机数算出一个唯一对应的标识(我们命名为DisplayName),后面的执行过程会用到这个标识

接下来会做几件事情,任意一项未执行成功都会退出

3.jpg

检查命令行参数是否为两个,并且是否有/i这个参数

4.jpg5.jpg6.jpg

检查并尝试在ProgramData目录 Intel目录    Temp系统临时目录下创建前面算出的DisplayName为标识的目录

31.jpg

将这个工作目录设置为6也就是0×2 和 0×4(FILE_ATTRIBUTE_HIDDEN 和 FILE_ATTRIBUTE_SYSTEM )隐藏和系统

7.jpg

创建自身的副本并命名为tasksche.exe

8.jpg9.jpg

将tasksche.exe优先以服务方式启动,如果失败则以普通进程方式启动(副本启动的入口点和原始文件启动的入口点不同,从而实现不同的逻辑)

10.jpg    

通过互斥体Global\\MsWinZonesCacheCounterMutexA来判断是否启动成功

以上几项都成功完成后流程才会继续,否则终止。

11.jpg12.jpg    

创建注册表项HKEY_LOCAL_MACHINE\Software\WanaCrypt0r\wd ,写入当前路径值

13.jpg    

从资源中释放PE文件taskdl.exe、taskse.exe,为了免杀,资源中的PE文件是加了密的,释放过程中会解密,比较繁琐

会给释放的资源传一个类似key之类的参数过去,参数值为WNcry@2ol7

15.jpg    

然后在当前目录下读取c.wnry文件

16.jpg    

如果读取到了c.wnry文件,就会将13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94通过一个随机数加密后写回到c.wnry,而这一串数字就是黑客的比特币地址,也就是说c.wnry文件里保存的是加密后的黑客的比特币地址

17.jpg

上图就是c.wnry文件的加密算法,这个加密很简单,只用了两句来实现

下面的临时解决方案的自动化工具里就用到了这三个黑客的比特币地址

13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94

12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw

115p7UMMngoj1pMvkpHijcRdfJNXj6LrLn        

18.jpg    

执行这两句命令

attrib +h .

icacls . /grant Everyone:F /T /C /Q

attrib命令将DisplayName工作目录设置为隐藏

icacls命令开放目录的用户权限    

接下来是动态获取所需的API地址    

19.jpg    

首先是获取kernel32.dll中的文件相关的API

20.jpg    

然后是获取advapi32.dll中的加解密相关的API

21.jpg    

CSP用的是系统默认或者是RSA and AES

22.jpg    

加密文件以WANACRY!为特征头

28.jpg    

被加密的文件涉及到各种文档、文本、虚拟机、压缩包、镜像、图片、视频、音乐、源代码、脚本、数据库、邮件、证书等近200种文件类型,几乎涵盖了方方面面,但确没有BT种子文件,看来黑客还是有所为有所不为啊^_^

0×02 临时解决方案自动化工具

网上流传了一个临时解决方案的思路是:

获取黑客收款地址的交易记录

将别人支付赎金的记录信息(交易hash值)冒充是自己付的发送给黑客来蒙混过关(挺贼的^_^)

通过https://btc.com/可以查询到交易记录,但是我们需要有黑客的收款地址,上面我们已经分析出来了

13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94

12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw

115p7UMMngoj1pMvkpHijcRdfJNXj6LrLn

网上有个python的自动化脚本,这里再优化一下,而且还有很多人不是搞IT的,不懂什么python,于是做了一个傻瓜式的exe程序来自动获取交易记录

29.jpg    

工具链接: 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










本文转自 运维小当家 51CTO博客,原文链接:http://blog.51cto.com/solin/1925936,如需转载请自行联系原作者
目录
打赏
0
0
0
0
234
分享
相关文章
威胁快报|Bulehero挖矿蠕虫升级,PhpStudy后门漏洞加入武器库
近日,阿里云安全团队监控到Bulehero挖矿蠕虫进行了版本升级,蠕虫升级后开始利用最新出现的PHPStudy后门漏洞作为新的攻击方式对Windows主机进行攻击,攻击成功后会下载门罗币挖矿程序进行牟利。建议用户及时排查自身主机是否存在安全漏洞,并关注阿里云安全团队的相关文章。
3320 0
谨防沦为DLL后门木马及其变种的肉鸡
卡巴斯基实验室近期发现有一种名为“DLL后门木马”的恶意软件活动比较频繁。 该木马采用Delphi语言编写,未加壳,但其具有伪造的数字签名,而且其变种竟然高达390多种。此木马主要通过网页挂马等方式感染用户计算机,危害性比较大。
938 0
勒索病毒预防实战:有的PC打不上补丁怎办?
家里有三台Windows 7 PC,其中两台居然打不上补丁…
2250 0
解密被 Findzip 勒索软件感染的文件
本文讲的是解密被 Findzip 勒索软件感染的文件,专门针对OS X的勒索软件Findzip(亦称Filecoder)是在2017年2月22日被发现的。近日,国外安全专家发现Findzip是通过BitTorrent网站传播的,MalwareBytes研究人员Thomas Reed发现,那些受到Findzip 感染的MacOS用户,即使支付了赎金也不会得到黑客提供的密钥。
1624 0
趋势科技技术分析:详解无文件勒索病毒Sorebrect
本文讲的是趋势科技技术分析:详解无文件勒索病毒Sorebrect,Fileless威胁和ransomware并不是什么新的东西,但是包含其特征组合的恶意软件却可能成为一种新的危险。例如,我们最近发现的Fileless代码注入ransomware – SOREBRECT。
1770 0
反病毒还是留后门?卡巴斯基反病毒服务器被爆多个漏洞
本文讲的是反病毒还是留后门?卡巴斯基反病毒服务器被爆多个漏洞,类别:Web页面生成(“跨站点脚本”)[CWE-79],跨站点请求伪造[ CWE-352 ],不正确的特权管理[ CWE-269 ],路由名称不正确的中和受限目录[ CWE-22 ]
1391 0