GreyEnergy:BlackEnergy的继任者袭击能源行业企业

ESET专家对以前从未研究过的复杂恶意软件进行了分析,旨在针对中欧和东欧的关键基础设施企业进行有针对性的攻击。 该程序名为GreyEnergy,在概念上与BlackEnergy相似,BlackEnergy是一种恶意软件,该恶意软件于201512月用于攻击乌克兰能源公司。 此外,还有一些链接表明GreyEnergy运营商与TeleBots小组合作进行了许多破坏性攻击。


该报告提供了有关GreyEnergy集团近年来活动的信息。 请注意,我们不会将攻击和恶意软件开发归因于任何状态。 根据我们的术语,“ ART-group”是一组技术指标。

引言


2015年12月,BlackEnergy小组使用BlackEnergy和KillDisk系列的恶意软件攻击了乌克兰的能源综合体。 这是BlackEnergy软件在真实条件下的最后一次已知事件。 这次攻击后,该小组至少转变为两个小组:TeleBots和GreyEnergy。

TeleBots专门通过网络计算机攻击(CNA)进行网络破坏。 该组织统计了破坏性攻击,包括:


ESET专家多年来一直在监控GreyEnergy集团的活动。 该组使用唯一的同名恶意软件家族。 Malvari体系结构类似于BlackEnergy系列。

除了程序的概念相似性外,还有其他链接表明GreyEnergy运营商与TeleBots集团紧密合作。 特别是在2016年12月,GreyEnergy小组发射了一种类似NotPetya的蠕虫,该程序的更高级版本于2017年6月在TeleBots攻击中出现。

值得注意的是,GreyEnergy和TeleBots具有不同的目标-GreyEnergy主要对关键基础设施企业拥有的工业网络感兴趣,与TeleBots不同,GreyEnergy不仅限于乌克兰的对象。

2015年底,我们首先注意到针对波兰一家能源公司的GreyEnergy恶意软件。 但是,GreyEnergy也攻击乌克兰目标。 该集团专注于能源部门,交通基础设施和其他高级设施。 至少一个BlackEnergy目标组织已受到GreyEnergy的攻击。 GreyEnergy的最后一次使用记录于2018年中期。

恶意程序GreyEnergy具有模块化体系结构;但是,与Industroyer不同的是,我们没有看到任何可能影响工业控制系统(ICS)的模块。 但是,GreyEnergy操作员至少在磁盘上部署了一个毒蛇,以破坏工作流程并隐藏网络攻击的痕迹。

在我们的研究中发现的最有趣的细节之一是,其中的GreyEnergy样本已使用有效的数字证书签名。 该证书很可能是从台湾ICS设备制造商那里盗取的。 在这方面,GreyEnergy组遵循了Stuxnet作者的脚步。

GreyEnergy:工作方法


在观察GreyEnergy组的活动期间,我们主要看到了两个初始感染媒介。 第一个涉及在受害者自己的服务器上具有Web服务的组织。 如果公共Web服务在连接到内部网络的服务器上运行,则攻击者将尝试对其进行渗透以侵入网络。 第二个媒介是针对带有恶意电子邮件附件的网络钓鱼。

恶意文档会转储GreyEnergy mini-第一阶段的轻量级后门,不需要管理特权。 使用GreyEnergy mini危害计算机后,攻击者将创建网络映射并收集密码以获得域管理员权限。 利用这些特权,攻击者可以控制整个网络。 GreyEnergy组使用相当标准的工具来完成以下任务:Nmap和Mimikatz。

在对网络进行初步探索之后,攻击者可以部署旗舰后门-主要的GreyEnergy。 恶意软件需要管理员权限,这些权限必须在主GreyEnergy的部署阶段之前获得。 根据我们的研究,GreyEnergy运营商主要在两种类型的端点上安装主后门:运行时间长的服务器和用于管理ICS环境的工作站。

为了掩盖与C&C服务器的通信,攻击者可以在受到破坏的网络的内部服务器上安装其他软件,以便每个服务器充当代理。 这样的代理C&C将请求从网络中受感染的节点重定向到Internet上的外部C&C服务器。 几台网络计算机与一台内部服务器的“通信”看起来不像与一台外部服务器的“通信”。 该方法还可以用于管理受感染网络不同部分中的恶意软件。 在Duqu 2.0 ART活动中观察到使用内部服务器作为proxy-C&C的类似方法。

如果受感染的组织具有连接到内部网络的公共Web服务器,则攻击者可以在这些服务器上部署“备份”后门。 如果发现并删除了主要后门,它们将用于恢复对网络的访问。

所有与GreyEnergy恶意软件相关的C&C服务器都使用Tor。


图1. GreyEnergy组使用的两种网络危害方案的简化图

Greyenergy mini


