WannaCry 样本分析
综述
WannaCry是于2017年5月12日爆发的,勒索病毒WannaCry借助高危漏洞“永恒之蓝”(EternalBlue)在世界范围内爆发,并迅速在公网上进行传播,造成了极大的危害。正如其名勒索病毒会对文件进行加密,需要受害者进行支付比特币进行解密。
外部分析
导入导出表
我们先从外部入手,观察其对应的导入导出表,我们可以观察到导入了文件创建、文件读取、获取路径等文件操作,以及创建了互斥体,防止多开。同时还有对注册表进行修改、网络链接的相关函数。
资源
在资源部分我们可以观察到有压缩包的特征
进行提取,我们打开可以发现勒索程序运行后会解压的东西在此压缩包中,同时压缩包设有密码,目前信息无法进行解压,猜测程序中有部分代码进行对其解压进行释放,然后执行内部的两个.exe
,随后对.wnry
文件进行解密,读入内存
逆向分析 —— wcry.exe
WinMain
注册表写入
文件释放
通过调试以及猜测我们可以得到对应资源段压缩包的解压密码WNcry@2ol7
我们可以通过xdug
进行调试,可以释放出以下文件
比特币地址写入
向c.wnry
写入一个随机的比特币钱包地址,随后在调用破环程序时读入,要求用户打款
使用010进行查看对应写入前后对比
可以明显的发现已经写入了是哪个地址中的随机一个,同时可以注意到下面存在有洋葱路由的网址以及对应组件的压缩包。表明病毒作者将勒索服务器搭建在暗网上,需要通过tor.exe
来对其进行通信
线程创建
不难看出其创建了多个线程,将wcry.exe
执行的目录设置为隐藏,同时通过命令行修改所有文件的权限为完全访问权限
执行命令如下:
1 |
|
t.wnry 解密
dump下来对应的内存,我们用010进行搜索MZ
文件头,可以发现其对t.wnry
解密出了个PE文件,将其拖入PE查询可以得到其为一个Dll
通过在堆上分配空间,然后在堆上进行加载,因为是在堆上加载的,所以没有符号信息,显得较难看。同时其遍历解密后的dll
的导出表,返回TaskStart
函数的地址
总结
Wcry.exe
总体上没有进行太多的操作,更多的是做为初始化程序将文件进行释放,随后加载dll
并调用内部函数,大致可以猜测到核心在dll
中,接下来的主要工作便是对dll
的分析工作
逆向分析 —— t.wnry.dll
TaskStart
t.wnry.dll
中的TaskStart
函数才是真实的加密函数,其核心功能都在里面
在创建bat脚本中将释放的文件进行了再次解析,创建了@WanaDecryptor@.exe
的快捷方式、对@Please_Read_Me@.txt
写入支付比特币数以及对应地址等信息、同时加密其他用户文件等等
sub_10003AC0
创建00000000.pky
并保存对应的公钥,同时创建私钥文件00000000.eky
,同时在加密过程中可以看到有RSA
以及AES
相关字段,大致猜测采用了两种加密进行混合。
sub_100057C0
通过taskkill强删Microsoft.Exchange、sql和mysql进程(加密其数据)
sub_10004F20
枚举All Users\Desktop目录,复制b.wnry
到目录中为@WanaDecryptor@.bmp
,设置桌面背景为@WanaDecryptor@.bmp
sub_10004CD0
sub_10004DF0
sub_10005480
逆向分析 —— taskse.exe
通过上述代码可以大致了解到其大致是通过伪造令牌来进行达到提升权限
逆向分析 —— taskdl.exe
其作用为遍历路径找到有.WNCRYT
的文件,并将其进行删除
逆向分析 —— u.wnry
sub_4064D0
其启动时会检测参数的个数,当启动时没有参数时,仅释放@WanaDecryptor@.bmp
,并设置为桌面背景,同时启动勒索主界面,不构成实际危害
如果参数为fi
、co
、vs
中的一个时将会分别执行以下操作
fi:
检查系统是否已经被加密,如果是,则显示勒索界面
co:
在 127.0.0.1:9050 上开始监听
从 s.wnry 中解压Tor到安装目录
如果 s.wnry 不存在或损坏,就从配置文件中指定的 URL 下载 Tor
将 TaskData\Tor\tor.exe 复制为 TaskData\Tor\taskhsvc.exe 并运行
vs:
静默删除操作系统上的所有卷影副本、禁用操作系统启动状态策略以及恢复功能同时删除备份目录
上述操作会根据用户的权限进行来通过不同方式进行执行
总结
文件释放
msg 病毒的语言包
c.wnry 存储了比特币账户 一个下载链接 跟勒索相关
t.wnry 隐藏了一个dll 文件 dll 的导出函数是病毒的核心代码
u.wnry 解密器,勒索病毒主界面
r.wrny 勒索文档
@WanaDecryptor@.exe 解密器,从 u.wnry 中拷贝而来
taskse.exe 提权部分
taskdl.exe 删除临时文件和回收站的.WNCRY文件
00000000.pky 公钥
00000000.eky 被加密的私钥
00000000.res 八个字节的随机数和当前时间
.bat为解密器创建快捷方式
行为总结
参考资料
对WannaCry的深度分析_wannacry 分析_鬼手56的博客
勒索病毒WannaCry深度技术分析——详解传播、感染和危害细节