从Wannacry到WannaRen:螣龙安科2020年4月7日,360CERT监测发现网络上出现一款新型勒索病毒wannaRen,该勒索病毒会加密windows系统中几乎所有的文件,并且以.WannaRen作为后缀。360CERT该事件评定:危险等级为高危,影响面为广泛。

经360安全大脑分析确认,“WannaRen”勒索病毒的作者正是此前借“永恒之蓝”漏洞祸乱网络的“Shadow Brokers”组织。从三年前Wannacry席卷全球,至少30万用户中招,到今天卷土重来,这两款病毒背后的原理基本是一样的,今天翼火蛇就带你来深度分析这两款病毒的原理。

原理分析(以Wannacry为例)

传播基础——EternalBlue“永恒之蓝”漏洞

“永恒之蓝”漏洞本来是美国国家安全局(NSA)开发的针对微软的攻击武器,但在2013年6月被黑客团队ShadowBreakers窃取,在2017年,ShadowBreakers公布了一大批网络攻击工具,其中包含“永恒之蓝”工具。

”永恒之蓝“利用Microsoft 服务器消息块(SMB)协议的实现中的一个漏洞。该漏洞的存在是因为各种版本的Microsoft Windows中的SMB版本不同,服务器处理来自远程攻击者的特制数据包,使他们可以在目标计算机上执行任意代码。该漏洞利用的是windows计算机的445端口,445端口是一个毁誉参半的端口,有了它我们可以在局域网中轻松访问各种共享文件夹或共享打印机,但也正是因为有了它,黑客们才有了可乘之机,他们能通过该端口偷偷共享你的硬盘。而在Wannacry攻击中,攻击者就是扫描开放445文件共享端口的Windows机器,不需要用户的任何操作就能在电脑和服务器中植入Wannacry病毒。

病毒核心——加密勒索病毒部分

PART1  wcry.exe主程序

这一部分是是病毒的初始化操作,代码逻辑如下:

初始化操作

病毒首先获取到计算机名,然后计算出计算机名的ASCII乘积,将这个乘积作为随机数种子调用两次rand函数,最后获取到一个字母+数字的随机字符串,接下来程序对命令行参数做了一个判断,然后切换当前进程的路径为工作目录。

随后,通过RealseFiles函数将资源中隐藏的压缩包进行解压 解压密码是WNcry@2017,然后释放压缩包中的所有文件到当前进程的路径下。然后,再利用WriteCwnry函数将比特币账户写入到c.wnry文件中。最后通过执行两次ExeCmdCommand函数,隐藏当前路径下的所有文件,同时向系统中添加一个叫everyone的用户,并且给他所有权限。

加载病毒核心操作

这部分的函数所有的操作都只有一个目的,就是为了调用dll中的导出函数。

首先,通过GetApis函数获取各个API函数的地址,比如CreateFileW、WriteFile 等等,为后面的操作做准备。

接着,通过CDatabase::CDatabase构造函数初始化两个用于线程同步的临界区对象。接下来利用ImportKeyAndAllocMem函数导入RSA密钥并申请两块内存空间。

私钥已经导入完成,那么接下来要做的就是解密了。通过DecryptFile函数对t.wnry这个文件进行读取操作,读取到内存之后传入上个函数拿到的密钥句柄,在内存中进行解密,然后导出一个dll文件。

随后,通过WriteAllocMem函数申请一块堆空间,并且把已经解密的dll文件写入到堆空间中。然后,通过函数GetExportFunAddr函数从堆空间中取出dll导出函数的地址,并且通过析构函数析构,释放资源。

PART1总结

从上面的分析可以得出病毒的主体程序实际上只做了一些初始化的操作,到目前为止并没有看到它感染或加密任何一个文件,也没有对用户进行勒索,真正的核心代码在t.wnry中。

PART2  t.wnry.dll病毒核心

第二部分是病毒的所有操作

CreateResFile 第一个线程回调函数

这个函数在工作路径创建了00000000.res这个文件,并且往里写入数据。

CheckDky 第二个线程函数

这个函数的作用是每个五秒检测工作路径下是否存在774F34B5.dky这个文件。

EncryptAllFiles 第三个线程函数 加密所有文件

