在10月6至7日的Hacktivity 2022安全节中,有研究人员介绍了一个针对东南亚网络赌场开发和运营环境的有趣的APT活动。
研究人员在报告中将这个APT活动称为“DiceyF”。据报道,攻击者多年来一直以东南亚的网络赌场为目标。研究显示,该活动与LuckyStar PlugX活动有很多相似之处,另外,TTP、安全消息传递客户端滥用、恶意软件和目标定位表明,这个活动和趋势科技研究人员在Botconf 2022上讨论的Earth Berberoka/GamblingPuppet活动一致。
在目前已发现的DiceyF事件中,还没有观察到直接的经济动机或现金盗窃的证据。相反,TrendMicro研究人员此前报告的事件显示,客户PII数据库被窃取和源代码被窃取。攻击者目前的真正的攻击动机仍然是一个谜。
攻击行为分析
检测的攻击行为包括:
PlugX安装程序由来自安全消息客户端开发工作室的潜在被盗数字证书签名;
恶意软件通过员工监控系统和安全包部署服务分发;
不同的.NET代码使用相同的潜在被盗证书签名,并回调到与PlugX C2相同的域;
2021年11月,研究人员在同一个网络中检测到多个PlugX加载程序和有效负载,这通常是一个令人厌倦的研究主题。然而,这一次,PlugX安装程序三元组(PlugX installer triad)通过两种方式部署为使用合法数字证书签名的可执行文件——员工监控服务和安全包部署服务。这个合法的数字证书似乎是从一个用于安全消息传递客户端的开发和构建工作室中窃取的。这些PlugX有效负载通过apps.imangolm[.]com与C2通信。不久之后,同样的安全包部署服务被用于推送GamePlayerFramework下载程序,这些下载程序与相同的C2进行通信,并使用相同的数字证书签名。
进一步的研究显示,目标配置文件建议网络赌场开发工作室,然后在不同的网络上招募/外包开发系统。.NET下载程序部署与PlugX部署同时出现,都是通过相同的数字证书签署的。
这些下载程序使用“PuppetLoader”文件路径维护PDB字符串,这些PuppetLoader字符串非常熟练地将多级加载程序与过去的PuppetLoader下载程序连接起来,只是这一次用c#重新设计和重写。过去的PuppetLoader是用c++编写的,维护显式字符串:
新的 .NET代码维护着类似的字符串,反映的是几年前的代码库。
在我们对这些发现进行分析和报告的同时,来自趋势科技的人员在Botconf会议上报告了GamblingPuppet/Earth Berberoka的研究。我们非常有信心认为这个DiceyF GamePlayerFramework活动是一个新开发的核心恶意软件集的后续活动。这个新的APT活动,即DiceyF,将之前报告的GamblingPuppet和Operation DRBControl资源和活动进行了重新设计,以下是我们在早期数据中观察到的活动:
PlugX和PuppetLoader多级加载程序;
东南亚的网络赌场目标;
缺乏表明财务动机的证据(趋势科技观察到DRBControl操作中客户数据库和源代码泄露);
正在使用的中文语言,特别是GamePlayerFramework错误字符串和插件名称和路径;
通过后门窃取数据的重点包括击键和剪贴板;
被盗数字证书的再利用;
隐藏安全消息传递客户端作为恶意软件的传输工具和恶意活动的伪装物;
GamePlayerFramework是前面提到的PuppetLoader c++ /汇编恶意软件的一个完整的c#重写。这个“框架”包括下载程序、启动程序和一组提供远程访问和窃取击键和剪贴板数据的插件。更新的(2022年夏季)可执行文件大部分都是用.NET v4.5.1编译的64位 .NET文件,但也有一些是32位或dll文件,用 .NET v4.0编译。这个框架至少有两个分支,“Tifa”和“Yuna”,并且两个分支都维护新的模块,并随着时间的推移而逐步修改:
D:\Code\Fucker\GamePlayerFramework\Tifa\*.pdb;
C:\Users\fucker\Desktop\Fucker\GamePlayerFramework\Tifa\*.pdb;
D:\Code\Fucker\GamePlayerFramework\Yuna\*.pdb;
奇怪的FinalFantasy代码
游戏玩家可能熟悉日本Square软件公司设计的电子游戏Final Fantasy(最终幻想),其中Tifa和Yuna是其中的两个主要角色。Tifa和Yuna分支彼此不同:Tifa分支只包括一个下载程序和一个“核心”模块,Yuna分支包括下载程序、插件和各种PuppetLoader组件,总共至少有十几个。即使下载程序之间也有很大的不同。事实上,Yuna.Downloader代码会随着时间的推移而发生相当大的变化,包括JSON解析,日志记录和加密功能。
Tifa代码分支于2021年11月首次部署给受害者,这些Tifa下载程序比后来的Yuna下载程序保持了更原始的功能。此外,11月的代码签署协调工作似乎没有很好地组织起来。除了一个已签名的Tifa可执行文件外,与Yuna下载程序不同,三个Tifa下载程序中的两个是未签名的代码。
最初的Tifa下载程序已经使用了“Mango”和“Mongo”函数名,就像Yuna下载程序中发现的工件一样,以及前面提到的apps.imangolm[.]com C2植入程序。后来,Yuna下载程序的文件名为 “mango.exe”。Tifa.Downloader变体中的两个引入了 “DownloaderVersion” 字符串,攻击者可能会在服务器端保持向后兼容性。一些后来的Yuna.Downloader变体增加了功能和复杂性,但是多个早期变体和Tifa分支非常简单。
加载框架
下载和持久化设置完成后,多个组件将加载框架。加载框架的整个过程可以用下图概括:
此加载顺序导致运行“Launcher”组件。尽管名曰“Launcher”,但此模块的主要功能是不执行启动。相反,它是框架的协调器,即它管理所有框架组件。启动完成后,协调器每20秒向C2服务器发送一次运行报文。每个这样的数据包都是XOR加密的JSON对象,其中包含以下信息:
1、登录用户的用户名;
2、当前用户会话状态 (锁定或解锁);
3、剪贴板记录插件收集的日志的大小;
4、当前日期和时间;
用15个命令中的一个响应C2,命令名称、命令参数和描述如下:
1、PluginKeepAlive, KeepAlive,N/A,用最近的C2响应时间更新内部时间戳;
2、PluginDestory [sic],N/A,关闭框架;
3、GetSystemInfo,N/A,检索各种系统信息,即:
本地网络IP地址;
可用权限(系统、管理员或普通用户);
用于C2通信的网络协议(在所有发现的示例中硬编码到Tcpv4);
框架版本(格式为 yyyymmdd.xx,如20220506.00);
下载模块版本;
CPU名称;
可用内存;
操作系统版本;
已使用的C2服务器地址;
剪贴板记录器日志的大小;
安装安全解决方案;
BIOS序列号;
MAC地址;
机器启动时间;
4、FastCmd;Command:要执行的命令;允许执行shell命令,这个命令创建一个新的cmd.exe进程,带有重定向的标准输入和输出,并向它发送命令,执行命令的输出返回到C2服务器;
5、Getdomainsetting,N/A,将配置中指定的C2服务器列表发送到当前C2服务器;6、SetDomainSetting,DomainConfig:新C2服务器的IP地址和端口,通过将新的C2服务器地址写入C:\ProgramData\NVIDIA\DConfig文件来更新配置中的C2服务器列表;
7、GetRemotePluginInfo,PluginName:已安装插件的名称,检索本地安装的插件的版本;
8、RunPlugin,PluginName:要启动的插件名称,SessionId:要在其中启动插件的会话ID,从C2服务器下载插件并启动它;
9、DeleteGuid,N/A,通过创建一个批处理文件从设备上删除感染,该文件删除框架安装程序释放的所有文件,除了rascustoms.dll,执行删除后,批处理文件将自我删除;
10、Fastdownload,FilePath:待上传文件的路径,从受害设备上传文件;
11、Cacheplugin,PluginName:插件名称,PluginVersion:插件的版本,从C2服务器下载插件,但不启动它;
12、Installplugin,PluginName:要启动的插件名称,WaitForExitTimeout:超时时间间隔,在受害设备上启动一个插件,等待插件进程完成,在超时的情况下,协调器会阻止插件进程;
13、remoteinject ,SubMsg:等于RunVirtualDesktop或DestoryVirtualDesktop的字符串,启动(如果SubMsg是RunVirtualDesktop)或停止(如果SubMsg是DestoryVirtualDesktops)VirtualDesktop插件;
14、ChromeCookie,SubMsg:等于RunChromeCookie或GetCookiePath的字符串,如果SubMsg是RunChromeCookie,启动ChromeCookie插件,如果参数字符串是GetCookiePath,则返回存储Chrome cookie的路径;
15、FirefoxCookie,等于RunChromeCookie或GetCookiePath的字符串,如果参数字符串是GetCookiePath,则返回存储Chrome cookie的路径。
插件概述
插件是执行大多数框架恶意活动的EXE文件。插件可以配置为在框架启动时从C2服务器下载,或者使用上述命令之一在任何其他时间加载。在执行过程中,插件可以连接到C2服务器并从中接收命令。有关运行插件的信息存储在C:\ ProgramData \ NVIDIA \ DisplaySessionContainer1.ini文件中。
该框架的所有插件都以无文件的方式存储。每当从C2服务器下载插件时,都会按照以下过程将其加载到框架中:
1.orchestrator选择从10000到20000的随机端口,并在其上启动本地TCP套接字服务器;
2.orchestrator在挂起模式中创建一个新的svchost.exe进程,并注入在“加载框架”一节中提到的api-ms-win-core-sys- g1 -0-5.dll库。
3.注入的库使用以下参数加载PuppetLoader.Downloader组件:带有插件payload> -Port
4.Yuna.PuppetLoader.Downloader组件从本地TCP服务器下载插件可执行文件,并使用Load加载它。
orchestrator组件的字符串引用以下插件名称:
Plugin.(Acquisition System;
Plugin.Hidden Process;
Plugin.SSH;
Plugin.General Purpose Plugin;
Plugin.SessionCmd;
Plugin.Port Forwarding;
Plugin.Screen Transfer;
Plugin.Virtual Desktop;
Plugin.Clipboard;
Plugin.ChromeCookie;
Plugin.FirefoxCookie;
在跟踪GamePlayerFramework的部署时,我们注意到上面列出的几个插件正在被使用:通用插件、剪贴板和虚拟桌面。
带有图形界面的恶意应用程序
通过安全解决方案安装包部署的应用程序旨在模仿同步芒果消息应用程序数据的应用程序。以下是此应用程序启动时显示给受害者的窗口:
恶意 “芒果员工账户数据同步器” 窗口
为了使受害用户信任恶意窗口,攻击者采用了社会工程技术。从上面的截图可以看出,这些信息包括受害组织的名称,甚至包括该组织IT部门所在的楼层。同时,可见窗口使该应用程序对安全解决方案的可疑性降低。
启动时,此应用程序会进行如下操作:
通过TCP套接字连接到C2服务器,服务器的地址和端口在二进制文件中指定。如果连接失败,应用程序将显示带有 “无法连接到芒果员工数据同步服务器!请反馈至其他部门!”字样。
向C2服务器发送以下信息:
安装的芒果信使版本;
设备名称;
当前用户名;
操作系统版本;
本地IPv4地址列表;
接收一个包含名为IsErrorMachine的布尔值的JSON对象。如果设置为true,则应用程序将显示一个包含“尚未认证的设备,请到10楼的it部添加设备认证”文本的消息窗口并退出;
启动与应用程序位于同一目录中的exe可执行文件,这个文件的内部名称是Yuna.Downloader。
代码处于持续的增量变化中,它的版本控制反映了对代码库修改的半专业管理。随着时间的推移,该团队增加了对Newtonsoft JSON库的支持,增强了日志记录和日志加密。
基础设施
如上所述,许多早期植入(包括PlugX和下载程序)的通信活动通过为位于东南亚的基础设施解析FQDN来回调基础设施。到2022年4月,有些Yuna.Downloader开始直接与一个硬编码的IP地址通信。
总结
DiceyF活动的ttp和很多恶意活动都存在相似之处,该组织会随着时间的推移修改他们的代码库,并在整个攻击过程中开发代码中的功能。
GamePlayerFramework使DiceyF背后的攻击者能够以某种程度的隐身方式执行网络间谍活动。初始感染方法是值得注意的,因为该框架是通过安全解决方案控制中心部署的安装包进行传播的。此外,该框架的组件使用数字证书进行签名,这使得安全解决方案更信任该框架。为了进一步伪装恶意组件,攻击者为其中一些组件添加了图形界面。这种恶意植入被伪装成在受害组织中使用的信使组件。为了确保受害者不会对伪装的植入物产生怀疑,攻击者获取了目标组织的信息(例如该组织IT部门所在的楼层),并将其包含在显示给受害者的图形窗口中。他们还使用了服务名称、文件路径、数字签名证书和来自NVIDIA、Mango和其他正版软件的其他构件。GamePlayerFramework的插件允许对受害机器进行全面的监视。例如,他们能够监视击键和剪贴板,浏览位于组织本地网络内的网站,或建立虚拟桌面会话。在近几个月的时间里,DiceyF开发人员增加了更多的加密功能,以更好地隐藏他们的日志记录和监控活动。在未来,我们期望看到插件数量的增加,并观察到在这个框架中更多不寻常的防御规避方法。
本文翻译自:https://securelist.com/diceyf-deploys-gameplayerframework-in-online-casino-development-studio/107723/如若转载,请注明原文地址