freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

【安全研究】关于挖矿蠕虫Wannamine2.0的研究分析
2018-07-02 15:51:59

Wannamine2.0是利用与 NSA 相关的 EternalBlue (“ 永恒之蓝 ” )漏洞进行传播的加密挖矿蠕虫。尽管该漏洞已曝光许久,但国内仍然有不少公司和机构感染并蒙受损失,并且这类蠕虫病毒不断有新的变种出现,因此我们对该类型的安全问题也极为重视,并进行了追踪研究。

鉴于win32平台的病毒样本研究已有不少文章,因此我们这次分析的是x64系统的版本。


木马概述

Wannamine2.0是wannamine家族的变种。该家族特征是使用NSA泄露的eternalblue漏洞利用工具包+扫描传播模块+挖矿木马,一切未打ms17-010漏洞补丁的机器都将是其目标,对于网络中存在ms17-010漏洞的机器而言,它是不可忽视的安全威胁。

该挖矿木马为了躲避杀毒软件查杀,特地将主控程序加密并放到资源EnrollCertXaml.dll中。样本通过MS17-010(永恒之蓝)漏洞进行传播,其漏洞利用模块是使用的NSA工具包eternalblue和doublepuls,即2017年影子经纪人所公开的NSA工具包,定时和C&C进行连接接受命令和更新模块,主要目的为挖掘门罗币。

下面是该木马传播流程示意图:

1.png

这次只详细分析Spoolsv.exe(64位),即

c:\\windows\\SpeechsTracing\\Spoolsv.exe

也许在以后的文章中我们会对其余部分进行更详细的分析。

功能:扫描同网段存活的445端口,并启动两个程序进行攻击。

① 前期准备阶段

② 攻击阶段一:启动svchost.exe > stage1.txt(c:\\windows\\SpeechsTracing\\Microsoft\\svchost.exe )

③ 攻击阶段二:启动spoolsv.exe >stage2.txt(c:\\windows\\SpeechsTracing\\Microsoft\\spoolsv.exe )

详细分析

进入Main函数后,创建互斥量{F5175396-40C2-0218-278D6EE}

2.png3.png

此处诸多的CreateThread便是主要的恶意行为了。


1、sub_1400067B0线程

功能:用来查找C:\\windows\\System32\\EnrollCertXaml.dll,若不存在则尝试打开文件夹c:\\windows\\SpeechsTracing\\及其子文件夹

c:\\windows\\SpeechsTracing\\Microsoft,然后退出线程。

4.png

若存在,则通过getfilesize获取C:\\windows\\System32\\EnrollCertXaml.dll文件大小,接着分配文件大小内存,读取文件到内存。

5.png

接着是释放一系列的子病毒的过程。

首先从C:\Windows\SpeechsTracing\Crypt解压出NSA工具包

6.png7.png

释放完毕后,删除C:\Windows\SpeechsTracing\Crypt。随后拼接字符串,找到配置文件svchost.xml与spoolsv.xml,随后将其读入内存。

8.png

接着就是查找C:\Windows\SpeechsTracing\Crypt,若C:\Windows\SpeechsTracing\Crypt存在则释放x64.dll和x86.dll。

攻击阶段一

通过createprocess创建cmd.exe /c %s/svchost.exe > stage1.txt,若存在则将输出重定向到文本文件。作为日志记录。

读取配置信息

9.png10.png

接着CreateProcessA启动进程

11.png

接着由c:\\windows\\SpeechsTracing\\Microsoft\\svchost.exe启动攻击的第一个阶段

12.png

Svchost.exe写入回显。

攻击阶段二

根据回显判断是否成功,判断目标靶机的x86/x64架构,若成功则决定启动第二阶段的payload x86/x64.dll对目标进行感染。由于本文暂不分析payload这部分,暂时留白,请关注后续文章。

13.png


2、sub_14000C8C0线程

功能:连接各个IP,判断是否存活,存活则交给第一个线程进行攻击。如果发现局域网内开放的445端口,就会将相应的IP地址和端口号写入到EternalBlue攻击程序svchost.exe的配置文件svchost.xml中。

函数14000C740进行连接。Ip是从sub_1400B550线程所提供的信息。

14.png15.png

线程LOCK指令加锁,最高40个线程并发socket连接

16.png


3、sub_14000B550线程

功能:用来获取本机名和同网段IP,通过共享内存将信息交给sub_14000C8C0线程。

17.png

判断是否为127开头,是则线程睡眠。不是则继续

18.png

加锁然后循环写入ip交给第二个线程进行连接判断存活IP。

19.png


4、sub_140009C90线程

功能:连接C2域名,下载内容

20.png

拼接字符串得到C2域名,访问其task.attendecr.com:80/tasks目录获取信息。如果有内容会下载下来。

21.png22.png


5、sub_140007F10线程

功能:第二次连接C2 task.attendecr.com/status目录或task.attendecr.com:8080端口的/error、/log目录。

23.png


线程协同

各线程间使用临界区和自定义的flag对内存进行访问控制,线程之间协同完成攻击。

24.png25.png

线程间关系

26.png

分析总结

如文章开头所述,未打ms17-010漏洞补丁的设备都将面临这类挖矿蠕虫的安全威胁,换言之,打过该补丁则不会面临此类病毒的威胁。从漏洞公开的2017年3月份到如今2018年6月,已经过去整整十五个月,仍然有各行各业的企业、机构因为ms17-010漏洞不断中招。这显然不是缺乏防御的技术手段,而是企业自身的安全建设和制度存在问题,对安全问题不够重视所致。

从细处着眼,无非是这些原因

1、企业批量使用ghost镜像,但运维人员并不会时常关注并更新相关ghost镜像补丁

2、使用msdn,i itell you站的纯净版镜像,站内所有提供下载的镜像都是很老的版本且并不提供补丁,需要自己去打补丁

3、国内盗版系统盛行,基本不连接微软的补丁更新服务器进行补丁更新

4.手动更新繁琐,缺乏人手专门推进补丁更新的工作,也没有相应的制度来确保补丁的更新

5.许多企业缺乏漏洞管理与运营的平台,缺乏对自己网络内存在漏洞的机器的定位与统计,很容易存在漏网之鱼

6.员工网络安全意识缺乏,企业更是缺乏对员工网络安全意识的培训

解决的方案就蕴含在问题之中,我们真诚地希望企业能够重视起安全问题,不再心存侥幸,安全虽然要付出不小的成本,但它更是一项投资,而不是纯粹的“烧钱”事业。

本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者