这个函数是整个病毒程序最核心的函数,代码量最多,里里外外总共嵌套了十几层函数。

l 核心加密函数第一层

循环检测是否有新的磁盘加入,如果有,则加密,没有就一直循环。

l 核心加密第二层

这一层有三个函数很重要

MovFileToTemp:移动文件到临时目录下并重命名为.WNCRTY

FillDisk:在回收站创建一个文件,并且循环写入数据直到磁盘空间不足

EncryptFile:加密磁盘上的所有文件

l 核心加密第三层

进到第三层之后又有一个函数,这个函数会遍历并且加密所有的文件,而且是递归调用的。

l 核心加密第四层

这个函数首先遍历所有的文件,对文件夹和文件执行不同的操作,并且对后缀名进行过滤。

l 核心加密第五层

这个函数首先会调用sub_10002E70这个函数 根据这个函数返回值的不同 执行不同的加密策略

l 核心加密第六层

这个加密函数首先做了一些准备工作,获取文件的后缀名,然后跟.WNCRY做判断,如果比较成功,则不加密,接着做了一个字符串拼接,然后才开始加密文件

l 核心加密第七层

接下来是这个程序的核心的加密算法,他加密的步骤如下

1.读取文件前0x8个字节的内容,跟WANACRY!作比较

2.使用原文件名+.WNCRYT 创建一个新文件,创建的时候这个文件并没有任何内容

3.对创建的文件写入数据

4.读取原文件 将加密后的文件内容写入到创建的文件

StartTaskdl 第四个线程回调函数 以隐藏的方式启动taskdl.exe

这个函数每隔三秒以隐藏的方式启动taskdl.exe

StartExeAndSetReg 第五个线程回调函数 启动taskse.exe和@WanaDecryptor@.exe并且修改注册表

WannaCry病毒的大致原理就是这样,在其核心部分,同时使用了十几个函数的嵌套,复杂程度堪比当年的熊猫烧香。但是WannaCry病毒存在一个致命缺陷,即病毒作者无法明确认定哪些受害者支付了赎金,因此很难给相应的解密密钥,所以用户即使支付了赎金,也未必能顺利获得密钥该电脑系统及文件依旧无法得到恢复。

当然,Wannacry病毒并不是金刚不坏,主要有这样几种防御措施。

1. 关闭445端口

2.更新补丁

3.通过某些安全软件来防范加密

事实上,在面对所有的勒索病毒时,避免接触感染源,及时更新系统补丁才是上上策,一旦病毒已经感染,文件已经被加密,在短时间内破解密钥几乎是不可能的,因而事前防范才是克制勒索病毒像2017年那样肆虐的关键所在。

从Wannacry到WannaRen:螣龙安科带你深度分析勒索病毒原理的更多相关文章

  1. WannaRen来袭:螣龙安科带你盘点那些年的勒索病毒

    2020年4月7日,360CERT监测发现网络上出现一款新型勒索病毒wannaRen,该勒索病毒会加密windows系统中几乎所有的文件,并且以.WannaRen作为后缀.360CERT该事件评定:危 ...

  2. 螣龙安科携手51CTO:网络安全实战课程最新发布

    一年一度的双十一狂欢节即将来临了,相信各大电商平台也正摩拳擦掌跃跃欲试中.回顾2019年,阿里巴巴双十一狂欢节的单日交易额就达到了2684亿人民币,创造了电商交易历史上新的记录. 当人们愉快地购买着自 ...

  3. 螣龙安科反入侵:EDR的缺点

    EDR解决方案提供了比传统终结点安全解决方案更高的功能,并且可以增加人员数量,但是这些功能都有不少的缺点. EDR功能付出巨大代价 在过去四年中,虽然产品成本平均每年下降约35%,但即使到今天,产品的 ...

  4. 螣龙安科:威胁研究——与MAZE勒索软件事件相关的策略,技术和程序

    至少从2019年5月开始,恶意行为者就一直在积极部署MAZE勒索软件.勒索软件最初是通过垃圾邮件和漏洞利用工具包分发的,后来又转移到妥协后进行部署.根据我们在地下论坛中对涉嫌用户的观察以及整个Mand ...

  5. 安科 OJ 1190 连接电脑 (并查集)

    时间限制:1 s 空间限制:128 M 传送门:https://oj.ahstu.cc/JudgeOnline/problem.php?id=1190 题目描述 机房里有若干台电脑,其中有一些电脑已经 ...

  6. 一分钟应对勒索病毒WannaCry

    一.WannaCry 勒索病毒 勒索病毒WannaCry肆虐全球,利用Windows操作系统漏洞,因链式反应迅猛自动传播,校园电脑.个人电脑.政府机关都是重灾区.中毒电脑所有文档被加密,将被勒索高达3 ...

  7. WannaCry勒索病毒全解读,权威修复指南大集合

    多地的出入境.派出所等公安网络疑似遭遇了勒索蠕虫病毒袭击,已暂时停办出入境业务:加油站突然断网,不能支持支付宝.微信.银联卡等联网支付:大批高校师生电脑中的文件被蠕虫病毒加密,需要支付相应的赎金方可解 ...

  8. "WannaCry"勒索病毒用户处置指南

    "WannaCry"勒索病毒用户处置指南   原文: http://mp.weixin.qq.com/s/ExsribKum9-AN1ToT10Zog    卡巴斯基,下载官网:h ...

  9. WannaCry勒索病毒卷土重来:日本本田工厂被迫关闭

    6月22日消息,前阵子WannaCry勒索病毒席卷全球,世界各地网络遭到攻击.日前,偃旗息鼓了一阵的WannaCry勒索病毒又重回人们视线,迫使一家汽车厂在日本关闭. 路透社报道,本田Sayama工厂 ...

