2017年5 月12 日晚上20 时左右,全球爆发大规模蠕虫勒索软件感染事件,仅仅几个小时内,该勒索软件已经攻击了99个国家近万台电脑。英国、美国、俄罗斯、德国、土耳其、意大利、中国、菲律宾等国家都已中招,且攻击仍在蔓延。
据报道,勒索攻击导致16家英国医院业务瘫痪,西班牙某电信公司有85%的电脑感染该恶意程序。至少1600家美国组织,11200家俄罗斯组织和6500家中国组织和企业都受到了攻击。国内也有大量教学系统瘫痪,包括校园一卡通系统。
瑞星的研究人员对勒索软件进行详细的分析,并且给出多种解决方案,包括“永恒之蓝”病毒免疫工具。
漏洞利用模块分析
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防火墙设置方法: