WannaCry勒索如何分析实战

我的第一篇博客文章

作为一名大四的网络工程应届毕业生,发自内心的感谢网上的每一位博主,感谢网上的每一位大佬愿意分享自己的经验。我才可以在网上学到如此多的知识。我在很早之前就想将我在学习的路上所遇到的磕磕碰碰都在网上发布出来,回馈给大家,但是却不敢迈出这一步。近期要找工作,于是就写下这篇WannaCry勒索病毒的文章,我学习逆向有一段时间了,所以后期我想将学习逆向的磕磕碰碰都分享出来。

在开篇之前,本篇文章参考于:https://www.52pojie.cn/thread-1573058-1-1.html,WannaCry的样本也同样来源于这位大师傅的分享。推荐来自安天的https://www.anquanke.com/post/id/86092;GitHub上找的https://github.com/eastmountyxz/WannaCry-Experiment。
书籍:《恶意样本分析实战》

这篇博客有点水,希望各位师傅可以指出我的错误,给予我宝贵的意见。勒索病毒分析我可能会过段时间再更,最近事情比较多,学校要论文定稿了,最悲惨的是我摔到了右手腕,都不能动手了。

静态分析样本

面对未知病毒下,最好先断网,万一手抖双击了,那岂不是没了?虽然是在虚拟机环境下分析这个病毒。

首先我先收集确定这个文件的信息。我习惯StudyPE的界面多一点,这里我用studyPE做一个静态分析。但这里我们也可以用沙箱运行因为相比于静态分析,沙箱可以快速检测出这个恶意样本的行为,我们可以快速确认这个样本是否是恶意的一个方法之一,但如果恶意软件使用反虚拟机技术,它就会将恶意代码隐藏起来,不运行。

从StudyPE的反馈上,我们知道它是32位的PE文件,MD5是…。WannaCry.exe没有加壳?。可能是因为WannaCry的作者知道,即使不给你加壳,你也解不开它的勒索吧。

这里可以看出这个WannaCry.exe的导入表放到.rdata上,文件偏移是A1E0;资源表放到.rsrc,文件偏移地址是32000;我们可以看见它没有重定位表,因为exe程序是有自己独立的运行空间,但是dll是依赖于exe程序才能运行,所以dll会占用exe程序中的内存地址,从而dll文件都会带有重定位表,而exe程序基本没有重定位表。

我们看一下WannaCry.exe的导入表,看看它使用了什么Windows API,猜测它是一个什么样的行为。

一个恶意样本的恶意代码往往是调用了Windows API函数,但它也有可能是自己写的API,然后通过注入的方式写到Dll里,也可能通过调用系统自带的API然后从网络中下载到系统中。但是,我们如果我们只通过判断这些Windows API函数,它或许是从网络中下载文件,修改注册表使得自身可以开机启动等行为,就判断它是病毒、木马,我觉得这是鲁莽的,因为我们在判断这些函数的调用下,我们还应该注意和提取它的参数,并且构思它的整一条攻击链。
1)KERNEL32.dll是与内核相关的dll,它提供了进程、线程、文件操作、资源、模块等函数调用。(见到KERNEL32.dll,还要联想到KERNEL32.dll->Ntdll.dll->Ntoskrnl.exe->Kernel)
2)ADVAPI32.dll是与服务、加密的dll,它提供了打开服务、加密等函数。
3)WS2_32.dll是网络相关的dll,它提供了socket套接字等函数。
4)Iphlpapi.dll是Windows引用接口模块,它提供了Getadapterinfo()函数等,获取本地适配器的信息。
5)WININETdll是网络模块,它提供了InternetOpenUrlA()函数,能够打开网络连接。

从资源表中,我有发现了存在一个PE文件。

这个PE文件,我觉得它可以用来在作为一个新的exe文件被执行,也可以是一个这个WannaCry.exe的副本,也可能恶意代码藏在这个PE文件里。
这里,我可以直接按照PE文件的格式,查看它的导入表信息,但如果将它独立出一份exe文件,我就可以剩下不少时间。

我将其命名为WannaCry_PE.exe了。
由于我刚才StudyPE的窗口保留在了看资源表,然后打开WannaCry_PE.exe的时候,我发现它,又包含了一个这样的家伙。

MZ开头是PE文件的标志,那么PK呢?

网址:https://www.cnblogs.com/gwind/p/8215771.html

嗯??这个压缩包里还有两个exe程序???

对比于WannaCry_PE.exe与WannaCry.exe不同的是,它对修改注册表了。


所以,我猜测,WannaCry_PE.exe有可能将WannaCry_PE.exe或者是PK包里的exe文件驻留在注册表上,以便存活在操作系统上。当然,它也可能通过创建服务,持久化驻留在操作系统上。

用StudyPE对PK包里面的exe文件查看一下,
但它要解压密码,不过,既然它存放在我们的WannaCry_PE.exe文件上,那它想要用PK包里的这两个exe,肯定会通过某种方法解压。

接下来,我的分析重点是:
1) WannaCry.exe有什么恶意行为,怎么利用到WannaCry_PE.exe文件;
2) WannaCry_PE.exe修改了注册表的什么,然后是怎么解压PK包的,我们能否获取PK包的解压密钥。

