白俄罗斯APT组织Ghostwriter针对乌克兰政府和白俄罗斯反对派开展网络攻击

摘要
- SentinelLABS 观察到一场针对白俄罗斯反对派活动人士以及乌克兰军事和政府组织的活动。
- 该活动自 2024 年 7 月至 8 月开始筹备,并于 2024 年 11 月至 12 月进入活跃阶段。
- 最近的恶意软件样本以及命令与控制 (C2) 基础设施活动表明该操作在最近几天仍然活跃。
- SentinelLABS 评估认为,这组威胁活动是之前公开报告中确定的长期 Ghostwriter 活动的延伸。
Ghostwriter | 背景
Ghostwriter 是一项长期活动,可能自 2016 年以来一直活跃,随后在 2020 年至 2024 年期间的各种公开报告中有所描述。Ghostwriter 活动背后的参与者与白俄罗斯政府的间谍活动密切相关,而最常见的 APT 名称是UNC1151 (Mandiant) 或UAC-0057 (CERT-UA)。一些公开报告可能会交替使用术语“Ghostwriter APT”来指代威胁行为者及其相关活动。
先前对 Ghostwriter 演变的研究指出,它如何在一系列平台上成功运作,将信息操纵与黑客攻击相结合,以多个欧洲国家为目标。2022 年至 2024 年的报告描述了使用恶意 Excel 文档传递 PicassoLoader 和 Cobalt Strike 有效载荷的活动。观察到的文档诱饵围绕与乌克兰军方有关的问题以及可能针对国防部的问题展开。
SentinelLABS 观察到新的活动,多个武器化的 Excel 文档包含与乌克兰政府、乌克兰军方和白俄罗斯国内反对派利益有关的诱饵。虽然我们观察到的一些 TTP 与之前的报告重叠,但其他一些是新的,包括对之前观察到的有效载荷(如 PicassoLoader)的改编。
武器化 XLS 1 | “明斯克法院的政治犯”
SentinelLABS 分析了一次攻击,该攻击始于一个 Google Drive 共享文档进入目标收件箱。该电子邮件来自一个名为“Vladimir Nikiforech”的帐户(vladimir.nikiforeach@gmail[.]com
)。电子邮件链接指向一个可下载的 RAR 存档,根据内部时间戳,该存档创建于 2025-01-14 00:47:54,其中包含一个恶意 Excel 工作簿(ebb30fd99c2e6cbae392c337df5876759e53730d
),文件名为политзаключенные(по судам минска).xls
(“Political prisoners (across courts of Minsk).xls”)。
诱饵的标题表明 Ghostwriter 攻击目标发生了有趣的变化。尽管 2021 年 Ghostwriter 攻击活动的归因指向白俄罗斯国家,但这是我们第一次看到直接针对白俄罗斯政府反对派的诱饵。攻击的时间可能是受2025 年 1 月 26 日不久后举行的总统选举的推动。
XLS 文档包含一个混淆的 VBA 宏,当打开文档并且用户允许 Office 宏运行时,该宏会被激活。
XLS 电子表格中的混淆宏
执行时,宏将文件写入%Temp%\Realtek(r)Audio.dll
。
使用以下命令行调用加载 DLL 文件:
C:\Windows\System32\regsvr32.exe /u /s "C:\Temp\Realtek(r)Audio.dll”
这将启动标准 Windows 进程regsvr32.exe
,该进程调用DllUnregisterServer
DLL 内部实现的函数;然后该函数加载并执行接下来描述的 .NET 程序集。
分析显示,这是一个嵌入了 .NET 程序集的 DLL 文件。该文件受ConfuserExDwnldr.dll
保护, ConfuserEx是一种公开可用的工具,可帮助混淆 .NET 程序,在之前的 Ghostwriter 活动中也曾出现过。
该 DLL 文件承载的有效载荷似乎是 PicassoDownloader 的简化变体,PicassoDownloader 是一个与 Ghostwriter 活动有关的恶意软件家族。内部文件名 ( Dwnldr.dll
) 以前曾被 Ghostwriter 威胁行为者使用;然而,此变体与以前的版本只有高层次的相似性,底层代码有重大更改,可能是为了使其成为一种更便宜、更易使用的工具。
作为混淆器提供的应用程序保护的一部分,下载程序会在内存中创建自身的副本,然后对其进行修改。它通过解密程序集的其他代码来实现这一点。它还使用了一种巧妙的规避技术,在内存中更改自己的 PE 标头并破坏与 .NET 程序集的内部链接。这使得安全产品无法将其解析为 .NET 模块。
在代码执行期间,保护层将控制权传递给核心功能后,下载程序会将诱饵 Excel 工作簿文件写入 Web%AppData%\Roaming\Microsoft\temp.xlsx
并从 Web 下载其他文件。
诱饵文件temp.xlsx
(18151b3801bd716b5a33cfc85dbdc4ba84a00314
)会立即在 Excel 中打开,试图让受害者相信它包含политзаключенные (по судам минска).xls
文件的原始内容。
诱饵文件,其中包含刑事指控人员名单以及检察官和法官的姓名
电子表格中包含了被指控犯罪的人员姓名以及检察官和法官的姓名:这些内容让读者相信这些信息可能是从政府渠道泄露的。然而,这些信息已经属于公共领域,可以在被禁的白俄罗斯人权组织Spring96的网站上找到。
一旦打开诱饵 Excel 文件,下载程序就会尝试从以下 URL 获取下一阶段:
https: // everythingandthedog [.]shop/petsblog/2020/ 2 / 25 /tips- for -taking-difficult-dogs-on-a-walk.jpg
从 C2 获取的 JPG 图像文件
我们注意到,2024 年发现的其他 Ghostwriter 活动中也报告了该.shop
顶级域名。
当恶意软件发出 HTTP 请求时,它会使用硬编码的 User-Agent 字符串:
Mozilla/5.0(Macintosh;Intel Mac OS X 10_15_7)AppleWebKit/555.36(KHTML,如 Gecko)Chrome/97.0.4692.71 Safari/537.36
所获取的文件 ( 8d2bb96e69df059f279d97989690ce3e556a8318
) 是一个良性的 JPEG 文件,源自公开可用的照片库,没有额外的有效载荷或任何可以嵌入代码的隐藏洞穴。我们确认可以在网上找到一个相同的文件,位于与攻击者使用的几乎相同的网站上。看来攻击者不仅重用了合法网站上的 JPG 文件内容,还复制了其原始 URL,仅更改了顶级域名:
https://www.everythingandthedog.com/petsblog/2020/2/25/tips- for - taking - difficult - dogs - on - a - walk
。
文件下载后,将被重命名并保存为%APPDATA%\Roaming\Microsoft\SystemCertificates\CertificateCenter.dll
。
稍后,它会通过利用注册表运行键注册为在自动启动期间加载:
HKCU\System\Software\Microsoft\Windows\CurrentVersion\Run\Microsoft 证书中心
其值指向扩展的环境变量字符串:
rundll32.exe C : \用户 \应用程序数据\漫游\微软\系统证书\证书中心.dll,#1
此注册表项使得rundll32.exe
每当用户登录时都加载 DLL 并以序数 1 执行其导出的函数。
Weaponized XLS 1 恶意软件阶段概述
在我们的分析过程中,我们只观察到下载的是良性的 JPG 文件。但是,根据代码分析,我们认为真正的目标会收到一个实际的 DLL。我们假设这种有针对性的负载传递过程受到攻击者的精心控制,并且他们仅在确认请求客户端的配置文件(浏览器用户代理、客户端的 IP 地址和操作窗口的匹配时间)后才传递负载。在之前的活动中的研究发现,只有当主机 IP 位于乌克兰时,Cobalt Strike 负载才会传递给目标。
考虑到攻击的时间和目标,我们推测这可能不是孤立事件。进一步的研究使我们发现了其他与武器化 XLS 1 非常相似的样本,这表明已经计划或执行了使用相同技术的多起攻击。这些疑似攻击中使用的样本如下所述。
武器化 XLS 2 | 乌克兰政府“反腐败倡议”
带有乌克兰名称的文件Zrazok.xls
(“Sample.xls”)是一个嵌入了混淆的 VBA 宏的 XLS 文件(301ffdf0c7b67e01fd2119c321e7ae09b7835afc
)。但是,脚本代码和混淆技术与我们之前讨论的情况不同。
对于此脚本,攻击者使用了一种流行的混淆工具Macropack,这是一个开源但似乎已被放弃的项目,最初是为红队和渗透测试练习而开发的。
在电子表格中发现 Macropack 混淆的 VBA 宏
与上一个案例一样,一旦执行宏代码,.NET ConfuserEx 混淆的下载程序 DLL(写入%AppData%\Roaming\Microsoft\bruhdll32.dll
)就会加载rundll32.exe
相应的命令行参数来运行导出函数。此后,新模块会投放一个诱饵 XLS 文件并使用 Excel 打开它。
为乌克兰读者准备的诱饵文件(乌克兰政府机构反腐败行动计划)
该模块尝试从以下 URL 下载下一阶段(撰写本文时不可用):
https: // sciencealert [.]shop/images/2024/ 11 /black-hole-coronaxx.jpg
当恶意软件发出 HTTP 请求时,它使用硬编码的 User-Agent 字符串,与前一种情况略有不同:
Mozilla/5.0(Macintosh;Intel Mac OS X 10_15_7)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/97.0.4692.71 Safari/537.36
值得注意的是,该文件( )此前已于 2024 年 12 月 19 日52e894acf0e14d27f8997d2174c1f40d6d87bba9
上传至VirusTotal 。
从恶意 URL 获取的图像文件
与前一种情况一样,该图像文件及其 URL 路径似乎是从 2024 年 11 月 16 日发布的公共博客中复制而来:
https://www.sciencealert.com/scientists-reveal-the-shape-of-a-black-holes-corona-for-the-very-first-time
再次,恶意服务器上的文件名和路径与合法文件名几乎相同,攻击者仅将顶级域名从.com
更改为.shop
。
https://www.sciencealert.com/images/2024/11/black-hole-coronaxx.jpg
在这种情况下,下载的文件应该是 GZIP 格式的存档。下载后,恶意软件会将其解压缩并保存到以下位置:
%APPDATA%\漫游\微软\系统证书\证书中心.dll
它还会在以下位置创建一个附加文本配置文件:
%APPDATA%\Roaming\Microsoft\SystemCertificates\config
配置文件包含以下数据:
The config file contains the following data:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<AssemblyName>Certificate</AssemblyName>
<OutputPath>Bin</OutputPath>
</PropertyGroup>
<ItemGroup>
<Compile Include="CertificateCenter.dll" />
</ItemGroup>
<Target Name="Build">
<MakeDir Directories="
(OutputPath)"Condition="!Exists(′
(OutputPath)')" />
<Csc Sources="@(Compile)" OutputAssembly="
(OutputPath)
(AssemblyName).exe" />
</Target>
</Project>
下载程序使用配置文件来执行MSBuild.exe
,指示它构建一个新的应用程序:
C : \ Windows \ Microsoft .NET \ Framework \ v4.0.30319 \ MSBuild.exe % AppData % \ Roaming \ Microsoft \ SystemCertificates \ config
这表明该CertificateCenter.dll
文件不是文件扩展名所暗示的二进制文件,而是包含程序源代码。如果成功,该命令将在以下位置生成可执行文件:
%AppData%\ Roaming \ Microsoft \ SystemCertificates \ Bin \证书.exe
并可能包含感染链的下一阶段。
Weaponized XLS 2 恶意软件阶段概述
武器化 XLS 3 | “为乌克兰武装部队提供补给”
带有乌克兰名称的文件Донесення 5 реч - зразок.xls
(“报告 5 项 - sample.xls”)是一个 XLS 文件(9d110879d101bcaec7accc3001295a53dc33371f
),其中托管了另一个使用 Macropack 混淆的 VBA 有效负载。
与前面的情况一样,一旦执行宏代码,.NET ConfuserEx 混淆的下载程序 DLL(写入%AppData%\Roaming\Microsoft\bruhdll32.dll
)就会加载rundll32.exe
相应的命令行参数来运行导出的函数。此后,新模块会在磁盘上放置一个诱饵 XLS 文件并使用 Excel 打开它。
为乌克兰读者准备的诱饵文件(乌克兰武装部队提供的报告模板)
再次,恶意软件使用相同的有效载荷检索技术并从另一个.shop
域下载 JPG 文件:
https: //cookingwithbooks[. ]shop/images/qwerty.jpg
在撰写本文时,该 URL 不可用,但来自 VirusTotal 的数据表明,下载的文件与上文“Weaponized XLS 2”部分中描述的黑洞图像相同。恶意软件逻辑也与 Weaponized XLS 2 相同。
Weaponized XLS 4 & 5 | 变种
除了之前的发现外,我们还发现了更多类似的相关 XLS 文件。文件Донесення 5 реч фонд зборів- зразок.xls
(“报告 5 项收集基金-sample.xls”; 2c06c01f9261fe80b627695a0ed746aa8f1f3744
)和Додаток 8 реч новий.xls
(“新增 8 项新内容-sample.xls”; 853da593d2a489c2bd72a284a362d7c68c3a4d4c
)于 2025 年 2 月首次从乌克兰上传。
这两个文件都包含一个经过 Macropack 混淆的 VBA 宏;但它们的结构不同。从功能上讲,两者都将 DLL 放入前面提到的路径%AppData%\Roaming\Microsoft\bruhdll32.dll
。
再次,DLL 被加载,rundll32.exe
并带有相应的命令行参数来执行导出函数。接下来,受害者会看到 Excel 中打开了一个诱饵工作簿。
为乌克兰读者准备的诱饵文件(乌克兰武装部队提供的报告模板)
这两个诱饵很相似,而且混淆技术、代码结构和嵌入的 URL 都是相同的:
https: //pigglywigglystores[ .]shop/wp-content/themes/fp-wp-j-piggly-wiggly-nc/resources/images/logo/logo.png
但是,HTTP 请求中的 User-Agent 字符串有所不同,其操作系统和体系结构指定为“Windows NT 10.0;Win64;x64”。
用户代理:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,如 Gecko) Chrome/97.0.4692.71 Safari/537.36 Edg/97.0.1072.71
LibCMD.dll
这些恶意软件变体还包含另一个嵌入式 .NET DLL,在内部从原始文件名( )中称为 LibCMD 4ae6b8adc980ba8a212b838f3ca6a9718d9a3757
。这是一个小文件,其目的只是启动cmd.exe
并连接到 stdin/stdout。
该文件包含被篡改的 PE 链接时间戳。它永远不会保存到磁盘;而是作为 .NET 程序集动态加载到内存中并执行。
Weaponized XLS 4 & 5 恶意软件阶段概述
归因
分析威胁行为者使用的技术通常有助于确定攻击的来源及其使用的恶意软件。在本例中,我们分析的所有样本都使用了非常具体的混淆技术,这使我们能够在它们与名为 PicassoLoader(一种下载工具包)的恶意软件集群之间建立中等可信度的联系。
PicassoLoader 已被用于针对乌克兰和波兰的政府、军队和平民实体的网络攻击,并且与 Ghostwriter 威胁行为者(_又名_UNC1151、UAC-0057、Blue Dev 4、Moonscape、TA445)有独家联系。
在整个 2024 年,Ghostwriter 多次使用包含 Macropack 混淆的 VBA 宏的 Excel 工作簿和使用 ConfuserEx 混淆的嵌入式 .NET 下载程序。在我们的案例中,Downloader 恶意软件似乎是 PicassoLoader 的简化实现。
结论
Ghostwriter 威胁行为者在过去几年中一直很活跃,并继续试图攻击与白俄罗斯及其最亲密盟友俄罗斯的利益一致的目标。据 CERT UA 和其他安全研究人员报告,它在 2024 年发动了多次攻击。
虽然白俄罗斯没有积极参与乌克兰战争的军事行动,但与其相关的网络威胁行为者似乎毫无保留地对乌克兰目标开展网络间谍行动。
Indicators of Compromise
Weaponized Excel Workbooks and Decoys
SHA-1 | File Name |
18151b3801bd716b5a33cfc85dbdc4ba84a00314 | temp.xlsx |
2c06c01f9261fe80b627695a0ed746aa8f1f3744 | Донесення 5 реч фонд зборів- зразок.xls |
301ffdf0c7b67e01fd2119c321e7ae09b7835afc | Zrazok.xls |
853da593d2a489c2bd72a284a362d7c68c3a4d4c | Додаток 8 реч новий.xls |
9d110879d101bcaec7accc3001295a53dc33371f | Донесення 5 реч – зразок.xls |
ebb30fd99c2e6cbae392c337df5876759e53730d | политзаключенные (по судам минска).xls |
Downloaders
18bcc91ad3eed529d44926f4ae65acf44480f39d
64fca582cb69d9dc2afb1b432df58fb32ac18ca1
7261ad5d4e760aa88df94b734bc44598a090852a
9fa00a4ee4e95bc50a3919d2d3c0be2a567d8845
e5ebc7deca1ff1f0a4b1462d37ef813dad8413a6
LibCMD helper file
4ae6b8adc980ba8a212b838f3ca6a9718d9a3757
C2 Domains
americandeliriumsociety[.]shop
cookingwithbooks[.]shop
everythingandthedog[.]shop
pigglywigglystores[.]shop
sciencealert[.]shop