WanaCrypt0r勒索蠕虫完全分析报告

0x1 前言

360互联网安全中心近日发现全球多个国家和地区的机构及个人电脑遭受到了一款新型勒索软件攻击,并于5月12日国内率先发布紧急预警,外媒和多家安全公司将该病毒命名为“WanaCrypt0r”(直译:“想哭勒索蠕虫”),常规的勒索病毒是一种趋利明显的恶意程序,它会使用加密算法加密受害者电脑内的重要文件,向受害者勒索赎金,除非受害者交出勒索赎金,否则加密文件无法被恢复,而新的“想哭勒索蠕虫”尤其致命,它利用了窃取自美国国家安全局的黑客工具EternalBlue(直译:“永恒之蓝”)实现了全球范围内的快速传播,在短时间内造成了巨大损失。360追日团队对“想哭勒索蠕虫”国内首家进行了完全的技术分析,帮助大家深入了解此次攻击!

0x2 抽样分析样本信息

MD5: DB349B97C37D22F5EA1D1841E3C89EB4

文件大小: 3,723,264

影响面:除Windows 10外,所有未打MS-17-010补丁的Windows系统都可能被攻击

功能:   释放加密程序,使用RSA+AES加密算法对电脑文件进行加密勒索,通过MS17-010漏洞实现自身的快速感染和扩散。

0x03 蠕虫的攻击流程

该蠕虫病毒使用了ms17-010漏洞进行了传播,一旦某台电脑中招,相邻的存在漏洞的网络主机都会被其主动攻击,整个网络都可能被感染该蠕虫病毒,受害感染主机数量最终将呈几何级的增长。其完整攻击流程如下

0x04 蠕虫启动逻辑分析

1.蠕虫启动时将连接固定url: http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com

a)如果连接成功,则退出程序

b)连接失败则继续攻击

2.接下来蠕虫开始判断参数个数,小于2时,进入安装流程;大于等于2时,进入服务流程.

a)安装流程

i.创建服务,服务名称: mssecsvc2.0

参数为当前程序路径 –m security

ii.释放并启动exe程序

移动当前 C:\WINDOWS\tasksche.exe到 C:\WINDOWS\qeriuwjhrf

释放自身的1831资源(MD5: 84C82835A5D21BBCF75A61706D8AB549),到C:\WINDOWS\tasksche.exe,并以 /i参数启动

b)服务流程

i.服务函数中执行感染功能,执行完毕后等待24小时退出.

ii.感染功能

初始化网络和加密库,初始化payload dll内存.

a)Payload包含2个版本,x86和x64

b)功能为释放资源到c:\windows\mssecsvc.exe并执行

启动线程,在循环中向局域网的随机ip发送SMB漏洞利用代码

0x05 蠕虫利用漏洞确认

通过对其中的发送的SMB包进行分析,我们发现其使用漏洞攻击代码和https://github.com/rapid7/metasploit-framework 近乎一致,为Eternalblue工具使用的攻击包。

蠕虫 SMB数据包:

Eternalblue工具使用的MS17-010 SMB数据包:

https://github.com/RiskSense-Ops/MS17-010/tree/master/exploits/eternalblue/orig_shellcode

文件内容在DB349B97C37D22F5EA1D1841E3C89EB4中出现

orig_shellcode文件内容:

DB349B97C37D22F5EA1D1841E3C89EB4 文件:

0x06 蠕虫释放文件分析

蠕虫成功启动后将开始释放文件,流程如下:

释放文件与功能列表,如下:

0x07 关键勒索加密过程分析

蠕虫会释放一个加密模块到内存,直接在内存加载该DLL。DLL导出一个函数TaskStart用于启动整个加密的流程。程序动态获取了文件系统和加密相关的API函数,以此来躲避静态查杀。

整个加密过程采用RSA+AES的方式完成,其中RSA加密过程使用了微软的CryptAPI,AES代码静态编译到dll。加密流程如下图所示。

使用的密钥概述:

目前加密的文件后缀名列表:

值得注意的是,在加密过程中,程序会随机选取一部分文件使用内置的RSA公钥来进行加密,这里的目的是解密程序提供的免费解密部分文件功能。

能免费解密的文件路径在文件f.wnry中

0x08 蠕虫赎金解密过程分析

首先,解密程序通过释放的taskhsvc.exe向服务器查询付款信息,若用户已经支付过,则将eky文件发送给作者,作者解密后获得dky文件,这就是解密之后的Key

解密流程与加密流程相反,解密程序将从服务器获取的dky文件中导入Key

可以看到,当不存在dky文件名的时候,使用的是内置的Key,此时是用来解密免费解密的文件使用的。

之后解密程序从文件头读取加密的数据,使用导入的Key调用函数CryptDecrypt解密,解密出的数据作为AES的Key再次解密得到原文件。

总结

该蠕虫在勒索类病毒中全球首例使用了远程高危漏洞进行自我传播复制,危害不小于冲击波和震荡波蠕虫,并且该敲诈者在文件加密方面的编程较为规范,流程符合密码学标准,因此在作者不公开私钥的情况下,很难通过其他手段对勒索文件进行解密,同时微软已对停止安全更新的xp和2003操作系统紧急发布了漏洞补丁,请大家通过更新MS17-010补丁来及时防御蠕虫攻击。