GreyEnergy mini是第一阶段的轻量级后门,攻击者使用它来评估受感染的计算机,并在网络上提供初始的桥头堡。 通常,GreyEnergy mini是使用网络钓鱼电子邮件中分发的恶意文档下载的。 GreyEnergy mini也称为FELIXROOT

2017年9月,ESET发现了一个包含恶意宏的乌克兰Word Microsoft文档。 诱饵文件模仿一个交互形式,以鼓励受害者打开宏并将其填写。


图2. GreyEnergy在2017年9月使用的诱饵文档

打开宏后,其代码将尝试从远程服务器下载并执行二进制文件。


图3.恶意VBA宏(ESET添加的注释)

有趣的是,指向外部图像的链接嵌入在文档主体中。 打开文档后,他尝试上传该图像-攻击者以此方式得知文件已打开。 该方法使您可以跟踪哪些目标包含恶意宏以及哪些目标刚刚打开了文档。


图4.链接到恶意文档中的外部“跟踪器”图形

下载的可执行文件是GreyEnergy迷你滴管。 删除程序使用随机生成的GUID作为名称,将恶意DLL写入%APPDATA%文件夹。 此外, .LNK程序在“开始”菜单的“ 文件夹中创建一个.LNK文件,该文件的文件名为空,该条目具有执行rundll32.exe的条目,并以DLL的路径作为命令行的参数。 这是GreyEnergy迷你持久性方法。

刷新的DLL是GreyEnergy mini的主要模块。 它被伪装成与Microsoft Windows相关的合法文件。


图5. GreyEnergy迷你后门DLL伪装成合法的Windows DLL

为了评估受感染的计算机,恶意软件会收集尽可能多的信息,并将数据发送给C&C。 使用WMI查询语言(WQL)和Windows注册表查询来收集数据。 收集以下数据:

  • 电脑名称
  • 操作系统版本,包括Service Pack版本
  • 默认语言
  • 用户名
  • 当前Windows用户权限,提升权限,UAC级别
  • 代理设置
  • 计算机信息(制造商,型号,系统类型)
  • 时区
  • 安装的安全软件(防病毒和防火墙)
  • 用户和域列表
  • 从注册表获得的已安装程序列表
  • 网络信息(IP地址,DHCP服务器等)
  • 正在运行的进程列表

恶意软件从C&C服务器接收命令。 提供了对以下命令的支持(以下是命令ID及其含义):

  1. 收集计算机信息
  2. 从临时文件文件夹下载并运行可执行文件
  3. 运行shell命令
  4. 从受感染的计算机中删除自己
  5. 从临时文件文件夹下载并运行.BAT文件
  6. 将文件下载到本地磁盘
  7. 上传档案

JSON格式的恶意软件配置嵌入到二进制文件中,并使用自定义算法进行加密。 加密的数据在开头包含四个字节。 这些字节用作XOR操作的密钥,以解密其余数据。 恶意软件使用的大多数字符串都使用此算法加密。


图6.解密前后的内置GreyEnergy mini配置

我们看到的所有GreyEnergy mini配置都包括用作C&C的HTTPS和HTTP服务器。 这使攻击者可以在网络或防火墙配置不支持HTTPS连接的目标上切换到HTTP。

GreyEnergy mini在代码方面与GreyEnergy家族的其他恶意程序相似。 除此之外,GreyEnergy mini和主GreyEnergy后门都使用相同的C&C服务器。

主后门GreyEnergy


GreyEnergy是该网络集团的主要后门。 此处分析的恶意软件样本使用C语言编写,并使用Visual Studio进行编译,但不使用C运行时库(CRT)的标准功能。 打包的样本可能包含伪造的PE时间戳记,但在拆包后,时间戳记将重置(1970年1月1日)。


图7.打开包装的GreyEnergy样品的PE时间戳

有趣的是,分析出的首批GreyEnergy样本之一是由研华拥有的证书签署的。 这是一家台湾公司,制造用于工业和物联网的设备。 由于我们发现相同的证书曾用于对研华的干净,非恶意软件进行签名,因此我们认为该软件已被盗。 请注意,检测到的样本没有数字签名-这意味着当证书过期时,签名变得无效。


图8.用于签署GreyEnergy恶意软件样本的研华证书

证书数据如下:

Serial Number: 15:f4:8f:98:c5:79:41:00:6f:4c:9a:63:9b:f3:c1:cc
Validity:
Not Before: Feb 10 00:00:00 2014 GMT
Not After : Feb 26 23:59:59 2017 GMT
SHA1 Fingerprint=97:53:AD:54:DF:6B:D6:73:E0:6C:00:36:3D:34:6A:06:00:7A:0A:9B


