DecoyMini 技术交流社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 371|回复: 0

[样本分析] ViperSoftX:利用 AutoIt 和 CLR 隐藏执行 PowerShell

[复制链接]

13

主题

2

回帖

2

荣誉

Rank: 1

UID
1625
积分
33
精华
0
沃币
3 枚
注册时间
2024-3-8
发表于 2024-7-12 15:34:53 | 显示全部楼层 |阅读模式
本帖最后由 zer0daysec 于 2024-7-12 15:34 编辑

一、概要


在当今网络威胁中,ViperSoftX 已成为一种高度复杂的恶意软件,主要渗透系统和泄露敏感信息。自 2020 年首次被检测出来,ViperSoftX 经历了多次迭代,每个版本都展现出更高的复杂性和先进功能

最初,它主要通过破解软件进行传播,通过盗版应用程序 (可隐蔽安装恶意软件) 引诱用户。ViperSoftX 之前也通过 torrent 站点传播,但现在我们观察到它专门作为电子书通过 torrent 传播。

ViperSoftX 当前变种的一个值得注意的方面是,它使用公共语言运行时 (CLR) 动态加载和运行 PowerShell 命令,从而在 AutoIt 中创建 PowerShell 环境进行操作。通过利用 CLR,ViperSoftX 可以无缝集成 PowerShell 功能,使其能够执行恶意功能,同时逃避可能标记独立 PowerShell 活动的检测机制。

ViperSoftX 还采用了一种策略,攻击者有选择地改编安全脚本中的组件,仅修改必要的元素以符合其恶意目标,而不是从头开始创建新代码。通过利用这些现有脚本,恶意软件开发人员不仅可以加速开发,还可以专注于改进其规避策略,从而使 ViperSoftX 成为网络安全领域的强大威胁。

了解这些方法对于开发针对此类高级威胁的有效防御至关重要,在这篇文章中,我们将深入研究 ViperSoftX 的工作原理,探索其感染链、有效负载执行以及它用来保持不被发现的各种技术

二、感染链




三、Torrent 陷阱:恶意电子书




当用户从恶意 torrent 链接下载电子书时,攻击就已经开始了。下载的 RAR 文件中存在隐藏的威胁,包括隐藏的文件夹、看似无害的 PDF 的快捷方式文件、PowerShell 脚本、AutoIt.exe 以及巧妙伪装成 JPG 文件的 AutoIt 脚本。隐藏文件夹包含一组与当前文件夹中的文件相同的文件,但 PDF 或电子书文档除外,它充当隐藏其真实用途的诱饵。





当用户执行快捷方式文件时,它会启动一个命令序列,首先列出 zz1Cover4.jpg 的内容。随后从此文件中读取每一行并在命令提示符中执行,目的在于有效地自动执行策略 - 允许在没有直接用户交互的情况下简化和自动执行潜在的恶意命令。



如上所述,LNK 文件执行 zz1Cover4.jpg,它巧妙地将 PowerShell 代码隐藏在空白区域中,并与多个进程日志一起传播。

此 PowerShell 代码执行多项操作:

  • 取消隐藏隐藏文件夹
  • 计算所有磁盘驱动器的总大小,并将该大小用作 AutoIT 脚本的文件名和任务名称。脚本使用两个触发器配置 Windows 任务计划程序:一个在登录时触发,每 5 分钟重复一次,另一个每天触发,每 10 分钟重复一次
  • 将两个文件 (zz1Cover2.jpg 和 zz1Cover3.jpg) 复制到 %APPDATA%\Microsoft\Windows 目录,zz1Cover2.jpg 重命名为 <磁盘驱动器大小总和>.au3,zz1Cover3.jpg 重命名为 AutoIt3.exe
  • 删除当前目录中的所有 .lnk 文件





三、从防御到进攻:ViperSoftX 战略代码重用


在检查 ViperSoftX 时,出现了一个清晰的模式:攻击者使用 AutoIt 脚本来隐藏恶意行为,攻击者使用各种技术精心混淆脚本,增加了复杂性,这对试图破译其功能的研究人员和分析工具构成了挑战。此外,我们的分析揭示了大量行的代码的广泛使用,表明 ViperSoftX 操作的复杂性。通过对源代码的反编译,能够进行彻底的分析,深入了解 ViperSoftX 的运行情况,了解其功能和操作方法。



四、AutoIt 脚本中执行 PowerShell


AutoIt 成为秘密执行 PowerShell 命令的有力武器,AutoIt 有害的关键部分是它与 .NET 公共语言运行时 (CLR) 框架交互的能力。AutoIt 默认情况下不支持 .NET 公共语言运行时 (CLR)。然而,该语言的用户定义函数 (UDF) 提供了通往 CLR 库的方式,这样便能够使用到 PowerShell 的强大功能。

在 .NET CLR 的支持下,AutoIt 能够利用 PowerShell 自动化类 System.Management.Automation.PowerShell 的强大功能。这些类有助于与非托管运行空间中的 PowerShell 模块、cmdlet 和脚本进行交互。使用这些类,攻击者可以轻松地执行各种有害活动而不被发现。

更多详细信息,可以参考 AutoIT 论坛微软官方文档



代码解释:

加载组件

  • 脚本首先使用 _CLR_LoadLibrary 加载 System.Management.Automation 程序集
  • 此步骤初始化局部变量 $oAssembly 以保存加载的程序集对象

获取类型信息

  • 脚本使用 $oAssembly.GetType_2 检索 Management.Automation.PowerShell 类的类型信息
  • 初始化一个局部变量 $pAssemblyType 来存储类型信息

动态创建对象

  • 根据之前获得的类型信息,使用 ObjCreateInterface 创建激活器对象 $oActivatorType
  • 此激活器对象的目的是动态创建 PowerShell 对象的实例

初始化 PowerShell 对象

  • 脚本使用激活器对象和 InvokeMember_3 初始化 PowerShell 对象 $pObjectPS
  • 此步骤有效地在 AutoIt 中创建一个用于执行 PowerShell 命令的 PowerShell 环境

添加并执行 PowerShell 脚本

  • 使用 $pObjectPS.AddScript 将存储在 $PSScript 中的 PowerShell 脚本添加到 PowerShell 对象
  • 然后使用 $pObjectPS.BeginInvoke 异步执行该脚本,它返回异步操作句柄 $objAsync

处理异步执行

  • 脚本进入循环以等待异步操作完成 ($objAsync.IsCompleted = False)
  • 在循环内部,ContinueLoop 确保脚本保持在循环中,直到操作完成
  • 完成后,脚本使用 $pObjectPS.EndInvoke 检索结果,并将其存储在 $objPsCollction 中

在执行之前,AMSI 使安全产品能够仔细检查脚本内容,包括 PowerShell 脚本。这种主动方法增加了一层有价值的防御,可以在恶意活动对系统和网络造成严重破坏之前阻止它们。通过对 AMSI 进行 Patch,ViperSoftX 可以逃避依赖 AMSI 扫描和阻止恶意脚本的安全解决方案的检测,从而使其能够在受感染的系统中运行而不被检测到。



让我们逐行来理解 _PatchAMSI 函数:

定义 Patch 字节



该行将 Patch 字节定义为十六进制字符串,这些字节包含将写入 AmsiScanBuffer 内存位置的操作码。这些操作码有效地改变函数的行为以返回 E_INVALIDARG。

加载 DLL

  • _HexToString 函数将十六进制字符串转换为表示 DLL 名称 (在本例中为 dll) 的可读字符串
  • _WinAPI_LoadLibrary 函数将指定的 DLL 加载到内存中

获取 ASB 地址

  • 另一个十六进制字符串被转换为可读字符串 AmsiScanBuffer
  • _WinAPI_GetProcAddress 检索加载的 DLL 中指定函数 (AmsiScanBuffer) 的内存地址

对内存进行 Patch

  • BinaryLen 计算补丁字节的大小
  • DllCall 调用 VirtualProtect 来修改内存保护属性
  • 该函数修改指定内存地址 ($asbLoc) 的保护以允许写入 (0x40 代表 PAGE_EXECUTE_READWRITE)
  • 原始保护状态存储在变量中以供以后恢复