随机推荐

  1. 红旗 Linux 桌面操作系统11来了:支持国产自主CPU,全新UI风格设计,兼容面广...

    链接:https://reurl.cc/g8ke9X 红旗Linux桌面操作系统11将于1月10日开放预览版的下载,新版本具有良好的硬件兼容,支持多款国产自主CPU品牌,同时还具有丰富的外设支持及海量 ...

  2. 小程序扫码、上传图片、css时间轴

    de <!-- 导航 --> <view class="navSec flexBox"> <text class="navItem {{ s ...

  3. .NET混合开发解决方案10 WebView2控件调用网页JS方法

    系列目录     [已更新最新开发文章,点击查看详细] WebView2控件应用详解系列博客 .NET桌面程序集成Web网页开发的十种解决方案 .NET混合开发解决方案1 WebView2简介 .NE ...

  4. VMware 虚拟机图文安装和配置 AlmaLinux OS 8.6 教程

    前言: 这是<VMware 虚拟机图文安装和配置 Rocky Linux 8.5 教程>一文的姐妹篇教程,如果你需要阅读它,请点击这里. 2020 年,CentOS 宣布:计划未来将重心从 ...

  5. 【单片机】CH32V103v8t6 - PA5-外部中断测试程序

    main.c文件内容 /* *@Note 外部中断线例程: EXTI_Line5(PA5) PA5设置上拉输入,下降沿触发中断. */ #include "debug.h" /** ...

  6. ML第7周学习小结

    本周收获 总结一下本周学习内容: 1.学习了<深入浅出Pandas>的第六章:Pandas分组聚合 6.4 聚合统计 6.5 数据分箱 6.6 分组可视化 博客: pandas:聚合统计. ...

  7. Pandas 分组聚合 :分组、分组对象操作

    1.概述 1.1 group语法 df.groupby(self, by=None, axis=0, level=None, as_index: bool=True, sort: bool=True, ...

  8. 测试平台系列(95) 前置条件支持简单的python脚本

    大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的教程,希望大家多多支持. 欢迎关注我的公众号米洛的测开日记,获取最新文章教程! 回顾 上一节我们构思了一下怎么去支 ...

  9. 解决python无法打开谷歌浏览器问题

    python+selenium 打开浏览器网页时可能会出现两种情况, 一.python 初次打开浏览器未进行安装浏览器控制插件, 二.python 能打开浏览器的情况下,突然有一天发现无法打开并报错新 ...

  10. KALI2020忘记用户名和密码

    时隔半年,打开kali发现忘记了自己精心研制的用户名密码......... 第一步 在开机的时候就按e键进入如下界面 第二步 用键盘上的上下箭头↑↓进行屏幕滚动,滑到最后一行发现修改目标 倒数第四行: ...