东欧

频繁搭便车者第二部分:俄罗斯黑客组织Secret Blizzard利用其他组织的工具攻击乌克兰

在利用另一个民族国家威胁行为者的工具和基础设施来促进间谍活动之后,俄罗斯民族国家行为者 Secret Blizzard 使用这些工具和基础设施来攻击乌克兰的目标,正如我们上一篇博客中详细介绍的那样。Microsoft Threat Intelligence 观察到,这些活动不断导致下载 Secret Blizzard 的自定义恶意软件,而Tavdig后门为安装他们的KazuarV2后门创造了立足点。

2024 年 3 月至 4 月期间,微软威胁情报发现 Secret Blizzard 使用与网络犯罪活动有关的Amadey机器人恶意软件(微软将其追踪为 Storm-1919)将其后门下载到与乌克兰军方有关的特定目标设备上。这是自 2022 年以来 Secret Blizzard 至少第二次利用网络犯罪活动为其自己的恶意软件在乌克兰站稳脚跟。微软还评估称,2024 年 1 月,Secret Blizzard 使用 Storm-1837 的后门(一个以乌克兰军用无人机飞行员为目标的俄罗斯威胁行为者)在乌克兰的目标设备上下载了 Tavdig 和 KazuarV2 后门。

征用其他威胁行为者的访问权限凸显了 Secret Blizzard 多样化攻击媒介的方法,包括使用战略性网络攻击(水坑攻击)和中间人攻击(AiTM)活动,这些活动可能通过俄罗斯法律强制的拦截系统(如“行动调查活动系统”(SORM))进行。更常见的是,Secret Blizzard 使用鱼叉式网络钓鱼作为其初始攻击媒介,然后利用服务器端和边缘设备攻击来促进在感兴趣的网络内进一步的横向移动。

如前所述,Secret Blizzard 以针对广泛的行业而闻名,但最突出的是全球的外交部、大使馆、政府办公室、国防部和国防相关公司。Secret Blizzard 专注于获取系统的长期访问权限以进行情报收集,经常使用多种后门等大量资源来寻找具有政治重要性的高级研究和信息。美国网络安全和基础设施安全局 (CISA) 已将Secret Blizzard归咎于俄罗斯联邦安全局 (FSB) 的第 16 中心。Secret Blizzard 与其他安全供应商追踪的威胁行为者有重叠,如Turla、Waterbug、Venomous Bear、Snake、Turla Team 和 Turla APT Group。

Microsoft 会跟踪 Secret Blizzard 活动,并在可能的情况下直接通知受到攻击或入侵的客户,为他们提供必要的信息,帮助他们保护环境。作为我们对威胁形势的持续监控、分析和报告的一部分,我们正在分享对 Secret Blizzard 活动的研究,以提高人们对该威胁行为者的技巧的认识,并教育组织如何加强对此类活动和类似活动的攻击面。此外,我们强调,虽然 Secret Blizzard 使用其他威胁行为者的基础设施和访问权限并不常见,但并非独一无二,因此,受到一个威胁行为者入侵的组织在最初的入侵中也可能发现自己受到另一个威胁行为者的入侵。

Amadey 机器人的使用和入侵后的活动

2024 年 3 月至 4 月期间,微软观察到 Secret Blizzard 可能征用 Amadey 机器人来最终部署其定制的 Tavdig 后门。微软追踪了一些与 Amadey 机器人相关的网络犯罪活动,并将其归类为 Storm-1919。Storm-1919 的感染后目标通常是将 XMRIG 加密货币矿工部署到受害者设备上。2024 年,Secret Blizzard 和 Storm-1919 等威胁行为者将 Amadey 机器人部署到世界各地的众多设备上。

微软评估称,Secret Blizzard 要么使用 Amadey 恶意软件即服务 (MaaS),要么秘密访问 Amadey 命令与控制 (C2) 面板,在目标设备上下载 PowerShell 植入程序。PowerShell 植入程序包含一个 Base64 编码的 Amadey 有效载荷,附加了调用对 Secret Blizzard C2 基础设施的请求的代码。