我们注意到,GreyEnergy通常以两种模式部署:仅在内存中并且具有DLL服务的持久性。 如果攻击者确定安装不需要采取特殊措施来确保稳定性(例如,在正常运行时间较长的服务器上),则使用第一种模式。 第二种模式是恶意软件必须承受任何重启。

仅记忆模式


对于这种模式,攻击者将DLL文件放置在特定的文件夹中,然后使用Windows rundll32.exe应用程序执行该文件。 我们观察到攻击者在本地使用Windows Sysinternals PsExec工具以可能的最高特权( NT AUTHORITY\SYSTEM )执行rundll32.exe

下面是GreyEnergy的初始执行阶段仅在内存中使用的命令行:

cmd.exe /c "C:\Windows\System32\rundll32.exe "C:\Sun\Thumbs.db",#1 CAIAABBmAAAgAAAA8GFGvkHVGDtGRqcl3Z3nYJ9aXCm7TVZX8klEdjacOSU="

在此的示例Thumbs.db是一个GreyEnergy DLL文件, rundll32.exe进程从中调用具有第一个序列号的函数。 给定的命令行示例包含使用base64加密的字节序列,该序列随后用作解密小存根的AES-256密钥。 之后,“存根”中的代码将启动svchost.exe进程的新副本,并注入GreyEnergy有效负载。 在最后阶段, rundll32.exe GreyEnergy进程结束,保护了恶意DLL文件免于从磁盘上删除。 因此,GreyEnergy有效负载将仅存在于svchost.exe进程内存中。

作者极有可能打算以这样一种方式开发恶意软件:没有命令行上的密钥,就不可能解密“存根”和有效负载。


图9. GreyEnergy DLL内部名称为仅内存模式

如果使用“仅在内存中”模式,则完成相应的svchost.exe进程或重新启动计算机就足以删除GreyEnergy。

DLL服务持久性


要使用此方法,操作员将部署GreyEnergy吸管,该吸管必须以管理员权限运行。

ServiceDLL注册表项允许您在svchost.exe进程的上下文中启动服务DLL模块。 Microsoft未记录的功能; 但是,它被包括Conficker蠕虫在内的许多恶意软件家族所使用。

为了确保DLL服务的持久性,放置程序将搜索现有服务并添加新的ServiceDLL注册表项。 由于该方法可能导致系统故障,因此删除程序首先执行一系列检查,以选择满足多项要求的服务。

首先,放置程序通过运行以下WQL查询来查找当前已停止的所有Windows服务:

Select * from Win32_Service where PathName Like '%%svchost%%' and State = 'Stopped'

可以将以下条件添加到请求中:

  • and StartMode = 'Disabled'and StartMode = 'Manual'
  • and ServiceType = 'Own Process'and ServiceType = 'Share Process'

接下来,滴管尝试选择所需的服务,检查结果并跳过满足以下条件的结果:

  • 服务名称包含winmgmt (Windows管理规范)或BITS (背景智能传输服务)
  • 放置程序无权访问服务或注册表项
  • DependOnService注册表DependOnService不为空
  • ServiceDllImagePath注册表值不存在
  • 服务命令行包含以下单词之一:
  • DcomLaunchLocalServiceNetworkRestrictedLocalServiceNoNetworkLocalServicePeerNetLocalSystemNetworkRestrictedNetworkServiceNetworkRestrictedsecsvcswcssvc

在检测到满足这些条件的服务后,恶意软件程序会将DLL文件转储到Windows system32目录中,并写入ServiceDLL注册表项。 DLL名称包含四个随机生成的字符,并且svc.dll包含svc.dllsrv.dll 。 此外,删除程序通过从现有的user32.dll文件中复制文件的时间元数据来伪造该文件。

GreyEnergy滴管的最新版本支持32位和64位操作系统。


图10.通过DLL服务持久性方法部署的DLL GreyEnergy DLL

Dropper使用一种有趣的方法将恶意DLL伪装为合法文件。 特别是,删除程序复制VERSIONINFO资源,该资源包含来自所涉及Windows服务的可执行文件的详细描述,并将此数据写入恶意DLL。 为此,使用Windows API函数BeginUpdateResource / UpdateResource / EndUpdateResource 。 最新版本未从API调用这些函数; 它们的代码在恶意程序本身中实现,以避免在没有伪造的VERSIONINFO资源的情况下将DLL文件刷新到磁盘。 据推测,这避免了对某些安全产品的检测。 同一滴管可以在不同计算机上创建带有不同描述的恶意DLL文件。 以这种方式扩展的每个模式都将具有唯一的哈希。

如果系统上已经存在恶意软件,则删除程序可以使用命名管道对其进行更新。

在最后阶段,删除程序通过用零覆盖文件并从磁盘中删除来自动删除。 Dropper还清除了USN杂志 。 通过以下shell命令执行操作:

