隐形矿工:揭秘 GHOSTENGINE 的加密货币挖矿行动

Elastic Security Labs 发现了 REF4578,这是一个包含多个恶意模块的入侵集,利用易受攻击的驱动程序来禁用已知的安全解决方案 (EDR),以进行加密货币挖矿。

阅读时间:25 分钟攻击模式
隐形矿工:揭秘 GHOSTENGINE 的加密货币挖矿业务

前言

Elastic 安全实验室发现了一个入侵集,该入侵集包含多个恶意模块,并利用易受攻击的驱动程序来禁用已知的安全解决方案 (EDR) 以进行加密挖掘。 此外,该团队还发现了建立持久性、安装以前未记录的后门以及执行加密矿工的功能。 我们将这组入侵集合称为 REF4578,将主要载荷称为 GHOSTENGINE(安天团队的切线研究将该入侵集合的部分内容命名为HIDDENSHOVEL )。

关键要点

  • 恶意软件作者融入了许多应急和复制机制
  • GHOSTENGINE 利用易受攻击的驱动程序终止并删除已知的 EDR 代理,这些代理可能会干扰已部署的知名挖矿程序
  • 此次活动涉及异常复杂的因素,以确保 XMRIG 矿工的安装和持久性

代码分析

On May 6, 2024, at 14:08:33 UTC, the execution of a PE file named Tiworker.exe (masquerading as the legitimate Windows TiWorker.exe file) signified the beginning of the REF4578 intrusion. The following alerts were captured in telemetry, indicating a known vulnerable driver was deployed.

执行后,该文件将下载并执行 PowerShell 脚本,该脚本负责协调入侵的整个执行流程。 分析表明,该二进制文件执行硬编码的 PowerShell 命令行来检索混淆的脚本get.png, ,该脚本用于从攻击者 C2 下载更多工具、模块和配置,如下面的屏幕截图所示。

GHOSTENGINE

GHOSTENGINE 负责检索和执行机器上的模块。 它主要使用 HTTP 从配置的域下载文件,并使用备用 IP 以防域不可用。 此外,它还采用 FTP 作为带有嵌入式凭证的辅助协议。 以下是执行流程的摘要:

该脚本会下载并执行clearn.png ,这是一个组件,用于清除系统中来自同一家族但不同活动的先前感染的残余;它会删除C:\Program Files\Common Files\System\adoC:\PROGRA~1\COMMON~1\System\ado\下的恶意文件,并按名称删除以下计划任务:

  • Microsoft Assist Job
  • System Help Center Job
  • SystemFlushDns
  • SystemFlashDnsSrv

这些计划任务工件的证据可能是先前感染的指标。

在执行过程中,它会尝试禁用 Windows Defender 并清除以下 Windows 事件日志通道:

  • Application
  • Security
  • Setup
  • System
  • Forwarded Events
  • Microsoft-Windows-Diagnostics-Performance
  • Microsoft-Windows-AppModel-Runtime/Operational
  • Microsoft-Windows-Winlogon/Operational

get.png 禁用 Windows Defender、启用远程服务并清除以下内容:

  • C:\Windows\Temp\
  • C:\Windows\Logs\
  • C:\$Recycle.Bin\
  • C:\windows\ZAM.krnl.trace

get.png 还验证C:\卷是否至少有 10 MB 的可用空间来下载文件,并将其存储在C:\Windows\Fonts中。 如果没有,它将尝试从系统中删除大文件,然后寻找另一个具有足够空间的合适卷并在$RECYCLE.BIN\Fonts下创建一个文件夹。

为了获取 C2 域名的当前 DNS 解析,GHOSTENGINE 使用了硬编码的 DNS 服务器列表1.1.1.18.8.8.8

接下来,为了建立持久性, get.png将以SYSTEM的身份创建以下计划任务:

  • OneDriveCloudSync使用msdtc 每 20 分钟运行一次恶意服务 DLL C:\Windows\System32\oci.dll (稍后介绍)
  • DefaultBrowserUpdate运行C:\Users\Public\run.bat,它会下载get.png脚本并每 60 分钟执行一次
  • OneDriveCloudBackup每 40 分钟执行C:\Windows\Fonts\smartsscreen.exe

get.png 终止所有curl.exe进程以及命令行中带有*get.png*的任何 PowerShell 进程(当前进程除外)。 这是终止任何同时运行的恶意软件实例的一种方法。

然后,该脚本下载config.txt ,这是一个 JSON 文件,其中包含其检索到的 PE 文件的哈希值。 该文件通过检查过去感染的先前下载的文件的哈希值来验证是否要下载任何更新的二进制文件。

最后, get.png下载其所有模块和各种 PE 文件。 下面是包含每个下载文件描述的表格:

路径类型描述
C:\Windows\System32\drivers\aswArPots.sys内核驱动程序Avast 存在漏洞的驱动程序
C:\Windows\System32\drivers\IObitUnlockers.sys内核驱动程序IObit 的易受攻击的驱动程序
C:\Windows\Fonts\curl.exePE可执行文件用于通过 cURL 下载文件
C:\Windows\Fonts\smartsscreen.exePE可执行文件核心载荷(GHOSTENGINE),其主要目的是停用安全仪表,完成初始感染,并执行矿工。
C:\Windows\System32\oci.dll服务 DLLPersistence/updates module
backup.pngPowershell 脚本Backdoor module
kill.pngPowershell 脚本注入并执行 PE 文件的 PowerShell 脚本,负责终止安全传感器

GHOSTENGINE 模块

GHOSTENGINE 部署了多个模块,可以篡改安全工具、创建后门并检查软件更新。

EDR 代理控制器和矿工模块:smartsscreen.exe

该模块主要在下载和安装加密矿工之前终止任何活动的 EDR 代理进程。

该恶意软件会扫描所有正在运行的进程,并将它与已知 EDR 代理的硬编码列表进行比较。 如果有任何匹配,它会首先利用 Avast Anti-Rootkit 驱动文件aswArPots.sys和 IOCTL 0x7299C004通过 PID 终止进程,从而终止安全代理。

smartscreen.exe 然后使用另一个易受攻击的驱动程序iobitunlockers.sys (来自 IObit)和 IOCTL 0x222124删除安全代理二进制文件。

smartscreen.exe 然后以taskhostw.png身份从 C2 服务器下载 XMRig 客户端挖矿程序( WinRing0x64.png )。 最后,它执行XMRig、其驱动程序和配置文件config.json ,启动挖矿过程。

Update/Persistence module: oci.dll

PowerShell 脚本创建服务 DLL ( oci.dll ),即由msdtc加载的幻像 DLL。 DLL 的架构根据机器而有所不同;它可以是 32 位或 64 位。 其主要功能是通过从 C2 下载get.png脚本并执行它来创建系统持久性并从 C2 服务器下载任何更新。

每次msdtc 服务启动时,它都会加载oci.dll来生成执行get.png的 PowerShell 单行命令:

EDR代理终止模块: kill.png

kill.png 是一个 PowerShell 脚本,它将 shellcode 注入当前进程,解密 PE 文件并将其加载到内存中。

该模块用 C++ 编写,作者已将冗余功能集成到其操作中。 这种冗余在复制smartsscreen.exe中用于终止和删除 EDR 代理二进制文件的技术时很明显;它会持续扫描任何新进程。

Powershell后门模块: backup.png

PowerShell 脚本的功能类似于后门,可以在系统上执行远程命令。 它在等待 base64 编码的命令时不断发送包含唯一 ID 的 Base64 编码的 JSON 对象,该 ID 源自当前时间和计算机名称。 然后将这些命令的结果发回。

在此示例中, eyJpZCI6IjE3MTU2ODYyNDA3MjYyNiIsImhvc3QiOiJhbmFseXNpcyJ9是 Base64 编码的 JSON 对象:

$ echo "eyJpZCI6IjE3MTU2ODYyNDA3MjYyNiIsImhvc3QiOiJhbmFseXNpcyJ9" | base64 -D
{"id":"171568624072626","host":"analysis"}

矿工配置

XMRig 是一个合法的加密矿工,他们在这里记录了配置文件的使用和元素。 正如本文开头所述,REF4578 入侵套件的最终目标是获取环境访问权限并部署持久性 Monero 加密矿工 XMRig。

我们从矿工中提取了配置文件,这非常有价值,因为它允许我们报告 Monero 付款 ID 并跟踪工人和矿池统计数据、挖掘的加密货币、交易 ID 和提款。

以下是 REF4578 XMRig 配置文件的摘录:

{
    "autosave": false,
    "background": true,
    "colors": true,

...truncated...

    "donate-level": 0,
    "donate-over-proxy": 0,
    "pools": [
        {
            "algo": "rx/0",
            "coin": "monero",
            "url": "pool.supportxmr[.]com:443",
            "user": "468ED2Qcchk4shLbD8bhbC3qz2GFXqjAUWPY3VGbmSM2jfJw8JpSDDXP5xpkMAHG98FHLmgvSM6ZfUqa9gvArUWP59tEd3f",
            "keepalive": true,
            "tls": true

...truncated...

    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36",
    "verbose": 0,
    "watch": true,
    "pause-on-battery": false,
    "pause-on-active": false
}

Monero 付款 ID

Monero 是一种区块链加密货币,专注于混淆和可替代性以确保匿名性和隐私。 付款 ID是任意且可选的交易附件,由 32 字节(64 个十六进制字符)或 8 字节(集成地址的情况下)组成。

使用上述配置摘录中的付款 ID( 468ED2Qcchk4shLbD8bhbC3qz2GFXqjAUWPY3VGbmSM2jfJw8JpSDDXP5xpkMAHG98FHLmgvSM6ZfUqa9gvArUWP59tEd3f ),我们可以查看配置中列出的其中一个Monero 挖矿池站点上的工作者和矿池统计信息。

此外,我们可以看到交易哈希,可以在 Monero 区块链浏览器上查找。 请注意,虽然交易可以追溯到四个月前,但这仅表明该特定工人和账户可能获得的金钱收益。

使用区块链浏览器和我们从付款 ID 获得的交易哈希之一,我们可以看到公钥、提取的金额以及时间。 请注意,这些公钥与一次性地址或隐形地址一起使用,对手随后会使用私钥来解锁资金。

In the above example for transaction 7c106041de7cc4c86cb9412a43cb7fc0a6ad2c76cfdb0e03a8ef98dd9e744442 we can see that there was a withdrawal of 0.109900000000 XMR (the abbreviation for Monero) totaling $14.86 USD. The Monerao Mining Pool site shows four transactions of approximately the same amount of XMR, totaling approximately $60.70 USD (January - March 2024).

截至本研究发表时,仍有活跃的矿工与 REF4578 付款 ID 相连。

虽然这个特定的付款 ID 看起来并不是一个大的收入来源,但很明显 REF4578 可以成功操作这个入侵装置。 此次活动的其他受害者可能拥有用于追踪入侵行为的不同付款 ID,这些付款 ID 可以合并起来,从而获得更大的总体收益。

恶意软件和 MITRE ATT&CK

Elastic 使用MITRE ATT&CK框架来记录威胁针对企业网络使用的常见策略、技术和程序。

战术

策略代表了技术或子技术的原因。 这是对手的战术目标:采取行动的原因。

技术

技术代表对手如何通过采取行动来实现战术目标。

缓解 GHOSTENGINE

检测

GHOSTENGINE 恶意软件的首要目标是使端点安全解决方案失效并禁用特定的 Windows 事件日志,例如记录进程创建和服务注册的安全和系统日志。 因此,优先检测和预防这些初始行动至关重要:

  • 可疑的 PowerShell 执行
  • 从不寻常的目录执行
  • 提升权限以实现系统完整性
  • 部署易受攻击的驱动程序并建立相关的内核模式服务。

一旦加载了易受攻击的驱动程序,检测机会就会大大减少,组织必须找到停止向其 SIEM 传输日志的受损端点。

如果 DNS 记录查找通过知名端口(例如 HTTP( 80 )和 HTTPS( 443 ))指向已知的采矿池域,则可能会生成网络流量并可识别。 Stratum 也是另一种受矿工欢迎的网络协议,默认情况下,通过端口4444

对该入侵集的分析揭示了以下检测规则和行为预防事件:

预防

恶意文件预防:

Shellcode 注入预防:

易受攻击的驱动程序文件创建预防( Windows.VulnDriver.ArPotWindows.VulnDriver.IoBitUnlocker

雅拉

Elastic Security 已创建 YARA 规则来识别此活动。

观察结果

所有可观察数据均可采用 ECS 和 STIX 格式下载

本研究讨论了以下可观察的结果。

Observable类型名称参考
2fe78941d74d35f721556697491a438bf3573094d7ac091b42e4f59ecbd25753SHA-256C:\Windows\Fonts\smartsscreen.exeGHOSTENGINE EDR 控制器模块
4b5229b3250c8c08b98cb710d6c056144271de099a57ae09f5d2097fc41bd4f1SHA-256C:\Windows\System32\drivers\aswArPots.sysAvast 易受攻击的驱动程序
2b33df9aff7cb99a782b252e8eb65ca49874a112986a1c49cd9971210597a8aeSHA-256C:\Windows\System32\drivers\IObitUnlockers.sysIobit 易受攻击的驱动程序
3ced0552b9ecf3dfecd14cbcc3a0d246b10595d5048d7f0d4690e26ecccc1150SHA-256C:\Windows\System32\oci.dll更新/持久模块(64 位)
3b2724f3350cb5f017db361bd7aae49a8dbc6faa7506de6a4b8992ef3fd9d7abSHA-256C:\Windows\System32\oci.dll更新/持久模块(32 位)
35eb368c14ad25e3b1c58579ebaeae71bdd8ef7f9ccecfc00474aa066b32a03fSHA-256C:\Windows\Fonts\taskhostw.exe矿工客户端
786591953336594473d171e269c3617d7449876993b508daa9b96eedc12ea1caSHA-256C:\Windows\Fonts\config.json矿工配置文件
11bd2c9f9e2397c9a16e0990e4ed2cf0679498fe0fd418a3dfdac60b5c160ee5SHA-256C:\Windows\Fonts\WinRing0x64.sys矿工司机
aac7f8e174ba66d62620bd07613bac1947f996bb96b9627b42910a1db3d3e22bSHA-256C:\ProgramData\Microsoft\DeviceSync\SystemSync\Tiworker.exe初始阶段
6f3e913c93887a58e64da5070d96dc34d3265f456034446be89167584a0b347eSHA-256backup.pngGHOSTENGINE后门模块
7c242a08ee2dfd5da8a4c6bc86231985e2c26c7b9931ad0b3ea4723e49ceb1c1SHA-256get.pngGHOSTENGINE 加载器
cc4384510576131c126db3caca027c5d159d032d33ef90ef30db0daa2a0c4104SHA-256kill.pngGHOSTENGINE EDR 终止模块
download.yrnvtklot[.]comC2 服务器
111.90.158[.]40IPv4 地址C2 服务器
ftp.yrnvtklot[.]comC2 服务器
93.95.225[.]137IPv4 地址C2 服务器
online.yrnvtklot[.]comC2 服务器

参考资料

上述研究参考了以下内容: