WANNACRY病毒中的加密技术分析
WANNACRY病毒与永恒之蓝
“永恒之蓝”是指NSA泄露的危险漏洞“EternalBlue”。 Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。WannaCry病毒就是利用EternalBlue漏洞进行传播,进行网络端口扫描攻击,目标机器被成功攻陷后会从攻击机下载WannaCry病毒进行感染,并作为攻击机再次扫描互联网和局域网其他机器,形成蠕虫感染,大范围超快速扩散。
WANNACRY病毒的实现过程
勒索病毒被漏洞远程执行后,会从资源文件夹下释放一个压缩包,此压缩包会在内存中通过密码:WNcry@2ol7解密并释放文件。这些文件包含了后续弹出勒索框的exe,桌面背景图片的bmp,包含各国语言的勒索字体,还有辅助攻击的两个exe文件。这些文件会释放到了本地目录,并设置为隐藏。病毒加密使用AES加密文件,并使用非对称加密算法RSA 2048加密随机密钥,每个文件使用一个随机密钥,理论上不可破解。
分析WANNACRY病毒
木马母体mssecsvc.exe
判断开关
木马在网络上设置了一个开关,若本地计算机能够成功访问http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com,退出进程,不再进行传播感染。
2017年5月13日晚间,由英国研究员于无意间发现的WannaCry隐藏开关域名,遏制了病毒的进一步大规模扩散。这仅仅阻止了病毒的传播,已经被感染的电脑依然被攻击,文件会被加密锁死。
蠕虫行为
a) 通过创建服务启动,每次开机都会自启动。
b) 从木马自身读取MS17_010漏洞利用代码
c) 创建两个线程,分别扫描内网和外网的IP,开始进程蠕虫传播感染
d) 对公网随机ip地址445端口进行扫描感染;对于局域网,则直接扫描当前计算机所在的网段进行感染。
e) 感染过程中,尝试连接445端口。如果连接成功,则对该地址尝试进行漏洞攻击感染。
f) 释放敲诈者tasksche.exe。
tasksche.exe
1) 解压释放大量敲诈者模块及配置文件,解压密码为WNcry@2ol7
2) 首先关闭指定进程,避免某些重要文件因被占用而无法感染 遍历磁盘文件,避开含有ProgramData,Intel,WINDOWS,Program Files,Program Files (x86),AppData,Local,Temp,Local Settings,Temp字符的目录,同时避开感染病毒释放出来的说明文档,加密178种扩展名文件。
3) 完成所有文件加密后释放说明文档,弹出勒索界面,需支付价值数百美元不等的比特币到指定的比特币钱包地址,三个比特币钱包地址硬编码于程序中。
解密程序
1) 病毒解密程序中内置了其中一个公钥的配对私钥,可以用于解密使用该公钥加密的几个文件,用于向用户“证明”程序能够解密文件,诱导用户支付比特币。
2) 解密:程序判断本地是否存在“00000000.dky”文件,该文件为真实解密所需私钥文件。若存在,则通过解密测试文件来检测密钥文件是否正确。若正确,则解密。若错误或不存在,病毒将程判断解压后的Tor目录下是否存在taskhsvc.exe。若不存在,则生成该文件,并且调用CreateProcessA拉起该进程。
3) 该程序主要为tor匿名代理工具,该工具启动后会监听本地9050端口,病毒通过本地代理通信实现与服务器连接。在点击“Check Payment”按钮后,由服务端判断是否下发解密所需私钥。若私钥下发,则会在本地生成解密所需要的dky文件。
4) 程序便可利用该dky文件进行解密。不过,到目前为止,未曾有解密成功的案例。
Wanacry加解密过程
文件加密
1) 文件是使用AES进行加密的。
2) 加密文件所使用的AES密钥是随机生成的,即每个文件所使用的密钥都是不同的。
3) AESKEY通过RSA加密后,保存在加密后文件的文件头中。
4) 敲诈者会根据文件类型、大小、路径等来判断文件对用户的重要性,进而选择对重要文件的先行进行加密并擦写原文件,对认为不太重要的文件,仅作删除处理。
文件删除及擦写逻辑
1) 对于桌面、文档、所有人\桌面、所有人\文档四个文件夹下小于200M的文件,均进行加密后擦写原文件。
2) 对于其他目录下小于200M的文件,不会进行擦写,而是直接删除,或者移动到back目录中。
3) 移动到back后,的文件重命名为%d.WNCRYT,加密程序每30秒调用taskdl.exe对back目录下的这些文件定时删除。
4) 对于大于200M的文件,在原文件的基础上将文件头部64KB移动到尾部,并生成加密文件头,保存为“WNCRYT”文件。而后,创建“WNCRY”文件,将文件头写入,进而按照原文件大小,对该“WNCRY”文件进行填充。
问题:
1. 对称密码技术和公钥密码技术的作用。
三组公钥密匙,作用分别是:1.一种用于加密随机生成的AESKEY;2.一种用于加密文件,是可以给被入侵用户展示的;3. 最后也是用于加密文件,支付比特币后才能解码的文件。
AES对称加密:用于加密文件。
2.受害者支付赎金后是否会恢复文件?
即使支付赎金,也很难保证能够得到解密密匙。WannaCry病毒的作者很难确定是哪台电脑的所有者支付了赎金,给出相应的解密密匙来解密。