代码截图展示了 Amadey 有效载荷回调 Secret Blizzard C2 基础设施的过程
1. Amadey 有效载荷回调 Secret Blizzard C2 基础设施

Amadey 实例的版本为 4.18,但通常具有与 2023 年 7 月分析 3.83 版本的 Splunk 博客中描述的 Amadey 机器人相同的功能。

Amadey 样本收集了大量有关受害者系统的信息,包括来自注册表的管理员状态和设备名称,并通过查看C:ProgramData中是否有文件夹来检查已安装的防病毒软件。记录了找到的每个软件的编号,并可能将其发送回 C2:

  • Avast 软件
    • 阿维拉
    • 卡巴斯基实验室
    • 艾塞特
    • 熊猫安全
    • 医生网
    • 平均
    • 360全面安全
    • 比特卫士
    • 诺顿
    • 索福斯
    • 科摩多

检索到的信息从系统中收集,并编码到发送到 C2 的通信中,地址为http://vitantgroup[.]com/xmlrpc.php。然后,Amadey 机器人尝试从 C2 服务器下载两个插件:

  • hxxp  ://vitantgroup[.]com/Plugins/cred64.dll
  • hxxp  ://  vitantgroup[.]com/Plugins/clip64.dll

微软没有在 Secret Blizzard 访问的设备上观察到这两个 DLL,但它们很可能与其他类似的 Amadey 机器人一样,执行相同的角色——收集剪贴板数据和浏览器凭据。需要使用 Secret Blizzard 控制的单独 C2 URL 对 PowerShell 植入程序进行编码可能表明 Secret Blizzard 并不直接控制 Amadey 机器人使用的 C2 机制。

随后,微软发现 Secret Blizzard 下载了其自定义侦察或调查工具。该工具被有选择地部署到威胁行为者感兴趣的设备上,例如从 STARLINK IP 地址传出的设备,这是乌克兰前线军事设备的常见特征。调查工具由一个可执行文件组成,该可执行文件在运行时使用似乎是自定义 RC4 算法解密批处理脚本或 cmdlet。其中一个批处理脚本调用了以下命令:

描述批处理脚本命令的代码屏幕截图
图 2. 批处理脚本命令

批处理脚本收集了受害者设备的调查,包括目录树、系统信息、活动会话、IPv4 路由表、SMB 共享、启用的安全组和时间设置。这些信息使用相同的 RC4 函数加密,并传输到之前提到的 Secret Blizzard C2 服务器hxxps://citactica[.]com/wp-content/wp-login.php

在 Microsoft Threat Intelligence 观察到的另一种调查工具使用方法中,可执行文件只是解密了 cmdlet目录“%programdata%MicrosoftWindows DefenderSupport”%programdata%MicrosoftWindows DefenderSupport文件夹包含各种 Microsoft Defender 日志,例如检测到的恶意文件的条目。

Microsoft 评估调用此 cmdlet 是为了确定 Microsoft Defender 是否已启用以及引擎是否已标记先前的 Amadey 活动。由于 Microsoft 观察到的几台目标设备在初始感染期间已禁用 Microsoft Defender,因此 Microsoft 仅在初始恶意软件部署后数周或数月才观察到 Secret Blizzard 植入。

微软估计,Secret Blizzard 通常使用调查工具来确定受害者设备是否值得进一步关注,在这种情况下,它会部署一个包含 Tavdig 后门负载 ( rastls.dll ) 的 PowerShell 植入程序,以及名为 ( kavp.exe ) 的合法 Symantec 二进制文件,该二进制文件容易受到 DLL 侧加载的影响。Tavdig 的 C2 配置如下:

  • hxxps://icw2016.coachfederation[.]cz/wp-includes/images/wp/
  • hxxps://hospitalvilleroy[.]com[.]br/wp-includes/fonts/icons/

在多台受害设备上,Tavdig 加载程序使用名为procmap.exe 的可执行文件部署,该文件使用了 Microsoft Macro Assembler (MASM) 编译器 (QEditor)。Microsoft 评估发现,procmap.exe于 2024 年 3 月在乌克兰境内的受害设备上编译并运行了恶意 ASM 文件,然后调用了 PowerShell 脚本,随后加载了 Amadey 机器人和 Tavdig 后门。