timeout 2 > nul & fsutil file setzerodata offset=0 length=%DROPPER_FILESIZE% "%DROPPER_PATH%" & timeout 2 & cmd /c del /F /Q "%DROPPER_PATH%" & fsutil usn deletejournal /D %DROPPER_DRIVE%

配置与通讯


操作员选择的持久性模式不会影响恶意程序的功能,这两种方法均保持不变。

恶意软件包含嵌入式配置,该配置使用AES-256算法加密并使用LZNT1压缩。

多组件MIME格式用于嵌入式恶意软件配置。 作者没有为这种格式实现自己的解析器。 而是使用IMimeMessageIMimeBody COM接口。 有趣的是,Microsoft文档建议不要使用这些接口。


图11.示例GreyEnergy内置配置

对于外部配置,使用相同的MIME格式。 但是,该恶意软件以各种方式对外部配置进行加密。 它使用数据保护应用程序编程接口(DPAPI),特别是Windows API函数CryptProtectDataCryptUnprotectData 。 外部配置保存在以下路径C:\ProgramData\Microsoft\Windows\%GUID% ,其中%GUID%是基于C:驱动器卷的序列号随机生成的GUID值。

一些GreyEnergy示例包含配置的有点混淆的版本。 特别是,此类配置的“ Type字段包含字母而不是选项名称。


图12.混淆的GreyEnergy配置的示例

该配置可能包含以下值:



如果未成功尝试的次数超过MaxAttempts的值,并且最后一次成功的连接超过Lifetime天,则恶意程序会将自己从受感染的系统中删除。

与C&C的通信通常是通过HTTPS完成的; 但是,在某些情况下,也会使用HTTP。 HTTP请求中封装了相同的MIME格式。 值得注意的是,数据是使用AES-256和RSA-2048加密的。


图13. Wireshark中捕获的基于HTTP通讯的GreyEnergy

如果使用HTTP,则更容易通过分析网络流量来识别网络上的受感染计算机。 经过研究的恶意软件样本始终使用以下硬编码的用户代理:

  • Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko
  • Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko

为了帮助GreyEnergy操作员识别受感染的计算机,该恶意软件将以下WQL查询的结果发送到C&C服务器:

  • SELECT Caption, Version, CSName, ProductType, CurrentTimeZone, LocalDateTime, OSLanguage, OSType FROM Win32_OperatingSystem
  • SELECT MACAddress, IPAddress, IPSubnet, DHCPEnabled, DHCPServer, DNSDomain FROM Win32_NetworkAdapterConfiguration WHERE MACAddress IS NOT NULL

C&C服务器的响应已加密,但是解密后,它们包含具有以下可能值的相同MIME格式:


GreyEnergy使用其自己的PE文件加载器将其他模块和有效负载加载到内存中。

GreyEnergy模块


像许多复杂的威胁一样,GreyEnergy恶意软件具有模块化架构。 可以通过添加其他模块来扩展其功能。 GreyEnergy模块是一个DLL文件,可通过调用具有第一个序列号的函数来执行。 每个模块,包括主要的GreyEnergy模块,都接受带有各种参数的文本命令。

GreyEnergy操作员不会立即将所有模块发送到受感染的计算机。 通常,恶意程序会下载并执行执行特定任务所需的模块。

我们知道以下GreyEnergy模块的存在:

remoteprocessexec将二进制RE文件注入到远程进程中
info收集系统信息,事件日志,SHA-256恶意软件
file -文件系统操作
sshot -需要截图
keylogger -拦截按键
passwords -收集存储在各种应用程序中的密码
mimikatz用于收集Windows凭据的mimikatz工具
plink用于创建SSH隧道的plink软件
3proxy用于创建代理的3proxy软件

remoteprocessexec模块允许攻击者在现有进程的上下文中执行任意二进制文件。 例如,您可以在Windows资源管理器的上下文中运行Mimikatz或端口扫描程序,而无需将它们放到磁盘上。 要重定向标准输出和进程线程以及进程终止,该模块将拦截五个Windows API函数。


图14. remoteprocessexec捕获的Windows API函数

由于重置的GreyEnergy DLL对于每台受感染的计算机都是唯一的,因此攻击者可以使用信息模块收集SHA-256哈希。 哈希的存在将使您能够跟踪文件是否已上载到VirusTotal等公共Web服务。

反向保护和反犯罪方法


GreyEnergy使用多种方法使分析复杂化。 例如,恶意软件程序会加密字符串。 某些选项使用与GreyEnergy mini相同的算法。

但是,大多数GreyEnergy样本具有不同的加密算法。 特别是,加密Blob中的前四个字节不用作XOR操作的密钥。 相反,它们用于初始化伪随机数生成算法( Mersenne Whirlwind )的初始编号,然后生成的四个字节是密钥。 在释放包含纯文本字符串的内存缓冲区之前,恶意软件会用零覆盖该缓冲区。