恶意样本经常会在一个程序的资源节存储另一个程序,并创建一个新进程,如果他在资源节中存放的是一个可执行文件,那么当程序运行时,它会从PE头中提取附加的可执行文件,将它写到磁盘中,然后调用CreateProcess来运行这个程序。因此,在WannaCry.exe的分析上,我们要注意CreateProcess函数调用过程。与此同时,创建进程拿来加载另一个程序,也就是说,进程是作为一个执行代码的容器,那么线程就是要执行的内容。所以,CreateThread也是我们要关注的点,CreateThread的调用可以指定线程的开始的函数位置,并且一个单一参数可以传递给start函数,这个参数可以是任意值,依赖于这个线程要开始执行的函数。

有时候我们可以直接看它的参数字符串,恶意样本可能会直接以字符串的形式显示出来,但是有时候恶意样本的编写者可能会混淆字符串,从而掩盖住真的字符串参数,这时候我们可以动态分析,查看返回值,从而确定真正要传入的字符串参数。

WannaCry勒索病毒分析过程**上**相关推荐

  1. WannaCry勒索病毒分析过程**中**(注)

    WannaCry勒索病毒分析 中(注) 我犯了一个很大的错误,就是在做分析的时候没有确定函数的作用,在分析过程中有捉不到重点的毛病. 在WannaCry.exe的分析中,它在判断打开它的URL后,如果 ...

  2. WannaCry勒索病毒分析过程**中**

    WannaCry勒索病毒分析 中 为了分析WannaCry.exe有着什么样的行为,以及它是如何释放WannaCry_PE.exe程序的,在IDA中打开WannaCry.exe 我们可以发现它的头是W ...

  3. WannaCry勒索病毒分析 **下**

    WannaCry勒索病毒分析 下 在WannaCry.exe的分析实战 上 里面我已经拿到了WannaCry.exe在资源文件中的PE文件,并且给它提了个名WannaCry_PE.exe文件.但在Wa ...

  4. [系统安全] 二十六.WannaCry勒索病毒分析 (2)MS17-010漏洞利用及蠕虫解析

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  5. [系统安全] 二十七.WannaCry勒索病毒分析 (3)蠕虫传播机制解析及IDA和OD逆向

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  6. [系统安全] 二十八.WannaCry勒索病毒分析 (4)全网“最“详细的蠕虫传播机制解读

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  7. WannaCry 勒索病毒复现及分析,蠕虫传播机制全网源码详细解读 | 原力计划

    作者 | 杨秀璋,责编 | 夕颜 来源 | CSDN博客 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) 这篇文章将详细讲解WannaCry蠕虫的传播机制,带领大家 ...

  8. WannaCry勒索病毒复现及分析,蠕虫传播机制全网源码详细解读 | 原力计划

    作者 | 杨秀璋 编辑 | 夕颜 题图 | 东方 IC 出品 | CSDN(ID:CSDNnews) 这篇文章将详细讲解WannaCry蠕虫的传播机制,带领大家详细阅读源代码,分享WannaCry勒索 ...

  9. [网络安全自学篇] 七十.WannaCry勒索病毒复现及分析(三)蠕虫传播机制分析及IDA和OD逆向

    这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步.前文分享了宏病毒相关知识,包括宏病毒基础原理.防御措施.自发邮件及APT28样本分 ...

最新文章

  1. 嵌入式Linux之我行——ARM MMU工作原理剖析
  2. NUXT: 视图和模板
  3. RvaToFileOffset 内存偏移转成文件偏移(滴水课后作业)
  4. c语言查找星期几,新手做的日历表及查找日期是星期几
  5. boost::sort模块实现在大多数排序的数组示例上展开排序
  6. Spring的HelloWorld
  7. ASP.NET CORE WEBAPI文件下载
  8. 【Antlr】unknown attribute text for rule stat in $stat.text
  9. 通过实验来理解代理ARP(二)
  10. 判断服务是否开启,应用是否安装,并安装应用
  11. WDK安装调试以及注意事项
  12. “快播时代”终结:清内容、关服务器!
  13. Hifn容量优化卡成功支持Bull公司备份方案
  14. php8最新版本特性,PHP8 了解新特性
  15. 个保法下个人信息委托处理活动合规要点
  16. java 限制输入两位数_Java 控制数字输入、控制输入长度的方法 | 学步园
  17. 苹果电脑怎么打印cpa准考证
  18. 简明扼要的HDFS元数据管理机制描述(NameNode和Secondary NameNode工作机制)
  19. Harmonizome数据库 – 一个集合多种pathway(or other)的网站
  20. 1-1 MySQL数据库的基本操作 【增删改查】

热门文章

  1. 2017年12306退票手续费新规定
  2. (附源码)计算机毕业设计SSM中小学家校通系统
  3. 百度小程序命中搜索算法的常见问题(官方解读)
  4. NBU OJ1211:一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。
  5. 体素科技丁晓伟:医疗影像的哲学三问
  6. 读书笔记-《如何阅读一本书》
  7. chaim(柴米油盐酱醋茶的下一句人生百味)
  8. AI时代-人工智能入学指南 - 迪哥有点愁
  9. 如果结束进程拒绝访问,可以尝试以下
  10. CSS3 水平垂直居中的6种方法