zoukankan      html  css  js  c++  java
  • 转载自360:【权威报告】WanaCrypt0r勒索蠕虫完全分析报告

    http://p2.qhimg.com/t01fcc9286aadf1697c.png

    日期:2017-5-13

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

    http://p3.qhimg.com/t014cb9bf45dc7e72f5.png

    0x04 蠕虫启动逻辑分析


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

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

    b)连接失败则继续攻击

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

    a)安装流程

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

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

    ii.释放并启动exe程序

    移动当前 C:WINDOWS asksche.exe到 C:WINDOWSqeriuwjhrf

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

    b)服务流程

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

    ii.感染功能

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

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

    http://p1.qhimg.com/t010b90441b12bf56b4.png

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

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

    http://p9.qhimg.com/t010f09833888a9bff8.png

    http://p9.qhimg.com/t01fc4b01884dc242b5.png

    0x05 蠕虫利用漏洞确认


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

    http://p9.qhimg.com/t0188ec47fa2c8a63b4.png

    蠕虫 SMB数据包:

    http://p5.qhimg.com/t01e09be78570a34ef6.png

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

    http://p9.qhimg.com/t018a78d4c24851f1a1.png

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

    文件内容在DB349B97C37D22F5EA1D1841E3C89EB4中出现

    orig_shellcode文件内容: 

    http://p2.qhimg.com/t01b39656492af49642.png

    DB349B97C37D22F5EA1D1841E3C89EB4 文件:

    http://p0.qhimg.com/t018d9ff602e2c370c4.png

    0x06 蠕虫释放文件分析


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

    http://p9.qhimg.com/t016781e0de0396e064.png

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

    http://p5.qhimg.com/t01a4b7f38a1e4bf7c4.png

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


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

    http://p3.qhimg.com/t010fda182294ddeaef.png

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

    http://p3.qhimg.com/t017fafef843edb4b40.png

    使用的密钥概述:

    http://p6.qhimg.com/t0111abad4fd8d0e451.png

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

    http://p6.qhimg.com/t013f951b9d5fbf1277.png

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

    http://p7.qhimg.com/t0119c63deb41554799.png

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

    http://p4.qhimg.com/t01ac6a1a7b87200404.png

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


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

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

    http://p1.qhimg.com/t01a00c223866d0fcdc.png

    http://p4.qhimg.com/t01b66bc2b2fbca981a.png

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

    http://p3.qhimg.com/t01d7dae63160c0eb2f.png

    http://p5.qhimg.com/t01b4bbd7db8b564848.png

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

    http://p1.qhimg.com/t018ccdc207dbab17b1.png

    总结


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

  • 相关阅读:
    Ubuntu20.04更换软件源
    使用kubeadm安装k8s1.19版本之系统基础环境配置&k8s集群初始化(二)
    k8s如何删除处于terminating状态的ns资源
    k8s如何强制删除pod&pv&pvc和ns&namespace方法
    C语言中的有符号数和无符号整形数转换
    互联网-架构演进
    结合redis使token失效
    有一种爱叫做放手
    js 读取上传的json文件内容
    使用spark-md5获取文件的MD5值
  • 原文地址:https://www.cnblogs.com/cneseu/p/6852734.html
Copyright © 2011-2022 走看看