图15. GreyEnergy字符串解码功能的反编译代码

恶意程序在加载到内存中的每个二进制PE文件的导入表中拦截DeleteFileADeleteFileW 。 挂钩将这些功能替换为安全删除文件的功能。 特别是,从磁盘删除文件之前,该文件将被零覆盖。 每个有效负载或插件都将使用此功能,而无需在每个模块中实现。


图16.截获DeleteFileA和DeleteFileW的例程的反编译代码

工具


攻击者使用Nmap端口扫描程序作为映射受害者内部网络的主要工具。 此外,我们观察到使用了轻量级的自定义端口扫描程序,而无法使用Nmap。


图17.定制的GreyEnergy组端口扫描程序的控制台输出

攻击者积极使用合法工具(例如SysInternals PsExecWinExe)在受感染网络内部进行水平移动。 WinExe工具是WinExe的开源类似物,可以从Linux设备(例如,受感染的Linux Web服务器)进行控制。

值得注意的是,除了这些工具之外,攻击者还使用PowerShell脚本。

Web服务器后门


如前所述,如果可以从Internet访问这些服务器,则GreyEnergy组将其他后门部署到Web服务器。 我们注意到,攻击者为此目的使用了用PHP编写的后门。 他们使用可公开访问的PHP Web Shell WSO Webshel​​l和c99shell。

攻击者可以在Web服务器上修改现有的PHP脚本或部署新的PHP脚本。 实际的后门PHP代码通常隐藏了多个级别的混淆和加密。


图18. GreyEnergy组PHP后门的混淆代码

最后一级代码受流加密保护。 此密码的密钥生成基于攻击者通过HTTP请求提供的cookie值中的字符串。 每个这样的PHP后门都使用单独的密钥加密。


图19. PHP后门代码解码的最后一个级别

使用混淆技术来防止分析,以及其他网络组织无法使用这种PHP后门。

代理C&C(三聚氰胺)


如前所述,攻击者可以将内部服务器用作C&C代理。

我们发现,攻击者甚至创建了C&C代理链,其中第一个这样的服务器可以将网络流量重定向到下一个,以此类推,直到到达Internet上的最终目的地为止。

攻击者使用各种方法将内部服务器转变为C&C代理。为此,他们可以直接使用GreyEnergy恶意软件,其他第三方软件或脚本。在第一种情况下,操作员可以使用GreyEnergy破坏Windows服务器,并使用3proxy和plink模块将其转变为C&C代理。在监视GreyEnergy活动的过程中,我们观察到内部Linux服务器上安装了以下合法程序:

  • 3proxy小代理
  • Dante SOCKS服务器
  • 腻子链接(Plink)

攻击者可以通过在内部Web服务器上安装自己的脚本来使用内部Web服务器,而不是第三方软件。使用PHP和ASP编程语言。

在我们观察到的所有情况下,都使用与Web服务器后门中相同的混淆类型来混淆并加密已部署的PHP脚本。但是,在这种情况下,包含解密密钥的cookie由GreyEnergy恶意软件本身提供。因此,操作员应对服务器URL使用特殊的配置格式。


图20.使用cookie解密PHP后门代码的最后一个级别

有趣的是,恶意软件配置包含单词triungulin在通往代理服务器的模糊PHP脚本的途中。这似乎是GreyEnergy语句使用的此方法的内部名称。

如果恶意程序在配置中具有内置的C&C代理,则它不包含外部C&C服务器。因此,为了找到外部C&C地址,您需要同时具有恶意软件样本和与其关联的所有PHP脚本。

我们观察到以下PHP脚本的使用:


自定义PHP代理脚本包含带有外部C&C标头的URL。


图21.嵌入在自定义PHP代理服务器脚本中的外部C&C服务器自定义PHP

脚本使用OpenSSL和Curl库将请求从恶意软件重定向到Internet上的外部C&C服务器。


图22. GreyEnergy组代理服务器的自定义PHP脚本的代码

如上所述,攻击者可以出于相同目的使用ASP脚本。在我们观察到的一种情况下,ASP脚本使用了由恶意软件提供的cookie来使用AES仅解密真实的C&C地址。其余代码未加密或混淆。


图23. GreyEnergy组使用的ASP代理代码

可以访问Internet的C和C服务器


所有GreyEnergy C&C服务器处于活动状态时都使用Tor。C&C基础结构设置类似于BlackEnergy,TeleBots和Industroyer,它们也使用了Tor服务器。

每个C&C服务器可能都有一个洋葱地址,网络罪犯会使用它来访问,管理或传输数据。这似乎是OPSEC要求,为攻击者增加了额外的匿名性。

ESET专家已经确定了GreyEnergy恶意软件在过去三年中使用的C&C服务器。该列表在下面的“危害指标”部分中给出。

