勒索病毒WannaCry深度技术分析(2)
两个Payload都是只有资源目录结构没有具体资源的无效PE动态库文件。病毒在攻击前,会构造两块内存,在内存中分别组合Payload和打开Worm病毒自身,凑成有效攻击Payload,代码如下图所示: 有效攻击Payload模型如下: 完整的攻击Payload的资源如下图,资源中的第一个DWORD是病毒大小,之后就是病毒本身。 然后使用MS17-010漏洞,通过APC方式注入动态库到被攻击计算机的Lsass.exe,并执行Payload动态库的导出函数PlayGame,该函数非常简单,功能就是释放资源“W”到被攻击计算机“C:Windows\mssecsvc.exe”,并执行,如下图所示: 火绒剑监控被攻击计算机的如下: 被攻击的计算机包含病毒的完整功能,除了会被勒索,还会继续使用MS17-010漏洞进行传播,这种传播呈几何级向外扩张,这也是该病毒短时间内大规模爆发的主要原因。如下图: 目前,攻击内网IP需要用户计算机直接暴露在公网且没有安装相应操作系统补丁的计算机才会受到影响,因此那些通过路由拨号的个人用户,并不会直接通过公网被攻击。如果企业网络也是通过总路由出口访问公网的,那么企业网络中的电脑也不会受到来自公网的直接攻击。但是,现实中一些机构的网络存在直接连接公网的电脑,且内部网络又类似一个大局域网,因此一旦暴露在公网上的电脑被攻破,就会导致整个局域网存在被感染的风险。 2.2 勒索病毒部分详细分析: 2.2.1 该程序资源中包含带有密码的压缩文件,使用密码“WNcry@2ol7”解压之后释放出一组文件: 1) taskdl.exe,删除临时目录下的所有“*.WNCRYT”扩展名的临时文件。 2)taskse.exe,以任意session运行指定程序。 3) u.wnry,解密程序,释放后名为@WanaDecryptor@.exe。 4) b.wnry勒索图片资源。 5)s.wnry,包含洋葱路由器组件的压缩包。病毒作者将勒索服务器搭建在”暗网”,需要通过tor.exe和服务器进行通信。 6)c.wnry,洋葱路由器地址信息。 7)t.wnry,解密后得到加密文件主要逻辑代码。 8)r.wnry,勒索Q&A。 2.2.2 通过命令行修改所有文件的权限为完全访问权限。命令行如下: icacls . /grant Everyone:F /T /C /Q 2.2.3 解密t.wnry文件数据得到含有主要加密逻辑代码的动态库,通过其模拟的LoadLibrary和GetProcAddress函数调用该动态库中的导出函数执行其加密逻辑。 调用勒索动态库代码,如下图所示: 勒索主逻辑执行,先会导入一个存放在镜像中的RSA公钥,之后调用CryptGenKey生成一组RSA算法的Session key。之后将这组Key的公钥通过CryptExportKey导出,再写入到00000000.pky文件中。将Session key中的私钥用刚导入RSA公钥进行加密,存放在00000000.eky如下图所示: 如果遍历到的文件扩展名在欲加密的文件扩展名列表中,如下图所示: 则会将当前文件路径加入到文件操作列表中,在遍历文件结束后一并进行文件操作。代码如下图: 对于每个需要加密的文件,都会调用CryptGenRadom随机生成AES密钥,之后使用Session Key中的RSA公钥对AES密钥进行加密,存放在加密后的数据文件头中,之后将原始文件数据用该AES密钥进行加密。如下图所示: 整体加密流程,如下图所示: 因为病毒是生成加密过的用户文件后再删除原始文件,所以存在通过文件恢复类工具恢复原始未加密文件的可能。但是因为病毒对文件系统的修改操作过于频繁,导致被删除的原始文件数据块被覆盖,致使实际恢复效果有限。且随着系统持续运行,恢复类工具恢复数据的可能性会显著降低。 三、关于“WannaCry”新变种的说明 早期版本的“WannaCry”病毒存在“Kill Switch”开关,也就是病毒中检测: “http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com” 这个网址是否可以访问的代码片段,如果可以访问则不会利用“永恒之蓝”漏洞继续传播。 现在这个域名已经被注册,这个版本“WannaCry”传播功能等于已经关闭,因为这段代码本身没有加密,所以很可能会被得到改病毒样本的“骇客”修改,放开开关,使病毒继续传播。 截止到今日,火绒已经收集到的所谓“WannaCry”最新版本的“变种”,正如我们推测的一样,网上两个“热炒"变种, SHA256分别为: 32f24601153be0885f11d62e0a8a2f0280a2034fc981d8184180c5d3b1b9e8cf c8d816410ebfb134ee14d287a34cea9d34d627a2c5e16234ab726cf9fde47ec6 和早期的“WannaCry”相比 SHA256: 24d004a104d4d54034dbcffc2a4b19a11f39008a575aa614ea04703480b1022c 有明显人为修改痕迹,如下图所示: 这个样本仅仅是16进制修改了两个字节,让"Kill Switch"失效,这个修改不会影响火绒的检测。 (编辑:ASP站长网) |