随后,Secret Blizzard 使用 Tavdig 后门(加载到 kavp.exe中)对设备进行进一步侦察,包括用户信息、网络状态和已安装的补丁。Secret Blizzard 还使用 Tavdig 将注册表文件导入受害设备的注册表,该文件很可能安装了 KazuarV2 后门的持久性机制和有效载荷。

该图表展示了如何使用 Amadey 机器人加载 Tavdig 后门和 KazuarV2 后门。

图 3. Amadey 机器人如何加载 Tavdig 后门的示例

KazuarV2 有效负载通常被注入到浏览器进程(例如 explorer.exe 或 opera.exe)中 ,以便对托管 Secret Blizzard 中继和加密模块 ( index.php ) 的受感染 Web 服务器进行命令和控制。该模块有助于加密和将命令输出和泄露的数据从受影响的设备传输到下一级 Secret Blizzard 基础设施。

Storm-1837 PowerShell后门利用

自 2023 年 12 月以来,微软观察到 Storm-1837(与其他安全提供商跟踪的活动重叠,如Flying YetiUAC-0149)针对乌克兰军方的设备。Storm-1837 是一个俄罗斯威胁行为者,专注于乌克兰无人机操作员使用的设备。Storm-1837 使用一系列 PowerShell 后门,包括乌克兰计算机应急响应小组 (CERT-UA) 命名为Cookbox 的后门,以及冒充用于 AI 处理的合法系统的 Android 后门,称为“Griselda”,根据 CERT-UA 的说法,它基于 Hydra Android 银行恶意软件,并有助于收集会话数据(HTTP cookie)、联系人和键盘记录。2024 年 5 月,Cloudflare 详细介绍了针对乌克兰军用设备的 Storm-1837间谍网络钓鱼活动,Storm-1837 使用 GitHub 和 Cloudflare 进行登台和 C2。

2024 年 1 月,微软发现乌克兰的一台军事相关设备被 Storm-1837 后门入侵,该后门配置为使用 Telegram API 启动带有文件共享平台 Mega 帐户凭据(以参数形式提供)的 cmdlet。该 cmdlet 似乎促进了与 Mega 帐户的远程连接,并可能调用下载命令或文件以在目标设备上启动。当 Storm-1837 PowerShell 后门启动时,微软注意到该设备上部署了一个 PowerShell 植入程序。该植入程序与使用 Amadey 机器人期间观察到的植入程序非常相似,包含两个 base64 编码文件,其中包含前面提到的 Tavdig 后门负载(rastls.dll)和 Symantec 二进制文件(kavp.exe)。

与 Amadey 机器人攻击链一样,Secret Blizzard 使用加载到kavp.exe中的 Tavdig 后门对设备进行初步侦察。Secret Blizzard 随后使用 Tavdig 导入注册表文件,该文件用于安装 KazuarV2 后门并提供持久性,随后观察到该后门在受影响的设备上启动。

虽然微软没有直接观察到 Storm-1837 PowerShell 后门下载 Tavdig 加载程序的过程,但基于 Storm-1837 后门的执行和 PowerShell 植入程序的观察之间的时间接近性,微软评估 Storm-1837 后门很可能被 Secret Blizzard 用于部署 Tavdig 加载程序。

总结评估

Microsoft Threat Intelligence 仍在调查 Secret Blizzard 如何控制 Storm-1837 后门或 Amadey 机器人,并将其自己的工具下载到乌克兰的设备上。例如,Secret Blizzard 运营商可能购买了 Amadey 机器人的使用权,或者可能暗中控制了 Amadey 攻击链的一部分。

无论使用何种手段,Microsoft Threat Intelligence 评估认为,Secret Blizzard 追击其他威胁行为者提供或窃取的立足点,突显出该威胁行为者优先访问乌克兰的军事设备。在行动期间,Secret Blizzard 使用 RC4 加密可执行文件解密各种调查命令和脚本,Microsoft 评估认为,Secret Blizzard 可能会在本文讨论的直接行动之外使用这种方法。

Secret Blizzard 向这些(未加入域的)设备部署了工具,这些工具被编码用于对大型加入域的环境进行间谍活动。然而,该威胁行为者还在其中构建了新功能,使其更适合专门针对乌克兰军事设备进行的间谍活动。此外,微软评估 Secret Blizzard 可能还试图利用这些立足点来挖掘和升级到部级战略访问。

将本博客系列的第一部分和第二部分放在一起,可以发现 Secret Blizzard 一直在利用第三方的立足点(无论是秘密窃取还是购买访问权限)作为建立具有间谍价值的立足点的特定且深思熟虑的方法。尽管如此,微软认为,虽然这种方法有一些好处,可能会吸引更多威胁对手使用它,但它在强化网络中的作用较小,因为良好的端点和网络防御可以检测到多个威胁对手的活动并进行补救。

缓解措施

为了加强网络以抵御上述秘密暴雪活动的攻击,防御者可以采取以下措施:

加强 Microsoft Defender for Endpoint 配置

加强 Microsoft Defender 防病毒配置

加强运营环境配置

Microsoft Defender XDR 检测

Microsoft Defender 防病毒软件

Microsoft Defender Antivirus 将此威胁检测为以下恶意软件:

  • 木马:Win32/Tavdig.Crypt
  • 木马:JS/Kazuar.A

Microsoft Defender 防病毒软件检测到可能与以下恶意软件相关的其他威胁组件:

  • 木马:Win32/Amadey
  • 木马病毒:MSIL/Amadey
  • 木马下载器:Win32/Amadey

适用于端点的 Microsoft Defender

以下警报也可能表明与此威胁相关的威胁活动。但是,这些警报可能由不相关的威胁活动触发,并且不会在本报告提供的状态卡中监控。

  • 检测到暴雪演员的秘密活动

狩猎查询

Microsoft Defender XDR

秘密暴雪妥协文件哈希指标的表面实例

let fileHashes = dynamic(["Ee8ef58f3bf0dab066eb608cb0f167b1585e166bf4730858961c192860ceffe9",
"d26ac1a90f3b3f9e11491f789e55abe5b7d360df77c91a597e775f6db49902ea",
"d7e528b55b2eeb6786509664a70f641f14d0c13ceec539737eef26857355536e",
"dfdc0318f3dc5ba3f960b1f338b638cd9645856d2a2af8aa33ea0f9979a9ca4c",
"ced8891ea8d87005de989f25f0f94634d1fc70ebb37302cf21aa0c0b0e13350f",
"Ee8ef58f3bf0dab066eb608cb0f167b1585e166bf4730858961c192860ceffe9"]);
union
(
   DeviceFileEvents
   | where SHA256 in (fileHashes)
   | project Timestamp, FileHash = SHA256, SourceTable = "DeviceFileEvents"
),
(
   DeviceEvents
   | where SHA256 in (fileHashes)
   | project Timestamp, FileHash = SHA256, SourceTable = "DeviceEvents"
),
(
   DeviceImageLoadEvents
   | where SHA256 in (fileHashes)
   | project Timestamp, FileHash = SHA256, SourceTable = "DeviceImageLoadEvents"
),
(
   DeviceProcessEvents
   | where SHA256 in (fileHashes)
   | project Timestamp, FileHash = SHA256, SourceTable = "DeviceProcessEvents"
)
| order by Timestamp desc

秘密暴雪妥协 C2 指标的表面实例

let domainList = dynamic(["citactica.com", "icw2016.coachfederation.cz", "hospitalvilleroy.com.br", "vitantgroup.com", "brauche-it.de", "okesense.oketheme.com", "coworkingdeamicis.com", "plagnol-charpentier.fr"]);
union
(
    DnsEvents
    | where QueryType has_any(domainList) or Name has_any(domainList)
    | project TimeGenerated, Domain = QueryType, SourceTable = "DnsEvents"
),
(
    IdentityQueryEvents
    | where QueryTarget has_any(domainList)
    | project Timestamp, Domain = QueryTarget, SourceTable = "IdentityQueryEvents"
),
(
    DeviceNetworkEvents
    | where RemoteUrl has_any(domainList)
    | project Timestamp, Domain = RemoteUrl, SourceTable = "DeviceNetworkEvents"
),
(
    DeviceNetworkInfo
    | extend DnsAddresses = parse_json(DnsAddresses), ConnectedNetworks = parse_json(ConnectedNetworks)
    | mv-expand DnsAddresses, ConnectedNetworks
    | where DnsAddresses has_any(domainList) or ConnectedNetworks.Name has_any(domainList)
    | project Timestamp, Domain = coalesce(DnsAddresses, ConnectedNetworks.Name), SourceTable = "DeviceNetworkInfo"
),
(
    VMConnection
    | extend RemoteDnsQuestions = parse_json(RemoteDnsQuestions), RemoteDnsCanonicalNames = parse_json(RemoteDnsCanonicalNames)
    | mv-expand RemoteDnsQuestions, RemoteDnsCanonicalNames
    | where RemoteDnsQuestions has_any(domainList) or RemoteDnsCanonicalNames has_any(domainList)
    | project TimeGenerated, Domain = coalesce(RemoteDnsQuestions, RemoteDnsCanonicalNames), SourceTable = "VMConnection"
),
(
    W3CIISLog
    | where csHost has_any(domainList) or csReferer has_any(domainList)
    | project TimeGenerated, Domain = coalesce(csHost, csReferer), SourceTable = "W3CIISLog"
),
(
    EmailUrlInfo
    | where UrlDomain has_any(domainList)
    | project Timestamp, Domain = UrlDomain, SourceTable = "EmailUrlInfo"
),
(
    UrlClickEvents
    | where Url has_any(domainList)
    | project Timestamp, Domain = Url, SourceTable = "UrlClickEvents"
)
| order by TimeGenerated desc

可在此存储库中找到对可能的恶意 PowerShell 命令查询的额外搜索 。

查找可能涉及下载的 PowerShell 执行事件

// Finds PowerShell execution events that could involve a download.
DeviceProcessEvents
| where Timestamp > ago(7d)
| where FileName in~ ("powershell.exe", "powershell_ise.exe")
| where ProcessCommandLine has "Net.WebClient"
or ProcessCommandLine has "DownloadFile"
or ProcessCommandLine has "Invoke-WebRequest"
or ProcessCommandLine has "Invoke-Shellcode"
or ProcessCommandLine has "http"
or ProcessCommandLine has "IEX"
or ProcessCommandLine has "Start-BitsTransfer"
or ProcessCommandLine has "mpcmdrun.exe"
| project Timestamp, DeviceName, InitiatingProcessFileName, FileName, ProcessCommandLine

查找编码的 PowerShell 执行事件

// Detect Encoded PowerShell
DeviceProcessEvents
| where ProcessCommandLine matches regex @'(s+-((?i)encod?e?d?c?o?m?m?a?n?d?|e|en|enc|ec)s).*([A-Za-z0-9+/]{50,}[=]{0,2})'
| extend DecodedCommand = replace(@'x00','', base64_decode_tostring(extract("[A-Za-z0-9+/]{50,}[=]{0,2}",0 , ProcessCommandLine)))

微软哨兵

查找编码的 PowerShell

id: f58a7f64-acd3-4cf6-ab6d-be76130cf251
name: Detect Encoded Powershell
description: | 
This query will detect encoded Powershell based on the parameters passed during process creation. This query will also work if the PowerShell executable is renamed or tampered with since detection is based solely on a regex of the launch string.
requiredDataConnectors:
- connectorId: MicrosoftThreatProtection
dataTypes:
- DeviceProcessEvents
tactics:
- Execution
query: |
DeviceProcessEvents
| where ProcessCommandLine matches regex @'(s+-((?i)encod?e?d?c?o?m?m?a?n?d?|e|en|enc|ec)s).*([A-Za-z0-9+/]{50,}[=]{0,2})'
| extend DecodedCommand = replace(@'x00','', base64_decode_tostring(extract("[A-Za-z0-9+/]{50,}[=]{0,2}",0 , ProcessCommandLine)))

