WannaCry勒索病毒分析

前言

第一个分析勒索病毒分析的实践,仅用于记录自己的学习情况,大部分参考网上资料

分析病毒的步骤

在工作中,病毒分析师的任务就是从中毒的机器中提取样本,第一时间手工清理或是修复机器现场,之后再做分析。

  • 提取样本,手工清理机器
  • 行为分折,获取病毒行为
  • 详细分折,找到行为的恶意代码
  • 提出解决方案,提取特征给公司产品,完成查杀,编写文档报告,有条件编写专杀工具

病毒背景介绍

WannaCry勒索病毒 通过windows操作系统漏洞EternalBlue永恒之蓝 发起攻击。3月14 微软已经发布补丁,由于很多受害者没有及时安装补丁,导致被病毒攻击,计算机中的文件被加密

详细分析

病毒分为漏洞利用模块,加密器,解密器

攻击逻辑如下:

攻击者发起攻击,被攻击机器由于存在漏洞,导致自身中毒。中毒之后漏洞利用模块启动,漏洞利用模块运行之后,释放加密器和解密器,启动攻击线程,随机生成ip地址,攻击全球。加密器启动之后,加密指定类型的文件。文件全部加密之后,启动解密器。解密器启动之后,设置桌面背景显示勒索信息,弹出窗口 显示付款账号和勒索信。威胁用户指定时间内不付款文件无法恢复。

样本信息

目前已经知道的样本信息如下

文件: C:\Users\15PB\Desktop\Wannary\WannaCry.exe

  • 大小: 3723264 bytes
  • 文件版本:6.1.7601.17514 (win7sp1_rtm.101119-1850)
  • 修改时间: 2017年5月13日, 13:55:05
  • MD5: DB349B97C37D22F5EA1D1841E3C89EB4
  • SHA1: E889544AFF85FFAF8B0D0DA705105DEE7C97FE26
  • SHA256:24d004a104d4d54034dbcffc2a4b19a11f39008a575aa614ea04703480b1022c
  • CRC32: 9FBB1227

微步云沙箱检测如下https://s.threatbook.com/report/file/24d004a104d4d54034dbcffc2a4b19a11f39008a575aa614ea04703480b1022c

image-20231215161958777

文件: C:\ProgramData\znemvazsnwpqy217\Wannacry.exe

  • 大小: 3514368 bytes
  • 文件版本:6.1.7601.17514 (win7sp1_rtm.101119-1850)
  • 修改时间: 2022年7月11日, 13:22:29
  • MD5: 84C82835A5D21BBCF75A61706D8AB549
  • SHA1: 5FF465AFAABCBF0150D1A3AB2C2E74F3A4426467
  • CRC32: 4022FCAA

微步云沙箱检测如下https://s.threatbook.com/report/file/ed01ebfbc9eb5bbea545af4d01bf5f1071661840480439c6e5babe8e080e41aa

image-20231215162048600

程序分析

MD5: db349b97c37d22f5ea1d1841e3c89eb4

我们在这里把他定义为db程序

0x0 壳查询

image-20231215163918949

0x1 导入表分析

用stud_PE查看一下程序的导入表,可以看到导入了7个库的91个函数

image-20231215163858548

导入表分析

KERNEL32.dll 系统相关库
ADVAPI32.dll 与服务,注册表,加密有关的库
WS2_32.dll 网络有关服务的库
MSVCP60.dll 提供了一系列标准 C++ 库函数和运行时支持
iphlpapi.dll 获取网卡信息的库
WININET.dll HTTP相关库
MSVCRT.dll 提供了一系列标准C库函数和C运行时支持

0x2 资源分析

用ResourceHack发现存在一个exe资源,提取出来

image-20231215165039942

查一下MD5值

image-20231215165125703

发现是第二个样本,那么第二个样本就是这个样本释放出来的了

加密算法分析

对于这种勒索病毒肯定是有加密函数的,于是我们用PEid的插件Krypto ANALyzer查看用到那些算法

image-20231215165713126

可以看到存在加密函数和解密函数,并且存在加密S盒和逆转盒,并且提示了AES,可以知道采用的是AES加密

MD5: 84C82835A5D21BBCF75A61706D8AB549

我们在这里把他定义为84程序

0x0 壳查询

image-20231215162926514

可以知道程序是32位的,并且没有加壳

0x1 导入表分析

用stud_PE查看一下程序的导入表,可以看到导入了4个库的114个函数

image-20231215163448429

导入表分析和上面差不多。

0x2 资源分析

用ResourceHack发现存在一个zip资源,提取出来

image-20231215170240293

image-20231215170331357

又释放了一些程序和数据,并且是加密的

行为分析

使用火绒剑,将样本拖到火绒剑,对样本进行监控

获取样本之后,在虚拟机中,使用监控工具监控样本的运行。待病毒执行差不多之后,查看病毒的行为。(本病毒程序需要断网)

主要分析如下:文件操作,注册表操作,进程操作,网络操作

分析样本的行为之后,发现的恶意行为

  • 在C:\Windows目录下创建病毒文件:tasksche.exe,在C:\ProgramData目录下创建文件夹:znemvazsnwpqy217

  • 创建@Please_Read_Me@.txt文件,将文件感染为.WINCRY文件

  • 创建注册表键值、设置注册表键值

    HKEY_LOCAL_MACHINE\Software\Microsoft\Tracing\WannaCry_RASAPI32

    HKEY_LOCAL_MACHINE\Software\Microsoft\Tracing\WannaCry_RASMANCS

  • 设置启动项:C:\ProgramData\znemvazsnwpqy217\tasksche.exe

  • 创建进程、跨进程写内存、打开设备、跨进程恢复线程

  • 大量的持续性的网络连接行为(445端口)

参考链接

https://zhuanlan.zhihu.com/p/26926887

https://blog.csdn.net/ZK_1874/article/details/127578455

https://equinox-shame.github.io/2023/04/07/WannaCry%20%E5%88%86%E6%9E%90%E6%8A%A5%E5%91%8A/#%E6%80%BB%E7%BB%93-2