蠕虫勒索软件WannaCrypt0r的行为分析

简介: 来科锐学习一年出头,x86 平台刚好学完,这个周末遇到这个病毒爆发,花了点时间分析了下这个样本,发出来与看雪坛友分享。 一) 样本大致行为预览 该样本执行后会随机向互联网计算机发送EternalBlue漏洞溢出程序,并释放勒索加密程序,加密计算机上.doc 、.ppt、.jpg、.sqlite3、.mdb、.bat、.der等多种类型的文件,修改文件后缀为.WNCRY类型,弹出窗口勒索用户,要求一定时间内交出赎金,才能恢复文件。

来科锐学习一年出头,x86 平台刚好学完,这个周末遇到这个病毒爆发,花了点时间分析了下这个样本,发出来与看雪坛友分享。

一) 样本大致行为预览

该样本执行后会随机向互联网计算机发送EternalBlue漏洞溢出程序,并释放勒索加密程序,加密计算机上.doc 、.ppt、.jpg、.sqlite3、.mdb、.bat、.der等多种类型的文件,修改文件后缀为.WNCRY类型,弹出窗口勒索用户,要求一定时间内交出赎金,才能恢复文件。

二) 样本行为分析


2.1 原始样本分析

定位到WinMain后,可以发现在WinMain入口处发现,原始样本会尝试连接一个非常没有规律的域名:http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

样本会通过是否能成功连接该域名,来决定是否展开后续行为。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

如上图所示,若能够成功链接,则程序不展开相关行为,直接退出。否则,展开相关行为。

其中的sub_408090函数内部,在一个条件判断中分了两个功能模块:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

其中,条件成立的代码块是启动服务功能等行为展开,程序第一轮并不会进入;当程序第一次启动时,执行的是条件不成立时的模块(上图中的sub_407f20),其功能主要为创建服务、释放并执行勒索的主体程序tasksche.exe /i。

创建服务过程:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

该样本创建一个服务名为"mssecsvc2.0",服务说明为"Microsoft Security Center (2.0) Service"的服务。

并在后续的行为中启动自身。

该服务的功能为:随机扫描互联网IP,利用SMB的内核级漏洞(CVE-2017-0143~CVE-2017-0148),传播自身。这个漏洞的利用我自己还在分析,分析出来后会放在后续文章中。

原始样本,会从资源中加载、释放一个名为tasksche.exe的文件,并且以tasksche.exe /i的方式启动。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAA

接着,我分析了 tasksche.exe,它的行为如下

 

2.2 tasksche.exe 的行为分析

tasksche.exe 启动后,首先,会将自身拷贝到 C:\intel\lgxbrzjmuzoytl531。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

接着,tasksche.exe 会创建服务,服务名及说明均为"lgxbrzjmuzoyt1531",然后以服务的方式再启动自身。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy= 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

以服务的方式启动后,tasksche.exe 会以创建进程的方式执行命令:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

attrib.exe +h

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

这两个命令用于修改文件属性相关的权限。

接着,会读取前期释放的一个名为 t.wnry 文件,并对其中的内容进行解密,解密后的内容为一个 Dll 文件,但是该dll文件并不会被写入磁盘中,而是在内存中直接执行。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

我将该 dll 从内存中 dump 出(取名为 crypt.dll),发现包含了勒索软件的加密功能。对其进行了分析。

 

2.3 crypt.dll 样本分析

crypt.dll 只有一个自定义的导出函数 TaskStart,该导出函数是其行为展开的入口。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy= 进入TaskStart后,该样本会先加载Kernel32,动态获取后续需要的API。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

创建互斥体"MsWinZonesCacheCounterMutex",用于判断自身重入问题。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

接着,该样本连续创建了多个线程,

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=他们的功能分别为:

l 将tasksc.exe加入到HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run项,用于开机自启动

l 遍历驱动器,并检查是否有U盘等移动存储插入

l 循环调用taskdl.exe,暂未详细分析

l 写入并执行vbs脚本,暂未详细分析

 

遍历磁盘并加密文件。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

该样本不会加密所有的文件或文件夹(否则可能会破坏系统导致系统无法启动,或者有些文件的价值并不大)。其将要感染的文件,以后缀名判断,集中放在程序中,以下是部分截图:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

过滤掉特定的文件夹及非指定后缀名的文件之后,程序会对文件进行加密。其加密流程如下,它的加密思路并不是直接用长密钥的RSA进行全部加密,可能处于效率的考虑,它的加密思路如下:

1. 被感染用户的文件,被AES加密,AES加密所使用的KEY,是根据每个文件随机生成的。随机生成的KEY,之后会被下一步的RSA 2048加密。

2. 样本在针对每一台机器上,会随机生成一对RSA 2048密钥,其中公钥(保存在00000000.pky中)用于加密上一步的AES KEY,私钥将被加密后存在文件(00000000.eky)中,具体加密方式见下一步。

3. 上一步的RSA私钥,会被另一个RSA 2048公钥加密(记作 RSA2),该RSA2的私钥仅勒索者本人知道。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy= 

知道以上思路后,就比较容易理解该样本的加密流程了:

1. 新建文件,新文件名为原始文件名.WANACRYT(T表示临时文件,用于临时处理文件加密)

2. 在新的文件头部先写入8字节的WANACRY!加密标志

3. 写入4字节的长度标识,表示后面紧跟的加密后的文件加密密钥的长度

4. 写入256字节长度的加密后的文件加密密钥(该密钥解密后为16字节长度的字符串,使用该字符串AES加密文件)

5. 写入4字节长度的 勒索者作者定义的类型,不为4的文件类型记录到f.wnry文件中,用于后期免费解密。

6. 写入8字节长度的原始文件长度

7. 使用随机生成的16位字节的密钥利用AES加密算法进行加密,并写到上述内容之后。

8. 修改新文件的文件时间为源文件的时间。

9. 删除原文件,并将新文件重命名为WANACRY。

10. 若文件为可免费恢复的文件,则将文件名记录到f.wnry文件中。

因为涉及到的代码量较多,不方便截图,感兴趣的可以去看我附带的idb文件。我自己也对该样本的算法进行了还原,写成了cpp文件,供大家参考。

本文转自看雪学院,作者是白小菜

相关文章
|
6月前
|
存储 监控
蠕虫分析
简单看下报告的概要信息,有 Ramnit 标签。Ramnit 蠕虫是一种通过可移动驱动器传播的蠕虫。该蠕虫还可以作为后门,允许远程攻击者访问受感染的计算机,通常会寄生在用户的浏览器中,难以察觉,因此每天都有数以万计的用户受其困扰。
|
7月前
|
存储 监控 安全
勒索病毒最新变种.faust勒索病毒来袭,如何恢复受感染的数据?
在今天的数字时代,网络威胁不断进化,其中一种最令人担忧的威胁就是勒索病毒。本文将介绍.faust勒索病毒的工作原理,如何恢复被.faust勒索病毒加密的数据文件,以及如何预防这种威胁。
150 0
|
4月前
|
安全 网络安全 数据库
勒索病毒最新变种.mkp勒索病毒来袭,如何恢复受感染的数据?
随着网络技术的不断发展,勒索病毒已经成为数字时代的威胁之一,而MKP勒索病毒正是其中之一。本文将深入介绍MKP勒索病毒的特点,讨论恢复被加密数据的方法,并提供预防措施,以帮助用户和组织更好地保护自己的数据安全。
|
安全 数据库 数据安全/隐私保护
记一次公司被勒索病毒攻击事迹,上上下下咬牙切齿
记一次公司被勒索病毒攻击事迹,上上下下咬牙切齿
99 0
记一次公司被勒索病毒攻击事迹,上上下下咬牙切齿
|
安全 Windows 网络安全
威胁快报|Bulehero挖矿蠕虫升级,PhpStudy后门漏洞加入武器库
近日,阿里云安全团队监控到Bulehero挖矿蠕虫进行了版本升级,蠕虫升级后开始利用最新出现的PHPStudy后门漏洞作为新的攻击方式对Windows主机进行攻击,攻击成功后会下载门罗币挖矿程序进行牟利。建议用户及时排查自身主机是否存在安全漏洞,并关注阿里云安全团队的相关文章。
3148 0
|
安全 数据安全/隐私保护 iOS开发
解密被 Findzip 勒索软件感染的文件
本文讲的是解密被 Findzip 勒索软件感染的文件,专门针对OS X的勒索软件Findzip(亦称Filecoder)是在2017年2月22日被发现的。近日,国外安全专家发现Findzip是通过BitTorrent网站传播的,MalwareBytes研究人员Thomas Reed发现,那些受到Findzip 感染的MacOS用户,即使支付了赎金也不会得到黑客提供的密钥。
1580 0
|
安全 数据安全/隐私保护 Windows
Petya勒索软件攻击预警更新:赛门铁克进一步解析Petya勒索软件
本文讲的是Petya勒索软件攻击预警更新:赛门铁克进一步解析Petya勒索软件,2017年6月27日,一个名为Petya的勒索软件开始大肆传播,导致许多企业遭受攻击。
1262 0
|
安全 网络安全 区块链
CNNVD关于WannaCry勒索软件攻击事件的分析报告
本文讲的是CNNVD关于WannaCry勒索软件攻击事件的分析报告,一款名为“WannaCry”(也称WannaCrpt、WannaCrpt0r、Wcrypt、WCRY)的勒索软件在全球范围内爆发,造成极大影响。
2111 0
|
安全 数据安全/隐私保护