• 本文作者: 漏洞应急响应中心
  • |
  • 2017年5月24日
  • |
  • 样本分析
  • |

EternalRocks(永恒之石)蠕虫样本深入分析

阿尔法实验室 李喆 李闪 陈思远

 

一、背景介绍

近日自勒索蠕虫WannaCry之后又有一种新的蠕虫EternalRocks(永恒之石)通过SMB进行了攻击传播,同样是利用了NSA工具,EternalRocks利用了ETERNALBLUE、ETERNALCHAMPION、ETERNALROMANCE、以及ETERNALSYNERGY四个NSA的SMB漏洞利用工具,同时具备了漏洞扫描工具SMBTOUCH和ARCHITOUCH ,还有一个后门感染工具DOUBLEPULSAR。

天融信阿尔法实验室经过样本分析判断,虽然蠕虫永恒之石不具备主动恶意破坏功能,但是在会在感染设备上留后门进行贮存,同时相比之前的勒索蠕虫,永恒之石蠕虫利用的技术及方式更加复杂高级,犹如一颗定时炸弹,后续带来不确定性的危害更高。

由于该蠕虫是同样利用了微软的MS17-010漏洞,所以打好补丁等措施是十分必要的。

二、样本分析

2.1执行过程

初始化安装->安装tor浏览器搭建隧道->和c&c服务器通信->设置计划任务->给执行文件添加防火墙白名单->释放nsa工具开始攻击

 

2.2 样本分类

第一类是:集成版 编译时间-2017年5月3日22:17:53

集成版是c#程序,自己已经包含了所需的.net组件,包括释放的资源都是自己处理好的,只是在更新的时候会和c&c服务器通信下载所需资源。

 

第二类是:下载者版 编译时间-2017年5月11日22:27:09

下载者版是vb程序,下载.net组件(TaskScheduler.zip,SharpZLib.zip)后续会详细分析

2.3安装目录

c:\Program Files\Microsoft Updates\

安装后的文件描述:

c:\Program Files\Microsoft Updates\SharpZLib.zip  下载者版:下载的.net库解压缩用

c:\Program Files\Microsoft Updates\svchost.exe 下载tor,加压,通信,计划任务,白名单

c:\Program Files\Microsoft Updates\installed.fgh 安装锁-是否安装过

c:\Program Files\Microsoft Updates\ICSharpCode.SharpZipLib.dll # 下载者版:解压后需要加载的动态库,解压缩用

c:\Program Files\Microsoft Updates\Microsoft.Win32.TaskScheduler.dll下载者版:解压后需要加载的动态库,创建计划任务用

c:\Program Files\Microsoft Updates\SharpZLib\

c:\Program Files\Microsoft Updates\temp\tor.zip 下载的tor浏览器的重命名zip文件

c:\Program Files\Microsoft Updates\temp\Tor\

c:\Program Files\Microsoft Updates\required.glo 日志

c:\Program Files\Microsoft Updates\taskhost.exe 释放nsa工具执行攻击

c:\Program Files\Microsoft Updates\TaskScheduler.zip下载者版下载的.net库

c:\Program Files\Microsoft Updates\TaskScheduler\

c:\Program Files\Microsoft Updates\torunzip.exe  集成版用来解压缩tor浏览器zip文件

c:\Program Files\Microsoft Updates\shadowbrokers.zip NSA利用工具包

 

C&C (ubgdgno5eswkhmpy.onion)  暗网服务器,用来更新下载程序

 

2.4 集成者版样本分析

我们先拿集成版来介绍下整体流程,因为c#写的,伪代码看起来很清晰

1

1)Svchost.Program 样本开始启用了互斥器,设置了异常处理,日志等处理,接下来调用了Installer的安装过程

2

2)先看看安装的初始化的目录安装锁installed.fgh文件,如果文件存在,代表已经安装过,就进行更新安装,否则初始化安装

3

 

全局变量中的安装目录,还有C&C服务器地址。

4

可以看到安装的目录,蠕虫版本,还有C&C服务器。

5

开始判断了下安装锁是否存在,同时进行svchhost安装,接下来看看安装过程

 

3)首先释放资源svchost.exe,taskhost.exe,tor.exe

6

7

 

4)下面这个是下载32位tor浏览器,用torunzip.exe解压,安装到了/Tor目录,并和tor搭建隧道,socks代理地址为127.0.0.1:9050。

9

5)设置计划任务,并添加白名单防火墙放行。

10

计划任务有启动触发,登陆触发和每日触发三种

11

可以看到TaskScheDuler类已经集成好了

12

2.5 下载者版样本分析

下载者版主要做了下载.net程序,并释放执行schhost.exe,因为schhost.exe在函数命名做了混淆,我们这里先分析安装程序。

该样本的编写语言是微软的Visual Basic,其主要行为是提取资源文件中的子程序放入系统目录并执行。下面列一下具体执行流程:

1)创建一个目录,之后所有释放以及下载的文件均存放于此.(目录名固定为:c:\Program Files\Microsoft Updates)

13

2)创建互斥体防止重复运行。(互斥体的名称:Global\20b70e57-1c2e-4de9-99e5-69f369006912)

14

3)通过注册表项检查系统是否安装.net运行库.若未安装.net运行库,则根据系统位长主动从微软下载对应系统位长的运行库。(注册表项: SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727 ) (下载地址:         http://download.microsoft.com/download/a/3/f/a3f1bf98-18f3-4036-9b68-8e6de530ce0a/NetFx64.exe/ http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe

15

16

4)该程序同时还从网络下载了一份操作windows 计划任务的库,具体库下载地址为:http://api.nuget.org/packages/taskscheduler.2.5.23.nupkg。 由于该库是zip压缩文档, 样本同时还从网上下载一份解压缩的库, 库下载地址:http://api.nuget.org/packages/sharpziplib.0.86.0.nupkg

17

5)在.net运行库和 计划任务操作库下载完毕之后, 该样本从自身资源文件中提取了一个名为svchosh的资源文件,经分析该文件为.net编译的可执行程序,在程序提取成功之后样本立即通过之前下载的.net运行库执行了该程序。

18

6)至此该样本主要过程以及完毕,后续会对taskhost样本释放NSA工具并执行传播的过程进行分析。

 

三、通用防御方案

1、及时更新操作系统补丁,安装MS17-010补丁。

2、关闭445等端口(其他关联端口如: 135、137、139)的外部网络访问权限,在服务器上关闭不必要的上述服务端口

3、加强对445等端口(其他关联端口如: 135、137、139)的内部网络区域访问审计,及时发现非授权行为或潜在的攻击行为

4、定期在不同的存储介质上备份信息系统业务和个人数据

5、 windows停止更新的系统补丁,xp补丁已经提供,请尽快下载打好补丁https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/

6、开启个人电脑防火墙

 

 

 

Written by 漏洞应急响应中心