查找 PowerShell 下载

id: c34d1d0e-1cf4-45d0-b628-a2cfde329182
name: PowerShell downloads
description: |
Finds PowerShell execution events that could involve a download.
requiredDataConnectors:
- connectorId: MicrosoftThreatProtection
dataTypes:
- DeviceProcessEvents
query: |
DeviceProcessEvents
| where Timestamp > ago(7d)
| where FileName in~ ("powershell.exe", "powershell_ise.exe")
| where ProcessCommandLine has "Net.WebClient"
or ProcessCommandLine has "DownloadFile"
or ProcessCommandLine has "Invoke-WebRequest"
or ProcessCommandLine has "Invoke-Shellcode"
or ProcessCommandLine has "http"
or ProcessCommandLine has "IEX"
or ProcessCommandLine has "Start-BitsTransfer"
or ProcessCommandLine has "mpcmdrun.exe"
| project Timestamp, DeviceName, InitiatingProcessFileName, FileName, ProcessCommandLine

Microsoft Defender 威胁情报

Indicator Type Association Last seen
hxxps://citactica[.]com/wp-content/wp-login.php C2 domain Survey Tool and Amadey dropper Secret Blizzard April 2024
a56703e72f79b4ec72b97c53fbd8426eb6515e3645cb02e7fc99aaaea515273e Tavdig payload (rastls.dll) Secret Blizzard April 2024
hxxps://icw2016.coachfederation[.]cz/wp-includes/images/wp/ Tavdig C2 domain Secret Blizzard April 2024  
hxxps://hospitalvilleroy[.]com[.]br/wp-includes/fonts/icons/ Tavdig C2 domain Secret Blizzard April 2024
f9ebf6aeb3f0fb0c29bd8f3d652476cd1fe8bd9a0c11cb15c43de33bbce0bf68 Executable susceptible to DLL-sideload (kavp.exe) Secret Blizzard Jan-April 2024
d26ac1a90f3b3f9e11491f789e55abe5b7d360df77c91a597e775f6db49902ea 勘测工具(ddra.exe 秘密暴风雪 2024 年 4 月
d7e528b55b2eeb6786509664a70f641f14d0c13ceec539737eef26857355536e Amadey 机器人的 PowerShell 滴管 ( nnas.ps1 ) 秘密暴风雪 2024 年 3 月
hxxps://brauche-it[.]de/wp-includes/blocks/blocksu9ky0o 卡祖尔V2 C2 秘密暴风雪 2024 年 6 月
hxxps://okesense.oketheme[.]com/wp-includes/sodium_compat/sodium_compatT4FF1a 卡祖尔V2 C2   秘密暴风雪 2024 年 6 月  
 hxxps://coworkingdeamicis[.]com/wp-includes/Text/TextYpRm9l 卡祖尔V2 C2   秘密暴风雪   2024 年 6 月  
hxxps://plagnol-charpentier[.]fr/wp-includes/random_compat/random_compata0zW7Q 卡祖尔V2 C2   秘密暴风雪   2024 年 6 月  
dfdc0318f3dc5ba3f960b1f338b638cd9645856d2a2af8aa33ea0f9979a9ca4c Amadey 机器人 ( av.exedctooux.exe ) 风暴-1919 2024 年 3 月
ced8891ea8d87005de989f25f0f94634d1fc70ebb37302cf21aa0c0b0e13350f 阿玛迪 ( dctooux.exe ) 风暴-1919 2024 年 3 月
ee8ef58f3bf0dab066eb608cb0f167b1585e166bf4730858961c192860ceffe9 MASM32 实用程序(procmap.exe 风暴-1919 2024 年 3 月
hxxp://vitantgroup[.]com/xmlrpc.php 制剂C2 风暴-1919 2024 年 3 月

相关文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部按钮