本文来自合作伙伴“阿里聚安全”,发表于2017年05月15日 10:45.

WanaCrypt0r勒索蠕虫完全分析报告相关推荐

  1. 权威报告】WanaCrypt0r勒索蠕虫完全分析报告

    0x1 前言 360互联网安全中心近日发现全球多个国家和地区的机构及个人电脑遭受到了一款新型勒索软件攻击,并于5月12日国内率先发布紧急预警,外媒和多家安全公司将该病毒命名为"WanaCry ...

  2. Morto蠕虫病毒分析报告

    文章目录 样本信息 病毒现场复现 分析过程 Loader部分 Payload部分 病毒查杀 样本信息 名称:cache.txt SHA1:a5f83e3baae0df2cdcf5b7e9e862705 ...

  3. 2017勒索软件威胁形势分析报告

    关注「实验楼」,每天分享一个项目教程 2017年1-11月,360互联网安全中心共截获电脑端新增勒索软件变种183种,新增控制域名238个.全国至少有472.5多万台用户电脑遭到了勒索软件攻击,平均每 ...

  4. WannaCrypt0r分析报告

      病毒分析报告   样本名 WannaCrypt0r 版本 原版 时间 2018-05-08 平台 Windows 7-32位   目录 1.样本概况... 3 1.1 样本信息... 3 1.2 ...

  5. RiskSense Spotlight:全球知名开源软件漏洞分析报告

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 RiskSense 公司最近发布了关于全球当前知名开源软件 (OSS) 的漏洞分析报告.奇安信代码卫士团队编译如下.   摘要 开源软 ...

  6. 2022 医疗卫生行业应急响应形势分析报告 脱敏板

    声明 本文是学习2022医疗卫生行业网络安全分析报告. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 医疗卫生行业应急响应形势分析 2021年1-12月,奇安信集团安服团队共参 ...

  7. [译] APT分析报告:08.漏洞利用图谱–通过查找作者的指纹来寻找漏洞

    这是作者新开的一个专栏,主要翻译国外知名安全厂商的APT报告,了解它们的安全技术,学习它们溯源APT组织和恶意代码分析的方法,希望对您有所帮助.当然,由于作者英语有限,会借助机翻进行校验,还请包涵!前 ...

  8. [译] APT分析报告:04.Kraken - 新型无文件APT攻击利用Windows错误报告服务逃避检测

    这是作者新开的一个专栏,主要翻译国外知名的安全厂商APT报告文章,了解它们的安全技术,学习它们溯源APT组织的方法,希望对您有所帮助.前文分享了APT组织Fin7 / Carbanak的Tirion恶 ...

  9. [译] APT分析报告:03.OpBlueRaven揭露APT组织Fin7/Carbanak(上)Tirion恶意软件

    这是作者新开的一个专栏,主要翻译国外知名的安全厂商APT报告文章,了解它们的安全技术,学习它们溯源APT组织的方法,希望对您有所帮助.前文分享了钓鱼邮件网址混淆URL逃避检测,这篇文章将介绍APT组织 ...

最新文章

  1. 200行代码实现一个滑动验证码
  2. 基于MEGA8的声音CLICK模块
  3. python怎么读取文件-Python中怎么读写文件
  4. IIS中“使用 XSL 样式表无法查看 XML 输入”问题的解决
  5. linux 查看文件哈希码,使用linux的sha1sum命令查看效验文件哈希值命令
  6. xcode扩展_如何将Xcode插件转换为Xcode扩展名
  7. Java之IO操作总结
  8. Mybatis-Plus 使用自定义注入器后,查询条件中不再添加逻辑删除字段限定条件
  9. tabpanel中autoload方法传递参数
  10. php csv文件内容加粗,PHP强化之10 - CSV文件处理
  11. SpringMVC+Spring3+Hibernate4
  12. VB.net中的sender和e
  13. c++——block_type_is_valid怎么解决
  14. python考勤统计_公司HR统计考勤用这个函数公式,快速、准确完成,再也不加班了...
  15. 阿里云服务器ECS不能通过浏览器(外网)访问的解决办法
  16. Python爬取微博短视频
  17. 2021.8-机器学习地震信号去噪和到时识取环境配置
  18. 【正点原子Linux连载】第三十五章 Linux内核顶层Makefile详解 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
  19. Java面试知识学习(持续更新)
  20. K-means聚类、KNN算法原理

热门文章

  1. qt槽函数如何传递多个参数_Qt:在发出信号后尝试将多个引用传递给槽函数
  2. 计算机里的游戏可以找回吗,找回电脑游戏作文
  3. shiro原理_java:shiro高级篇——1
  4. c打开指定路径文件_C++ 读取指定路径下所有的文件 (C++ get the list of files in a directory)...
  5. 计算机视觉,图像处理 经典代码paper整理(很全很强大!)
  6. 【通知】深度学习之人脸图像算法重印,欢迎读者支持!
  7. 全球及中国汽车空调冷凝器行业发展前景规模及投资战略决策报告2022-2027年
  8. 中国增材制造市场投资前景与发展投资战略调研报告2022-2028年版
  9. openresty开发系列1--网关API架构及选型
  10. 探偵ガリレオーくさる3