Patch

  • 创建一个动态结构 ($patchBuffer) 来保存 Patch 字节
  • 使用 DllStructSetData 将 Patch 字节写入分配的内存
  • 最后 Patch 后内存保护恢复到原始状态

五、暴露隐藏的 PowerShell 有效负载


PS 有效负载是指作为感染过程的一部分执行的恶意 PowerShell 脚本,如前所述。它存储在变量 $PSScript 中,并隐藏在 Base64 加密后面。AutoIt 函数 _RUN_PSHOST_SCRIPT() 负责加载和执行此 PowerShell 脚本。



这个初始有效负载一旦解密,就会暴露出另一层复杂性,因为反向 Base64 和 AES 加密的混合掩盖了辅助 PowerShell 脚本



通过这个复杂的解密过程,最终的有效负载最终被揭晓。AMSI  Patch 和这一系列加密方法会混淆有效负载的真实性质,从而给安全解决方案带来挑战



ViperSoftX 恶意软件的最终有效负载能够执行各种恶意操作:

收集系统信息并通过浏览器扩展扫描加密货币钱包



Plqopsjidoikoaqx PowerShell 函数会扫描 Firefox 配置文件目录中的特定浏览器扩展,并检查 JSON 对象中定义的某些文件,创建一个已识别的扩展和目标的列表。如果找到像 Metamask 或 Ronin Wallet 这样的扩展,它会将相应的标识符添加到列表中,还检查 JSON 数据定义的路径中是否存在特定文件,并将其名称添加到列表中。最后,将收集到的信息转换为 base64 编码的字符串并返回,此过程有助于收集和编码系统信息以供进一步使用或传输

将收集到的信息发送到其 C2 服务器



ViperSoftX 的网络活动展示了逃避检测并与合法流量混合的复杂技术,在某些样本中观察到的使用诸如 security-microsoft[.]com 之类的欺骗性主机名的目的是为了显得可信,并误导受害者认为该域与 Microsoft 相关。此外,经常用于恶意活动的可疑 Base64 编码的用户代理会泄露详细的系统信息,此用户代理字符串包括来自 PowerShell 命令的数据,例如逻辑磁盘卷序列号、计算机名称、用户名、操作系统版本、防病毒产品信息和加密货币详细信息



然后 pOPSKX 函数将收集到的数据发送到远程服务器,它设置一个 Web 客户端,使用自定义用户代理配置标头,然后上传数据,内容长度为 0 的异常 POST 请求表明尝试通过不发送正文内容来避免检测

收到响应后,pOPSKX 函数检查服务器回复中名为 worker 的标头。如果此标头的值为 0,则表示不再有任务,并且全局工作变量设置为 false。如果该值不为 0,则表示要执行更多任务,并且全局 worker 变量设置为 true。该变量对于控制恶意软件的后续步骤至关重要,决定它是否应该保持空闲状态或根据服务器的指令继续执行命令。此外,使用 Cloudflare 服务可以混淆恶意流量的真实来源,为 ViperSoftX 的操作增加另一层隐蔽性

这些功能共同从受感染的系统收集数据并将其发送到 C2 服务器以获取进一步的指令

以下是 ViperSoftX 可以执行的其他活动

  • ViperSoftX 捕获剪贴板内容,提取潜在的敏感数据
  • 根据从 C2 服务器收到的响应动态下载并执行额外的有效负载和命令
  • 使用 WMI 检查是否存在反恶意软件产品来进行侦察
  • 恶意软件包括自我删除机制,以逃避检测和删除工作

六、结论


通过有选择地利用现有的攻击性安全脚本并对其进行修改以适应其恶意目的,ViperSoftX 背后的攻击者不仅加快了开发速度,还改进了其规避策略,从而提高了该恶意软件变种所构成的威胁

