执行摘要
本文回顾了最近发现的 FalseFont 后门,该后门被疑似与伊朗有关联的威胁行为者使用,Unit 42 将其追踪为 Curious Serpens。Curious Serpens(又名Peach Sandstorm)是一个著名的间谍组织,此前曾以航空航天和能源领域为目标。FalseFont 是 Curious Serpens 的最新工具。我们分析的示例显示了威胁行为者如何模仿合法的人力资源软件,使用虚假的工作招聘流程来欺骗受害者安装后门。
我们深入的技术分析将帮助安全专业人员更好地了解 FalseFont 并更有效地防御这种威胁。本文重点分析新发现的FalseFont后门及其功能。最后,我们将讨论检测和防止这种有针对性的后门的方法。
通过以下方式可以更好地保护 Palo Alto Networks 客户免受本文提到的威胁:
具有高级威胁防御安全订阅的下一代防火墙可以帮助阻止恶意软件 C2 流量
高级 URL 过滤和DNS 安全将已知的 C2 域和 IP 分类为恶意。
组织可以让Unit 42 事件响应团队针对此威胁和其他威胁提供具体帮助
Cortex XDR和Prisma 云计算与XSIAM平台相结合,有助于检测和预防本文提到的威胁
高级野火机器学习模型和分析技术已根据这种新恶意软件进行了审查和更新。
Curious Serpens和 FalseFont 背景
我们追踪的威胁行为者 Curious Serpens 也有其他名称,例如Peach Sandstorm、APT33、Elfin、HOLMIUM、MAGNALIUM或REFINED KITTEN。根据这些报告,Curious Serpens 至少自 2013 年起就一直活跃。该威胁参与者与间谍活动有关,并以中东、美国和欧洲的组织为目标。
2023 年 12 月,微软威胁情报指出,该威胁行为者开始使用新的后门,并将该后门识别为 FalseFont。到 2024 年 1 月底,我们看到了对 FalseFont 的首次公开分析。在这里,我们通过分享我们的观察结果以及有关我们已检测和阻止的流量和进程的附加信息来添加对 FalseFont 的分析。
FalseFont 后门是用 ASP .NET Core 编写的。其功能包括以下内容:
在受感染的机器上执行进程和命令
操作文件系统
捕获屏幕
从浏览器窃取凭据
窃取航空航天业工作申请平台的凭证,该平台可能包含敏感的航空航天数据
FalseFont 在野外被观察到,打包在一个大小为 182 MB 的本机可执行文件中。除了恶意软件本身之外,此可执行文件还包含恶意软件运行所必需的各种 .NET 组件和库。FalseFont 还使用ASP.NET Core SignalR,这是一个用于运行 Web 应用程序的开源库,用于与其命令和控制服务器 (C2) 进行通信。
针对航空航天和国防求职者
FalseFont后门是一个针对性很强的后门,据报道,它的目标是航空航天和国防行业的求职者。FalseFont 通过模仿图形用户界面 (GUI) 向一家美国航空航天公司提交工作申请来瞄准这些申请人。图 1 显示了应用程序的主窗口。
图 1. 在 Windows 计算机上运行 FalseFont 可执行文件后显示的登录面板
威胁行为者经常出于恶意目的模仿合法产品。这并不意味着被滥用的合法产品存在缺陷或恶意质量。
当 GUI 处于活动状态以供用户交互时,恶意软件的第二个也是主要组件正在后台运行。当它运行时,它会建立持久性并将自身注册到其 C2 服务器。
Cortex XDR 检测并阻止 FalseFont 的执行,如图 2 和 3 所示。
图 2. 警报显示 FalseFont 可执行文件在 Cortex XDR 处于检测模式时尝试进行恶意行为
图 3.Cortex XDR 显示它阻止了 FalseFont 恶意软件的执行
FalseFont技术分析
图形用户界面组件
FalseFont 可执行文件提供了一个冒充航空航天公司的登录界面,如图 1 所示。如果受害者输入用户名和密码,恶意软件就会通过 HTTP POST 请求以 JSON 格式将此数据发送到 64.52 上的威胁参与者的 C2 服务器。 80[.]30,通过 TCP 端口 8080。常规登录和访客登录的 URL 不同,如下图 4 和图 5 所示。
图 4. 以访客身份从 FalseFont GUI 登录时生成的 HTTP POST 请求
图 5. 使用 FalseFont GUI 常规登录时生成的 HTTP POST 请求
FalseFont GUI 的登录字段下方有一个标记为Remember Me 的复选框。如果受害者选中此框,用户名和密码将保存到%localappdata%下名为data.txt的文件中。将来启动应用程序时,如果data.txt文件已存在,威胁将自动将登录数据发送到 C2 服务器。如果该文件存在或 C2 服务器成功响应,则威胁会折叠登录视图并显示恢复收集页面,如图 6 所示。
图 6. FalseFont GUI 显示简历收集页面
一旦受害者填写了这些字段,FalseFont 就会将其内容转换为序列化 JSON,并将其作为 GET 请求发送到 C2 服务器的 IP 地址。如果C2服务器响应,GUI会显示文本“您的信息已注册,我们的同事将与您联系。” 简历数据保存到%localappdata%下名为data2.txt的文件中。
后门组件
初始化
在初始化期间,FalseFont 与其 C2 域建立第一次握手。该恶意软件收集并发送计算机主机名、登录用户名和操作系统详细信息。下面的图 7 显示了发送到 C2 的数据包,包括硬编码在 FalseFont 代码中的攻击者凭据。
图 7. 初始 C2 握手的 HTTP POST 请求的 TCP 流
FalseFont 可以使用以下命令行参数,这些参数在程序代码中称为AppReset和AppUpdate:
SsQP's*(58vaP!tF4 (AppReset)
SQP's*(58vaP!tF4 (AppUpdate)
这些参数让恶意软件知道 C2 服务器是否已发送重置或更新请求。接下来,FalseFont 尝试创建值为864H!NKLNB*x_H?5 的互斥体。如果互斥体已经存在,并且没有收到上述任何参数,则恶意软件将终止。
持续
FalseFont 使用以下不同的路径将自身的三个副本放入受感染的计算机中:
%username%AppDataRoaminghost.exe
%username%AppDataLocalbroker.exe
%username%AppDataLocalMicrosoftSystem.exe
下面的图 8 显示了 Cortex XDR 记录的文件写入操作。
图 8.来自关于 FalseFont 制作三个自身副本的 Cortex XDR 警报的信息
然后,FalseFont 将通过注册表CurrentVersionRun键创建一个新值,为所有三个副本建立持久性,如图 9 所示。
图 9. 用于在受感染的 Windows 主机上保持 FalseFont 持久性的注册表更新示例
启动后,只有后门组件会运行,不包括恶意软件的 GUI。此外,如果Run键中已经存在值,它将编辑第一个现有键,因此它还将执行FalseFont 的host.exe副本。无论哪个先启动,都会创建一个互斥体,该互斥体将终止其他两个实例。
Cortex XDR 检测到受感染计算机重新启动后 FalseFont 的持久性机制,如图 10 所示。
图 10.Cortex XDR 警报显示重启后启动的 FalseFont 持久副本
编码和加密方案
FalseFont 将硬编码配置存储为其代码的一部分,试图隐藏其某些字符串以阻碍对其功能的分析。该恶意软件的字符串以 Base64 进行编码,并使用硬编码的 AES 密钥进行加密。
作者并没有很好地隐藏威胁的功能,因为他们用与他们解密和解码的字符串类似的名称来标记大多数方法。下面的图 11 显示了一个示例,字符串在执行时被解码并解密为操作系统错误:
图 11. FalseFont 代码示例,其中嵌入的字符串被加密和编码
核心功能
FalseFont 有一系列可以从 C2 接收的命令。这些命令使攻击者能够执行以下活动:
执行命令和进程
下载和上传文件
接收有关文件系统的信息
更新恶意软件
窃取凭证
捕获受害者的屏幕
FalseFont 可以通过两种不同的方式接收来自 C2 的命令:
每 0-5 分钟向 C2 上的特定API 端点发送一次带有 URI /api/Core/Command/Init的GET请求
使用SignalR客户端
这两种方法使攻击者能够以两种不同的方式与 FalseFont 进行交互。通过使用第一种方法,攻击者能够通过每隔几分钟执行一次的预定义命令列表与后门进行通信。通过使用SignalR的第二种方法,攻击者能够实时向后门发送每个命令,而不必等待后门先发送请求。
如图 12 所示,与 C2 的通信采用硬编码密钥进行 AES 加密,然后进行 Base64 编码。密钥以及用于 C2 通信的 URL 列表可以在“妥协指标”部分中找到。
图 12. FalseFont 的代码片段显示了使用 AES 进行加密通信
支持的命令
下面的表 1 包含 FalseFonts 通过查询“ /Core/Command/Init ”URI 支持的命令。
表 1. C2 的init URI 支持的命令。
SignalR 客户端
SignalR是一个 ASP.NET 库,通常用于聊天应用程序,使服务器能够将内容实时推送到客户端。
与上一节中提到的每隔几分钟查询特定API 端点的方法相反,攻击者能够使用 SignalR 实时向后门发送命令。
FalseFont 使用 SignalR 默认的基于 JSON 的文本协议,这意味着攻击者的服务器以 JSON 格式发送消息,该消息由客户端注册的不同处理程序 (FalseFont) 处理和解析。来自 SignalR 服务器的消息包含名称和附加参数。
如图 13 所示,FalseFont 使用HubConnectionExtensions.On方法注册五个处理程序。注册后,SignalR 客户端将等待来自服务器的消息。当它收到消息时,它将检查消息名称是否与五个可能值之一匹配。如果名称匹配,则执行相应的方法,并将消息参数字段作为参数传入。
图 13. FalseFont 的 SignalR 消息注册处理程序
下面的表 2 显示了为 FalseFont 的 SignalR 客户端注册的处理程序的概述。
表 2. SignalR 客户端支持的命令。
凭证盗窃
通过检查 FalseFont 的凭证盗窃功能,我们发现,如果 FalseFont从 C2接收带有参数传递的命令CMD ,它将尝试从流行的 Web 浏览器窃取凭证。
此外,FalseFont 将尝试通过查询Loginvault.db数据库来窃取凭据,如图 14 所示。
图 14. FalseFont 代码显示了查询Loginvault.db文件的尝试
结论
本文对 FalseFont 进行了技术分析,FalseFont 是由疑似与伊朗有关联的威胁行为者 Curious Serpens 开发的新后门。我们回顾了 FalseFont 的运营商如何通过模仿特定于航空航天和国防工业的合法人力资源软件来瞄准这些行业。这种伪装的可执行文件最终会导致在招聘过程的幌子下安装后门。
然后,我们深入研究 FalseFont 的核心架构、功能及其复杂的界面,以实时接收来自威胁行为者的命令。我们还分析了威胁行为者选择的 C2 通信框架,其中包括双重通信机制的实施。
最后,我们还展示了 Cortex XDR 平台如何检测和阻止恶意软件的不同感染组件。
我们敦促安全专业人士和防御者仔细研究本报告,并利用所提供的信息来改进检测、预防和狩猎方面的现有实践,最终强化他们的整体安全立场。
妥协指标
FalseFont 打包的可执行 SHA256 哈希值:
364275326bbfc4a3b89233dabdaf3230a3d149ab774678342a40644ad9f8d614
FalseFont 解压后的可执行 SHA256 哈希值:
4145e792c9e9f3c4e80ca0e290bd7568ebcef678affd68d9b505f02c6acaab12
互斥体:
864H!NKLNB*x_H?5
持久化路径:
%username%AppDataRoaminghost.exe
%username%AppDataLocalbroker.exe
%username%AppDataLocalMicrosoftSystem.exe
C2 域:
Digitalcodecrafters[.]com
C2 IP:
64.52.80[.]30
C2用户名:
MX2
C2密码:
NooVtlXgx2T3IyN4I0Xf
Base 64 编码硬编码 AES IV:
viOIZ9cX59qDDjMHYsz1Yw==
Base 64 编码的硬编码 AES 密钥:
3EzuNZ0RN3h3oV7rzILktSHSaHk+5rtcWOr0mlA1CUA=
C2 URI 方案:
Login/
LoginAsGuest/
realtime/
api/
参考链接: https://unit42.paloaltonetworks.com/curious-serpens-falsefont-backdoor/#post-133071-_re5lfhtpycch
图片来源网络目标可联系删除