勒索病毒WannaCry深度技术分析
两个Payload都是只有资源目录结构没有具体资源的无效PE动态库文件。病毒在攻击前,会构造两块内存,在内存中分别组合Payload和打开Worm病毒自身,凑成有效攻击Payload,代码如下图所示: 有效攻击Payload模型如下: 完整的攻击Payload的资源如下图,资源中的第一个DWORD是病毒大小,之后就是病毒本身。 然后使用MS17-010漏洞,通过APC方式注入动态库到被攻击计算机的Lsass.exe,并执行Payload动态库的导出函数PlayGame,该函数非常简单,功能就是释放资源“W”到被攻击计算机“C:Windowsmssecsvc.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如下图所示: 如果遍历到的文件扩展名在欲加密的文件扩展名列表中,如下图所示: 则会将当前文件路径加入到文件操作列表中,在遍历文件结束后一并进行文件操作。代码如下图: (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |