您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系统,更加深入,也是作者的慢慢成长史。换专业确实挺难的,逆向分析也是块硬骨头,但我也试试,看看自己未来四年究竟能将它学到什么程度,漫漫长征路,偏向虎山行。享受过程,一起加油~
作者前文采用Github资源实现永恒之蓝漏洞加载WannaCry勒索病毒,并实现对Win7文件加密的过程,但过程较为复杂,为什么不直接利用永恒之蓝呢?所以,这篇文章将直接分享MSF利用MS17-010漏洞进行反弹Shell,再上传勒索病毒进行实验复现,并详细讲解WannaCry勒索病毒的原理。基础性文章,希望对您有所帮助。
作者作为网络安全的小白,分享一些自学基础教程给大家,主要是关于安全工具和实践操作的在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔~
作者的github资源:
从2019年7月开始,我来到了一个陌生的专业——网络空间安全。初入安全领域,是非常痛苦和难受的,要学的东西太多、涉及面太广,但好在自己通过分享100篇“网络安全自学”系列文章,艰难前行着。感恩这一年相识、相知、相趣的安全大佬和朋友们,如果写得不好或不足之处,还请大家海涵!
接下来我将开启新的安全系列,叫“系统安全”,也是免费的100篇文章,作者将更加深入的去研究恶意样本分析、逆向分析、内网渗透、网络攻防实战等,也将通过在线笔记和实践操作的形式分享与博友们学习,希望能与您一起进步,加油~
- 推荐前文:网络安全自学篇系列-100篇
前文分析:
声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。该样本不会分享给大家,分析工具会分享。(参考文献见后)
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勒索病毒主要行为是传播和勒索。
实验环境:
实验工具:
实验步骤:
切记、切记、切记:实验复现过程中必须在虚拟机中完成,运行之前关闭虚拟机Win7文件共享,真机上一旦被感染你就真的只能想哭了(wannacry)。同时,该实验比上一篇文章精简很多,更推荐该方法,仅作逆向分析使用,切勿攻击他人,否则后果自负。
第一步,创建虚拟机并安装Windows7 x64位操作系统。Win7设置开启445端口,同时关闭防火墙。注意,关闭虚拟机文件共享功能。
第二步,保证攻击机和受害机相互通讯,均在同一个局域网中。
第一步,扫描靶机是否开启445端口。
第二步,打开msfconsole并查询MS17-010漏洞模块。
这里有各种MS17-010漏洞版本,我们根据目标系统选择编号为3的版本。推荐读者看看NSA泄露的方程式工具包,其中永恒之蓝(eternalblue)就是著名的漏洞。
第三步,利用永恒之蓝漏洞并设置参数。
第四步,成功获取Win7系统管理员权限。
第五步,上传勒索病毒至Win7系统。再次强调,虚拟机中运行该实验,并且关闭文件共享功能。
第六步,运行勒索病毒,实验复现成功。
运行前的受害主机界面如下图所示:
运行病毒程序后的界面如下图所示,已经成功被勒索。再次强调,所有代码必须在虚拟机中执行,并且关闭文件共享。
加密系统中的文件,被加密的文件后缀名统一修改为“.WNCRY”。
勒索软件防御常见的措施如下:
由于WannaCry勒索病毒主要通过445端口入侵计算机,关闭的方法如下:
实验在虚拟机中进行,也需要关闭共享文件夹功能,如下图所示。
分析方法主要有两种:静态分析和动态分析
首先,我们来看看安天分享的Wannacry流程图,其运行流程包括:
接下来我们利用IDA进行逆向分析。
(1) 主函数逆向如下,包括创建工作目录、设置注册表、导入密钥、对t.wncy解密等功能。
(2) 主程序运行后会先连接该域名,如果该域名可以访问则退出,不触发任何恶意行为。如果该域名无法访问,则触发传播和勒索行为。目前该域名已被英国安全公司接管。
注意,目前网上的wrcy.exe我都只发现了勒索功能,前面网络部分及传播功能代码未找到。如果有该部分样本的读者,希望能告知作者,非常感谢。
(3) 创建开机自启动mssecsvc2.0服务并启动该服务。
(4) 从木马自身读取MS17-010漏洞利用代码,Playload分为x86和x64两个版本。
(5) 接着母体程序创建两个线程分别扫描内网和外网IP,开始进行蠕虫传播感染。
(6) 感染过程尝试连接445端口,如果连接成功则对该地址尝试漏洞攻击感染。
(7) 母体程序mssecsvc.exe利用MS17-010漏洞进行网络传播。
获取目标主机权限后,但其并不会直接发送自身exe程序到目标,而是发送一段经过异或加密后的Payload到目标机器中执行。Payload由shellcode+包含样本自身的dll组成。
dll具有一个导出函数PlayGame,将资源文件释放保存为mssecsvc.exe并执行。
(8) 加载资源到新建目录下并命名为taskche.exe,接着运行该程序。
(9) 释放tasksche.exe,路径为C:\windows\tasksche.exe。
(1) 解压释放大量敲诈者模块及配置文件,解压密码为WNcry@2ol7。
注意,如果我们将“wcry.exe”修改为“wcry.zip”,可以发现其是个压缩文件,包括以下内容。其解压密码也正是WNcry@2ol7。
(2) 设置工作目录、设置注册表、解压文件、获取比特币钱包等。
(3) 释放资源。
(4) t.wnry文件包含一个加密的dll文件,WannaCry勒索程序会解密并动态加载调用TaskStart导出函数,文件加密等恶意行为在该dll中实现。
(5) 加密勒索过程会创建互斥体和初始化全局变量。
(6) 检查互斥体是否存在。
(7) 检查00000000.dky和00000000.pky是否存在,是否配对。如果加密,则创建线程:更新c.wncy、启动@[email protected]、设置启动项。
(8) 程序内置RSA 2048公钥用于加密。
(9) 完成所有文件加密后释放说明文档,弹出勒索界面,需支付比特币到指定的比特币钱包地址,三个比特币钱包地址编码于程序中:
程序会将@[email protected]复制到被加密文件的文件夹下,衍生大量语言配置文件、具有加密功能的文件、窗体文件等,该程序没有传播、加密等恶意功能。
IDA逆向如下图所示:
@[email protected]是样本加密完用户数据显示的勒索界面程序,负责显示比特币钱包地址,演示部分解密文件。详细流程如下图所示:
写到这里,整个实验复现及分析过程介绍完毕,接下来作者简单介绍学术界三种检测WannaCry病毒的方法——CryptoLock、ShieldFS、Redemption,更推荐读者阅读论文。
(1) CryptoLock
CryptoLock在内核层中捕获从用户层发来的I/O请求,并将其发送到应用层进行判定、分类,应用层将Allow/Dis-allow消息发送到内核层后,内核层执行Pass/Block操作。
核心思想是使用文件过滤驱动拦截应用层的I/O请求,然后进行行为判定,如果判断为恶意I/O则拒绝该I/O请求。
主要指标:
次要指标:
作者使用了上面几种指标联合判决的方式来判断一个进程是否为恶意进程。
CryptoLock流程如下所示:
(2) ShieldFS
ShieldFS是在CryptoLock的基础上进行的研究。ShieldFS同样使用文件过滤驱动捕获应用层的I/O请求来进行恶意软件检测,与CryptoLock不同的是,CryptoLock在判别方式上进行了改进,以及增加了勒索软件检出后的被加密文件恢复机制。
ShieldFS流程如如下所示,其主要模块有两个:检测模块和恢复模块。恢复模块用某种机制对文件进行备份,在检测模块检测出某进程为恶意进程后,恢复被恶意进程加密的文件。
(3) Redemption
与ShieldFS相似的,Redemption也分为恶意行为检测部分和备份部分。它与ShieldFS不同的地方就在于判别使用的指标和备份、恢复文件的方式。同时,Redemption使用了基于内容的指标和基于行为的指标,最后对各种指标进行计分,通过得分是否超过阈值来判断进程是否为恶意进程。
Redemption流程如如下所示:
写到这里,这篇WannaCry勒索病毒复现和分析的文章就介绍结束了,希望对您有所帮助。接着作者还会继续深入地逆向分析该勒索病毒的原理及调用关系,也推荐大家阅读参考文献大佬们的文章。继续加油~
这篇文章中如果存在一些不足,还请海涵。作者作为网络安全初学者的慢慢成长路吧!希望未来能更透彻撰写相关文章。同时非常感谢参考文献中的安全大佬们的文章分享,感谢师傅、师兄师弟、师姐师妹们的教导,深知自己很菜,得努力前行。
欢迎大家讨论,是否觉得这系列文章帮助到您!如果存在不足之处,还请海涵。任何建议都可以评论告知读者,共勉~
2020年8月18新开的“娜璋AI安全之家”,主要围绕Python大数据分析、网络空间安全、人工智能、Web渗透及攻防技术进行讲解,同时分享CCF、SCI、南核北核论文的算法实现。娜璋之家会更加系统,并重构作者的所有文章,从零讲解Python和安全,写了近十年文章,真心想把自己所学所感所做分享出来,还请各位多多指教,真诚邀请您的关注!谢谢。
(By:Eastmount 2021-03-01 晚上12点夜于武汉 http://blog.csdn.net/eastmount )
参考文献:
[1] 勒索病毒“WannaCry”之复现过程(永恒之蓝)- weixin_40950781
[2] Windows再曝“WannaCry”级漏洞 CVE-2019-0708,专治 XP、Win7 - FB客户
[3] 对WannaCry的深度分析 - 鬼手56
[4] 安天针对勒索蠕虫“魔窟”(WannaCry)的深度分析报告
[5] [原创]勒索病毒WannaCry深度技术分析——详解传播、感染和危害细节 - 火绒实验室
[6] WannaCry蠕虫详细分析 - FreeBuf腾讯
[7] [病毒分析]WannaCry病毒分析(永恒之蓝) - 小彩虹
[8] 威胁预警 | 蠕虫级漏洞BlueKeep(CVE-2019-0708) EXP被公布 - 斗象智能安全平台
[9] [反病毒]病毒分析实战篇1–远控病毒分析 - i春秋老师
[10] wannacry,petaya,meze等病毒样本 - CSDN下载
[11] 针对WannaRen勒索软件的梳理与分析 - 安天