瑞星卡卡安全论坛

首页 » 技术交流区 » 反病毒/反流氓软件论坛 » “永恒之蓝”WannaCry勒索病毒分析报告
麦青儿 - 2017-5-14 14:52:00
一. 背景介绍

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

二. 详细分析

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

漏洞利用模块分析

1.启动之后判断命令行参数,是否已经释放文件。如果没有释放文件则释放文件,启动释放的加密器,把自身设置为服务。

图-创建服务


病毒主程序 伪装为微软安全中心

图-伪装为服务


从资源中解密文件

图-从资源中释放出加密器


拼凑路径

图-拼凑加密器释放的路径


释放加密器

图-释放加密器


启动加密器

图-启动加密器程序


2.如果服务创建成功,则启动服务进入服务函数,创建线程 执行相应功能

图-随机生成攻击IP


图-利用漏洞攻击生成的IP


攻击线程中构造exploit 发送漏洞利用程序数据包
复制shellcode

图-构造漏洞利用数据包


发送数据包 利用漏洞攻击攻击生成的IP

图-收发数据包


图-发送漏洞利用数据包


随机生成IP 攻击全球主机

图-被攻击IP


加密器分析

加密器启动之后复制自身到C:\ProgramData\dhoodadzaskflip373(不同的系统会复制到不同的目录)目录下

图-复制自身并启动


创建服务 使用cmd命令启动自身 防止被结束进程
创建服务

图-创建服务 防止被结束


各参数信息

图-服务信息


创建互斥体 防止运行多个实例
MsWinZonesCacheCounterMutexA
创建注册表键值

图-创建注册表键值


从资源中解密出相关文件
包括提权模块taskse.exe 、 清空回收站模块taskdl.exe、解密器程序@WanaDecryptor@
还有一些 语言资源文件和 配置文件

图-加密器释放的文件


然后随机从三个比特币钱包中选取一个 作为勒索显示信息

图-比特币钱包地址


把释放的文件夹 所有文件 设置为隐藏属性

图-释放的文件设置为隐藏


遍历查找文件

图-遍历文件


判断是否是不感染的路径

图-判断路径


判断是否是要加密的文件类型

图-判断文件类型


读取文件并加密

图-读取文件


删除原来的文件 只保留加密后的文件

图-删除原文件


病毒会加密指定类型的文件

图-加密的文件类型


加密后的文件添加后缀 .WNCRYT

图-被加密的文件后缀


加密完成之后运行解密器 弹出勒索窗口

解密器分析

解密器运行之后会删除windows自动备份 无法还原被加密的文件

图-删除备份


修改桌面背景 显示勒索信息

图-勒索信息

弹出勒索窗口,显示比特币钱包地址和付款金额

图-勒索弹窗


解决方案

1.打补丁
由于此次勒索病毒大范围传播是由于很多机器没有打补丁,被攻击之后导致中毒。没有中毒的机器,尽快打补丁可以避免中毒。

2.关闭端口
由于此漏洞需要利用445端口传播,关闭端口 漏洞就无法利用
关闭端口详细方法见附录

3.创建互斥体
由于加密器,启动之后会检测是否已经有加密器程序存在,防止互相之间干扰,所以会创建互斥体MsWinZonesCacheCounterMutexA。只要检测到互斥体存在就会关闭程序。安全软件可以利用这一点 让病毒运行之后自动退出,无法加密文件。

附录 关闭端口方法

设置本机防火墙策略阻止本机445端口访问
1)WindowsXP 防火墙设置方法:


2)Win7/Win8/Win10防火墙设置方法:

启用防火墙


高级设置


新建入站规则


创建端口过滤规则


指定协议类型和端口号


阻止连接


规则应用到全部

1
查看完整版本: “永恒之蓝”WannaCry勒索病毒分析报告