ViperSoftX 的标志性功能之一是它善于使用公共语言运行时 (CLR) 在 AutoIt 环境中协调 PowerShell 操作,这种集成可以无缝执行恶意功能,同时规避通常标记独立 PowerShell 活动的检测机制。此外,ViperSoftX 在执行 PowerShell 脚本之前 Patch 反恶意软件扫描接口 (AMSI) 的能力强调了其规避传统安全措施的决心。这种规避策略,加上其多方面的功能,包括数据泄露、侦察和自我删除机制,凸显了现代恶意软件威胁的复杂性和敏捷性。最终,通过了解 ViperSoftX 等恶意软件变种的作案手法并采用涵盖检测、预防和响应功能的全面防御策略,组织可以有效减轻这些复杂威胁带来的风险,保护其数字资产并保持其数据的完整性

七、IoCs


Rar

  • 1177fb1b6b4a6ac1cd75c0f0784bb87a3202c70fe748bf5bc7fd0dd0fd41169b
  • 07ee16f72b1dd81e7cf79aa1396f44f3ed29d343dd8fa0c6aecf1bb3d36d4e34
  • f2503068aa274eb6c73dfd1a31c7e878f84f3fb60f3ae23f001bb143eb6f196f
  • 96a1666152dfe5cc4113b855a059195227f55773d8ad46cc92fe5090010035f1
  • de05f6f97b475ed6464541665e59252869b5d531c63698a9ad70c3875954c92c
  • acf98f0c2b3823f9213b220fcd79237037d0d3f087a3faa4f10ea6d147a9f059
  • 7701e4bf5074f0527c0126fff1dbd0e6368ddb7d0131bac1fba72b19511af127
  • 4d365958397af1b7c2c62f62d21b35b948c03dd17f730a58b6145cd003a7922c
  • 39e0199d3d501acc3377af56c4e79ec4c4f8aaa21ac1a449fe8da69c4c267dd7
  • f8ef5f403474624e61ef0b83adc9e15ea6ca47534f7316c4c43db6f064e21c76
  • 655afdb9fc4ab05875c790c22e505b4eda3492323631ed3c951b4fe60806770a
  • 2b807f42e32684768fa5e514ee0674836f3774ec83e73fc0be0afde34f8ee11c
  • f30aeb1877ddd30c0d2b79c78bffa7f990df56d37dd78ab0d5c563db02b1ab37

AutoIt Script

  • 2526a840c91d03c804a8f73cc35a9a993f4dcddf12950566c419a8addf52fd39
  • a544293ad41861129c77aaaea1620b884982378721bed31c60702b3e3d3c1590
  • 9b5869e4d37894571923607dce7c23a324ae2f93820384b99aefe619a7fa3fad
  • 87982fe34bfcb26fd06714e0bb4c3341dfaa66b51e918fcf048554be60d29307

LNK Files

  • 87d809543079ae5770b6cdc1849e7be55dec1a37c3f90ea63a5d5f5a2b3d4c32
  • 3d5d95b4e51ce5b7597c3f2b8da50951bd8152493e3ea27f0b8f7ab32596a526
  • 4ab0bc4c0841cf65f6c78356327337cdea436e1c1d008e8e0a5f5e400aaed39c
  • 10e1dbb3c19c6a3b905434cae98fe0c6d4e68a8d9bcd316175160efd834a2d23
  • 829a3a3525fae23ea0e56a0049b9ba56f9a061315d023940defb00661a74b767

PowerShell

  • 8af9b0cdb301febc64ac05b8acb701d0f1b6f88cc22a4c83929078d04bfca657
  • 594948597aae36cd9fcf30dec7ef1be70bc70ee618f0e33dd8268c12982da7c9
  • f83a0b46b9d424d338342b509d9e12b467d25f400db62dc57815db33b1b26feb

URLs

  • hxxps[:]//security-microsoft[.]com/connect
  • hxxps[:]//borcano[.]org/connect

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Hi, guys, This is My Blog -> https://ma1waresearch.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|DecoyMini 技术交流社区 ( 京ICP备2021005070号 )

GMT+8, 2024-9-8 09:23 , Processed in 0.061143 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表