GreyEnergy和BlackEnergy的比较


GreyEnergy和BlackEnergy恶意软件家族具有相同的结构,模块和功能集。尽管这些功能的实现有所不同,但它们仍具有可比性。


Moonraker Petya


2016年12月,攻击者发出了一种蠕虫,我们认为这是NotPetya(又名Petya,ExPetr,Nyetya,EternalPetya)的前身。该蠕虫用于攻击少量对象,并且分发能力有限,因此尚未广为人知。

蠕虫是一个DLL文件,其名称msvcrt120b.dll位于Windows目录中。内部文件名是moonraker.dll,这也许是对同名电影邦德小说的引用。通常,我们将程序称为Moonraker Petya。


图24. 2016年12月安装的蠕虫的内部名称

DLL中的PE时间戳表明该文件是在2016年12月编译的,大概是在安装之前。

Moonraker Petya包含代码,之后计算机将停止加载。特别是,它将覆盖ImagePath注册表项中的值[HKEY_LOCAL_MACHINE\System\ControlSet001\Services\ACPI]并且[HKEY_LOCAL_MACHINE\System\ControlSet002\Services\ACPI]并擦除系统驱动器的第一个扇区。与NotPetya不同,Moonraker Petya不包含直接与MBR和操作系统引导加载程序交互的代码。而是,Moonraker Petya DLL包含一个加密的二进制数据Blob。该恶意软件需要一个命令行参数,该参数以后将用作解密密钥。使用zlib库解密和解压缩后,代码将作为二进制RE文件加载到内存中并执行。我们没有解密密钥,但是我们分析了受感染计算机的磁盘映像。它们包含MBR和引导加载程序代码,与不同网络组织使用的原始Green Petya中找到的代码相对应。我们假定该斑点可能包含原始的绿色Petya。


图25.在被Moonraker Petya感染的计算机上重新启动后显示的弹出屏幕

有趣的是,Moonraker Petya中的解密与“仅在内存中”模式下GreyEnergy DLL文件中的解密过程非常相似。


图26.比较反编译的Moonraker Petya代码(左)和GreyEnergy(右)

Moonraker Petya 代码可以使用SysInternals PsExec分布在本地网络上。恶意程序的资源中包含zlib压缩的二进制文件。稍后,二进制文件将使用文件名刷新到Windows目录conhost.exe

这种恶意程序分发同样NotPetya:使用不同的方法(枚举的网络节点WNetEnumResourceWGetIpNetTableGetExtendedTcpTableNetServerEnum,TERMSRV-记录使用CredEnumerateW),然后使用该功能连接到网络主机WNetAddConnection2W,并将恶意软件另存为\\%TARGET-HOST%\admin$\%MALWARE%。之后,Moonraker Petya执行以下命令,该命令使用重置的PsExec在远程计算机上启动恶意软件:

C:\Windows\conhost.exe \\%TARGET-HOST% -accepteula -s -d C:\Windows\System32\rundll32.exe "C:\Windows\msvcrt120b.dll", #1 %TIMEOUT% "USER1:PASSWORD1;USER2:PASSWORD2" "%DECRYPTIONKEY%"

请注意,该恶意软件不具有使用Mimikatz的凭据收集功能,并且不包含EternalBlue漏洞。

除列出的功能外,Moonraker Petya还支持文件加密。恶意程序会扫描硬盘驱动器上的所有文件,然后尝试使用AES-256算法对其进行加密。加密过程完成后,恶意软件可以创建README.txt带有付款说明的文件

该指令包含使用RSA-2048加密的个人密钥。此外,它包含与原始绿色Petya相同的文本和洋葱地址。看来,攻击者希望将这种恶意软件的使用掩饰为Green Petya的攻击。


图27.由Moonraker Petya创建的带有付款说明的自述文件

作为最后一步,Moonraker Petya尝试重新启动计算机。

结论


GreyEnergy是过去几年来一直在攻击乌克兰目标的最危险的ART团体之一的重要组成部分。我们将她视为BlackEnergy的继任者,本文列出了相似之处和不同之处。我们得出此结​​论的主要原因是恶意软件的结构相似,目标和工作方法的选择。从BlackEnergy到GreyEnergy的过渡发生在2015年底-可能是由于攻击者在对BlackEnergy基础设施的关注度提高之后不得不更新恶意软件套件。

这个难题的一个有趣的部分是,在2016年6月使用Moonraker Petya的既定事实,根据我们的估计,它是破坏性程序NotPetya的前身。这可能表明TeleBots和GreyEnergy组正在协作,或至少共享代码和一些想法。但是,我们将它们视为独立的组,其目标有所不同。在撰写本文时,与之前的GreyEnergy和BlackEnergy不同,我们没有看到TeleBots在乌克兰以外的有意活动。

无论如何,GreyEnergy运营商都构成了严重的危险。我们将继续监控GreyEnergy和TeleBots的活动,并建议私人和公司用户使用最先进的产品来保护端点。

折衷指标


通过ESET产品检测:


VBA/TrojanDownloader.Agent.EYV
Win32/Agent.SCT
Win32/Agent.SCM
Win32/Agent.SYN
Win64/Agent.SYN
Win32/Agent.WTD
Win32/GreyEnergy
Win64/GreyEnergy
Win32/Diskcoder.MoonrakerPetya.A
PHP/Agent.JS
PHP/Agent.JX
PHP/Agent.KJ
PHP/Agent.KK
PHP/Agent.KL
PHP/Agent.KM
PHP/Agent.KN
PHP/Agent.KO
PHP/Agent.KP
PHP/Agent.KQ
PHP/Agent.KR
PHP/Agent.KS
PHP/Agent.KT
PHP/Agent.KU
PHP/Agent.LC
PHP/Agent.NBP
PHP/Kryptik.AB
PHP/TrojanProxy.Agent.B
ASP/Agent.L
Win64/HackTool.PortScanner.A
Win64/Riskware.Mimikatz.A
Win64/Riskware.Mimikatz.AE
Win64/Riskware.Mimikatz.AH
Win32/Winexe.A
Win64/Winexe.A
Win64/Winexe.B


GreyEnergy文件:


SHA-1:
177AF8F6E8D6F4952D13F88CDF1887CB7220A645

GreyEnergy mini:


SHA-1:
455D9EB9E11AA9AF9717E0260A70611FF84EF900
51309371673ACD310F327A10476F707EB914E255
CB11F36E271306354998BB8ABB6CA67C1D6A3E24
CC1CE3073937552459FB8ED0ADB5D56FA00BCD43
30AF51F1F7CB9A9A46DF3ABFFB6AE3E39935D82C


GreyEnergy滴管:


SHA-1:
04F75879132B0BFBA96CB7B210124BC3D396A7CE
69E2487EEE4637FE62E47891154D97DFDF8AAD57
716EFE17CD1563FFAD5E5E9A3E0CAC3CAB725F92
93EF4F47AC160721768A00E1A2121B45A9933A1D
94F445B65BF9A0AB134FAD2AAAD70779EAFD9288
A414F0A651F750EEA18F6D6C64627C4720548581
B3EF67F7881884A2E3493FE3D5F614DBBC51A79B
EBD5DC18C51B6FB0E9985A3A9E86FF66E22E813E
EC7E018BA36F07E6DADBE411E35B0B92E3AD8ABA


GreyEnergy可重置DLL:


SHA-1:
0B5D24E6520B8D6547526FCBFC5768EC5AD19314
10D7687C44BECA4151BB07F78C6E605E8A552889
2A7EE7562A6A5BA7F192B3D6AED8627DFFDA4903
3CBDC146441E4858A1DE47DF0B4B795C4B0C2862
4E137F04A2C5FA64D5BF334EF78FE48CF7C7D626
62E00701F62971311EF8E57F33F6A3BA8ED28BF7
646060AC31FFDDFBD02967216BC71556A0C1AEDF
748FE84497423ED209357E923BE28083D42D69DE
B75D0379C5081958AF83A542901553E1710979C7
BFC164E5A28A3D56B8493B1FC1CA4A12FA1AC6AC
C1EB0150E2FCC099465C210B528BF508D2C64520
CBB7BA92CDF86FA260982399DAB8B416D905E89B
DF051C67EE633231E4C76EC247932C1A9868C14F
DFD8665D91C508FAF66E2BC2789B504670762EA2
E2436472B984F4505B4B938CEE6CAE26EF043FC7
E3E61DF9E0DD92C98223C750E13001CBB73A1E31
E496318E6644E47B07D6CAB00B93D27D0FE6B415
EDA505896FFF9A29BD7EAE67FD626D7FFA36C7B2
F00BEFDF08678B642B69D128F2AFAE32A1564A90
F36ECAC8696AA0862AD3779CA464B2CD399D8099


GreyEnergy DLL(“仅在内存中”模式):


SHA-1:
0BCECB797306D30D0BA5EAEA123B5BF69981EFF4
11159DB91B870E6728F1A7835B5D8BE9424914B9
6ABD4B82A133C4610E5779C876FCB7E066898380
848F0DBF50B582A87399428D093E5903FFAEEDCD
99A81305EF6E45F470EEE677C6491045E3B4D33A
A01036A8EFE5349920A656A422E959A2B9B76F02
C449294E57088E2E2B9766493E48C98B8C9180F8
C7FC689FE76361EF4FDC1F2A5BAB71C0E2E09746
D24FC871A721B2FD01F143EB6375784144365A84
DA617BC6DCD2083D93A9A83D4F15E3713D365960
E4FCAA1B6A27AA183C6A3A46B84B5EAE9772920B


Moonraker Petya


SHA-1:
1AA1EF7470A8882CA81BB9894630433E5CCE4373

PHP和ASP脚本


SHA-1:
10F4D12CF8EE15747BFB618F3731D81A905AAB04
13C5B14E19C9095ABA3F1DA56B1A76793C7144B9
1BA30B645E974DE86F24054B238FE77A331D0D2C
438C8F9607E06E7AC1261F99F8311B004C23DEC3
4D1C282F9942EC87C5B4D9363187AFDC120F4DC7
4E0C5CCFFB7E2D17C26F82DB5564E47F141300B3
5377ADB779DE325A74838C0815EEA958B4822F82
58A69A8D1B94E751050DECF87F2572E09794F0F8
5DD34FB1C8E224C17DCE04E02A4409E9393BCE58
639BCE78F961C4B9ECD9FE1A8537733388B99857
7127B880C8E31FBEB1D376EB55A6F878BC77B21A
71BA8FE0C9C32A9B987E2BB827FE54DAE905D65E
78A7FBDD6ADF073EA6D835BE69084E071B4DA395
81332D2F96A354B1B8E11984918C43FB9B5CB9DB
8CC008B3189F8CE9A96C2C41F864D019319EB2EE
940DE46CD8C50C28A9C0EFC65AEE7D567117941B
A415E12591DD47289E235E7022A6896CB2BFDE96
D3AE97A99D826F49AD03ADDC9F0D5200BE46AB5E
E69F5FF2FCD18698BB584B6BC15136D61EB4F594
E83A090D325E4A9E30B88A181396D62FEF5D54D5
ECF21EFC09E4E2ACFEEB71FB78CB1F518E1F5724


自定义端口扫描器


SHA-1:
B371A5D6465DC85C093A5FB84D7CDDEB1EFFCC56
B40BDE0341F52481AE1820022FA8376E53A20040


米米卡茨


SHA-1:
89D7E0DA80C9973D945E6F62E843606B2E264F7E
8B295AB4789105F9910E4F3AF1B60CBBA8AD6FC0
AD6F835F239DA6683CAA54FCCBCFDD0DC40196BE


Winexe的


SHA-1:警告:具有这些IP地址的大多数服务器都是Tor网络的一部分,也就是说,使用这些指示器可能导致误报。
0666B109B0128599D535904C1F7DDC02C1F704F2
2695FCFE83AB536D89147184589CCB44FC4A60F3
3608EC28A9AD7AF14325F764FB2F356731F1CA7A
37C837FB170164CBC88BEAE720DF128B786A71E0
594B809343FEB1D14F80F0902D764A9BF0A8C33C
7C1F7CE5E57CBDE9AC7755A7B755171E38ABD70D
90122C0DC5890F9A7B5774C6966EA694A590BD38
C59F66808EA8F07CBDE74116DDE60DAB4F9F3122
CEB96B364D6A8B65EA8FA43EB0A735176E409EB0
FCEAA83E7BD9BCAB5EFBA9D1811480B8CB0B8A3E




C&C服务器处理GreyEnergy mini


https://82.118.236[.]23:8443/27c00829d57988279f3ec61a05dee75a
http://82.118.236[.]23:8080/27c00829d57988279f3ec61a05dee75a
https://88.198.13[.]116:8443/xmlservice
http://88.198.13[.]116:8080/xmlservice
https://217.12.204[.]100/news/
http://217.12.204[.]100/news/
http://pbank.co[.]ua/favicon.ico (IP: 185.128.40.90)


GreyEnergy C&C服务器地址(活动时间和IP)


2015–2016 – 109.200.202.7
2015–2015 – 193.105.134.68
2015–2016 – 163.172.7.195
2015–2016 – 163.172.7.196
2016–2016 – 5.149.248.77
2016–2016 – 31.148.220.112
2016–2016 – 62.210.77.169
2016–2016 – 85.25.211.10
2016–2016 – 138.201.198.164
2016–2017 – 124.217.254.55
2017–2017 – 46.249.49.231
2017–2017 – 37.59.14.94
2017–2017 – 213.239.202.149
2017–2017 – 88.198.13.116
2017–2017 – 217.12.202.111
2017–2017 – 176.31.116.140
2017–2018 – 185.217.0.121
2017–2018 – 178.150.0.200
2018–2018 – 176.121.10.137
2018–2018 – 178.255.40.194
2018–2018 – 193.105.134.56
2018–2018 – 94.130.88.50
2018–2018 – 185.216.33.126

Source: https://habr.com/ru/post/zh-CN426911/


All Articles