VirusTotal实践者案例:追踪FileFix、Shadow Vector与SideWinder攻击活动

本文详细介绍了Acronis威胁研究团队如何利用VirusTotal平台追踪FileFix(ClickFix变种)、南亚高级威胁组织SideWinder以及针对哥伦比亚的Shadow Vector SVG钓鱼活动,分享了具体的YARA规则编写、现场狩猎和回溯狩猎的实战技巧。

VTPRACTITIONERS{ACRONIS}:追踪FileFix、Shadow Vector与SideWinder

引言 我们最近启动了一个名为#VTPRACTITIONERS的新博客系列。该系列旨在从技术角度与社区分享其他实践者利用VirusTotal进行的研究成果。

我们的第一篇博客看到了SEQRITE的同事追踪UNG0002、Silent Lynx和DragonClone。在这篇新文章中,Acronis威胁研究单位(TRU)分享了来自多次调查的实践见解,包括被称为FileFix的ClickFix变种、长期活跃的南亚威胁组织SideWinder,以及针对哥伦比亚、名为Shadow Vector的基于SVG的钓鱼活动。

VT如何在狩猎中为分析师发挥作用 对于威胁分析师而言,基于Web的威胁带来了一系列独特的挑战。与基于文件的恶意软件不同,基于Web的攻击的初始阶段通常仅作为浏览器中的短暂工件存在。调查的核心在于剖析网站的组成部分,从其HTML和JavaScript到其传递的负载。这正是VT在存档和分析Web内容方面的能力变得至关重要的地方。

VT使分析师能够超越简单的URL信誉检查,深入分析网页内容本身。对于像*Fix家族这样诱使用户执行恶意命令的攻击,整个攻击链通常清晰地展现在页面源代码中。分析师的起点变成了恶意命令本身,例如navigator.clipboard.writeTextdocument.execCommand("copy"),它们被用来将负载偷偷复制到受害者的剪贴板。

Acronis团队对FileFix变种的调查展示了这种方法论的实际应用。他们的研究并非始于特定样本,而是始于可以转化为一组狩猎规则的假设。利用VT的Livehunt功能,他们能够创建YARA规则,用于搜索包含剪贴板命令以及常见负载执行工具(如powershellmshtacmd)的新网页。这种主动狩猎方法使他们能够撒下一张大网,实时识别潜在的恶意站点。

这类狩猎的一个主要挑战是在规则的特异性和发现新型威胁的需求之间取得平衡。过于宽泛的规则可能导致大量误报,而高度具体的规则则可能错过创造性设计的命令。Acronis团队通过创建具有不同特异性级别的多个规则集来解决这一问题,使他们既能发现已知威胁,又能发现像FileFix这样的新变种。

对于使用基于文档攻击的SideWinder活动,VT的价值在于其丰富的元数据和过滤功能。分析师可以搜寻利用特定漏洞的恶意文档,然后通过提交者国家信息将结果集中在特定地理区域。这使他们能够有效隔离与特定行为者(如专注于南亚的SideWinder)相匹配的威胁。

同样,对于针对哥伦比亚用户、使用恶意SVG文件的Shadow Vector活动,VT的内容搜索和存档功能被证明是必不可少的。该平台存储和索引SVG内容的能力使研究人员能够识别出一个使用司法主题诱饵的活动。通过将法律关键词的内容搜索与submitter:CO等过滤器相结合,Acronis团队可以映射整个感染链及其基础设施,将零散的指标转化为全面的情报图景。

Acronis - 成功案例 [引用Acronis的话…] Acronis威胁研究单位(TRU)在几项调查中使用了VirusTotal平台进行威胁狩猎和情报收集,包括FileFix、SideWinder和Shadow Vector。在FileFix案例中,TRU使用了VT的Livehunt框架,制定规则来识别利用剪贴板操作传递PowerShell负载的恶意网页。能够在VirusTotal平台内检查存档的HTML和JavaScript,使团队不仅发现了已知的Fix家族攻击,还发现了共享代码模式的先前未见的变种。

VirusTotal的数据语料库也支持了Acronis TRU更广泛的威胁追踪。在SideWinder活动中,VT的元数据和样本过滤功能帮助分析师追踪了利用tag:CVE-2017-0199tag:CVE-2017-11882标签、针对南亚的文档攻击,从而催生了后来发表在《从银行到军营:SideWinder对南亚公共部门的攻击》中的狩猎规则。 同样,在“Shadow Vector通过权限提升和法院主题SVG诱饵针对哥伦比亚用户”的调查中,VT存档的SVG内容暴露了一个针对哥伦比亚实体的活动,该活动在SVG图像中嵌入了司法诱饵和外部负载链接。通过将样本与submitter:CO等元数据过滤器以及针对href="https://"和法律术语等内容搜索相关联,团队映射了整个感染链及其支持基础设施。在所有这些努力中,VirusTotal提供了一个统一的环境,使Acronis能够实时地关联、验证和整合发现,将零散的指标转化为全面、可操作的情报。

像狩猎2017-0199漏洞一样狩猎(SideWinder篇) SideWinder是一个众所周知的威胁行为者,他们不断回归到行之有效的方法。他们的基于文档的交付链已经活跃多年,该组织继续依赖相同的、经过验证的漏洞来针对南亚的政府和国防实体。我们这次狩猎的目标不仅仅是寻找样本,我们还想了解新文档出现在哪里,它们可能针对谁,以及最新一波活动中流通的诱饵类型是什么。VirusTotal为我们提供了高效且大规模实现这一目标所需的可见性。

我们首先深入研究了最近上传到VirusTotal、标记有CVE-2017-0199或CVE-2017-11882且来自巴基斯坦、孟加拉国、斯里兰卡及邻近国家的Microsoft Office和RTF文件。通过根据VT元数据(如提交者国家/地区和文件类型)进行过滤,并排除来自批量提交或不相关活动的明显噪音,我们可以将重点缩小到实际符合SideWinder操作特征的样本。

 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
/*
    检查文件是否标记有CVE-2017-0199或CVE-2017-11882
    并且源自目标国家之一
    并且文件类型是Word文档、RTF或MS-Office文件
*/
import "vt"
rule hunting_cve_maldocs {
    meta:
        author = "Acronis Threat Research Unit (TRU)"
        description = "Hunting for malicious Word/RTF files exploiting CVE-2017-0199 or CVE-2017-11882 from specific countries"
        distribution = "TLP:CLEAR"
        version = "1.2"

    condition:
        // 匹配文件标签中是否有CVE-2017-0199或CVE-2017-11882
        for any tag in vt.metadata.tags : 
        ( 
            tag == "cve-2017-0199" or 
            tag == "cve-2017-11882" 
        )
        // 源自特定国家?
        and 
        (
            // 由于垃圾提交相关恶意文档,移除了CN
            vt.metadata.submitter.country == "PK" or 
            vt.metadata.submitter.country == "LK" or 
            vt.metadata.submitter.country == "BD" or 
            vt.metadata.submitter.country == "NP" or 
            vt.metadata.submitter.country == "MM" or 
            vt.metadata.submitter.country == "MV" or 
            vt.metadata.submitter.country == "AF"
        )
        // 是DOC、DOCX或RTF吗?
        and 
        (
            vt.metadata.file_type == vt.FileType.DOC or
            vt.metadata.file_type == vt.FileType.DOCX or
            vt.metadata.file_type == vt.FileType.RTF
        )
        // 观察到其他TA使用.ru顶级域(暂时排除)
        and not (
            for any url in vt.behaviour.memory_pattern_urls : (
                url contains ".ru"
            )
        )
        and vt.metadata.new_file
}

接下来,我们开始将这些结果转化为新的livehunt规则。初始版本有意设定得较为宽泛:匹配任何利用这些CVE的新文档,来自一小部分感兴趣的国家,并且仅限于DOC、DOCX或RTF等文档文件类型。我们还添加了逻辑以避免不符合SideWinder模式的命中,例如调用与其它已知威胁集群相关的.ru基础设施的样本。

创建宽泛的狩猎规则时,一个好的起点是设定每日通知限制。如果一切按预期工作且误报水平可接受,随着越来越多的命中进入收件箱,开始细化规则。

(配图文字:创建宽泛狩猎规则时,最好避免让自己的收件箱收到垃圾邮件)

在我们的案例中,最终的狩猎规则最终匹配了SideWinder使用的恶意文档的十六进制模式。通过添加提交者国家过滤器和仅在新增文件时触发的条件,该规则产生了一个可靠的样本流,我们可以自信地将其归因于该行为者以进行进一步分析。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/*
    与Sidewinder相关的恶意文档,在2025年活动中利用了CVE 2017-0199
*/
import "vt"
rule apt_sidewinder_documents
{
    meta:
        author = "Acronis Threat Research Unit (TRU)"
        description = "Sidewinder related malicious documents exploiting CVE 2017-0199"
        distribution = "TLP:CLEAR"
        version = "1.0"

    strings:
        $a1 = {62544CB1F0B9E6E04433698E85BFB534278B9BDC5F06589C011E9CB80C71DF23}
        $a2 = {E20F76CDABDFAB004A6BA632F20CE00512BA5AD2FE8FB6ED9EE1865DFD07504B0304140000}

    condition:
        filesize < 5000KB 
        and any of ($a*)
        and vt.metadata.new_file
        // 从CN提交者处获取了垃圾样本
        and not vt.metadata.submitter.country == "CN"
}

一旦我们改进了规则集,SideWinder的活动就变得更容易持续跟踪。我们开始近乎实时地看到新的诱饵出现,使我们能够监控主题的变化,并发现不同活动中对诱饵内容和基础设施的重复使用。在retrohunt中使用相同的逻辑证实了我们的观察,即SideWinder在数月内一直使用相同的策略,只改变诱饵主题,而保持底层的交付技术不变。

(配图文字:使用Retrohunt发现更多样本并建立威胁行为者的时间线)

我们还观察到交付链中的地理围栏行为。如果托管外部资源的服务器无法识别访问者,或者IP范围与预期目标不匹配,服务器通常会返回一个良性的诱饵文件(或HTTP 404错误代码),而不是真正的负载。

(配图文字:尽管依赖2017年的漏洞,SideWinder会仔细过滤将接收最终恶意负载的受害者)

一个反复出现的诱饵的SHA256哈希值为1955c6914097477d5141f720c9e8fa44b4fe189e854da298d85090cbc338b35a,它对应一个空的RTF文档。该诱饵作为狩猎支点很有用:通过在VT中搜索该哈希值,并结合提交者国家和文件类型过滤器,可以将可能的目标、真实的命中与广泛的噪音区分开来,并映射地理围栏的应用位置。

(配图文字:SideWinder使用的空RTF诱饵文件仍然包含有价值的信息,可用于转向其基础设施的其他部分)

此外,VirusTotal使我们能够追溯到初始感染向量,并恢复启动该链的一些鱼叉式网络钓鱼电子邮件。我们从已知样本和共享字符串出发,利用文件关系向上游跟踪链接的URL和工件,找到了一个包含原始消息和附件的.eml文件。一个具体的例子是标题为54th CISM World Military Naval Pentathlon 2025 - Invitation.eml的鱼叉式钓鱼邮件,在VirusTotal中被索引,其行为元数据和附件与相同的基础设施相关联。

(配图文字:获取初始感染的鱼叉式钓鱼电子邮件使我们能够将谜题的不同部分,从头到尾拼凑起来)

对于其他狩猎者来说,关键要点是,即使像CVE-2017-0199这样的旧漏洞,当你结合多个VirusTotal功能时,也能揭示很多信息。在这个案例中,我们使用元数据、livehunt和区域遥测数据来连接看似无关的样本。我们还检查了来自像Joseliyo这样的研究人员的标签和社区投票,以交叉验证我们的假设并发现关于类似活动的正在进行中的讨论。遥测选项卡帮助我们查看提交的地理来源,而威胁图视图使我们更容易可视化文档、基础设施和负载之间的关联。

(配图文字:狩猎新样本时,每一个数据点都很重要)

综合使用这些工具,将一组嘈杂的样本转化成了关于SideWinder目标和操作的清晰图景。

揭露Shadow Vector针对哥伦比亚的基于SVG的黑产活动 在我们的研究中,我们识别出了一个我们称之为Shadow Vector的活动,该活动使用精心制作的、冒充法庭传票和法律通知的恶意SVG图像来针对哥伦比亚的用户。

(配图文字:一个带有司法信件主题的渲染后SVG诱饵示例)

这些文件模仿官方的司法信函,并包含指向外部托管负载的嵌入式链接,例如基于脚本的下载器或受密码保护的档案。调查始于我们注意到来自哥伦比亚的SVG提交存在异常模式。通过使用一小部分样本作为初始规则,我们开始了狩猎。

 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
<!--
    此YARA规则检测可能被用于针对哥伦比亚的黑产活动的恶意SVG文件。
    该规则识别包含常用于网络钓鱼诈骗的法律或司法术语的SVG图像,
    以及可能用于传递负载的嵌入式外部链接。
-->
import "vt"
rule crimeware_svg_colombia {
   meta:
        author = "Acronis Threat Research Unit (TRU)"
        description = "Detects potentially malicious SVG files that are likely being used for crimeware campaigns targeting Colombia"
        distribution = "TLP:CLEAR"
        version = "1.1"

        // 参考哈希
        hash1 = "6d4a53da259c3c8c0903b1345efcf2fa0d50bc10c3c010a34f86263de466f5a1"
        hash2 = "2aae8e206dd068135b16ff87dfbb816053fc247a222aad0d34c9227e6ecf7b5b"
        hash3 = "4cfeab122e0a748c8600ccd14a186292f27a93b5ba74c58dfee838fe28765061"
        hash4 = "9bbbcb6eae33314b84f5e367f90e57f487d6abe72d6067adcb66eba896d7ce33"
        hash5 = "60e87c0fe7c3904935bb1604bdb0b0fc0f2919db64f72666b77405c2c1e46067"
        hash6 = "609edc93e075223c5dc8caaf076bf4e28f81c5c6e4db0eb6f502dda91500aab4"
        hash7 = "4795d3a3e776baf485d284a9edcf1beef29da42cad8e8261a83e86d35b25cafe"
        hash8 = "5673ad3287bcc0c8746ab6cab6b5e1b60160f07c7b16c018efa56bffd44b37aa"
        hash9 = "b3e8ab81d0a559a373c3fe2ae7c3c99718503411cc13b17cffd1eee2544a787b"
        hash10 = "b5311cadc0bbd2f47549f7fc0895848adb20cc016387cebcd1c29d784779240c"
        hash11 = "c3319a8863d5e2dc525dfe6669c5b720fc42c96a8dce3bd7f6a0072569933303"
        hash12 = "cb035f440f728395cc4237e1ac52114641dc25619705b605713ecefb6fd9e563"
        hash13 = "cf23f7b98abddf1b36552b55f874ae1e2199768d7cefb0188af9ee0d9a698107"
        hash14 = "f3208ae62655435186e560378db58e133a68aa6107948e2a8ec30682983aa503"

   strings:
        // SVG
        $svg = "<svg xmlns=" ascii fullword

        // 包含法律或司法术语的文档
        $s1 = "COPIA" nocase
        $s2 = "CITACION" nocase
        $s3 = "JUZGADO" nocase
        $s4 = "PENAL" nocase
        $s5 = "JUDICIAL" nocase
        $s6 = "BOGOTA" nocase
        $s7 = "DEMANDA" nocase

        // 图像加载时从外部网站通过HTTPS检索负载
        $href1= "href='https://" nocase
        $href2 = "href=\"https://" nocase

   condition:
      $svg
      and filesize < 3MB
      and 3 of ($s*)
      and any of ($href*)
      and vt.metadata.submitter.country == "CO"
}

通过包含来自手动验证样本的参考哈希值,我们使用宽泛的狩猎规则既作为检测机制,也作为发现相关基础设施或新生成诱饵的支点。

一旦初始的狩猎逻辑就位,我们就将其细化为一个专门针对基于SVG的诱饵的livehunt规则。该规则匹配包含司法术语和出站HTTPS链接的文件,同时通过文件大小和来源进行过滤以减少误报。使用此规则,我们开始收集和分析相关的上传内容。

我们使用VT Diff功能来比较样本之间的差异,并快速发现模式,例如重复的单词、十六进制值、URL或暗示自动生成的元数据标签(例如字符串“Generado Automaticamente”)。

(配图文字:VT Diff功能帮助我们识别模式) (配图文字:我们的VT Diff会话结果)

虽然我们在研究时无法最终将SVG诱饵活动归因于Blind Eagle,但技术和主题上的重叠很难忽视。VT博客“使用AI代码分析揭露哥伦比亚恶意软件活动”描述了在针对哥伦比亚用户的行动中使用的类似司法主题SVG文件作为诱饵。与其他关于此威胁行为者的公开报告一样,归因仍然基于累积证据,根据基础设施重用、钓鱼模板设计、恶意软件家族选择以及在样本中观察到的语言或区域指标等共同点对活动进行聚类。

 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
rule crimeware_shadow_vector_svg
{
    meta:
        description = "Detects malicious SVG files associated with Shadow Vector's Colombian campaign"
        author = "Acronis Threat Research Unit (TRU)"
        file_type = "SVG"
        malware_family = "Shadow Vector"
        threat_category = "Crimeware / Malicious Image / Embedded Payload"
        tlp = "TLP:CLEAR"

    strings:
        $svg_tag1 = "<?xml" ascii
        $svg_tag2 = "<svg" ascii
        $svg_tag3 = "<!DOCTYPE svg" ascii
        $svg_tag4 = "http://www.w3.org/2000/svg" ascii

        // Shadow Vector 使用(可能是批量生成)
        $judicial = "juzgado" ascii nocase
        $judicial_1 = "citacion" ascii nocase
        $judicial_2 = "judicial" ascii nocase
        $judicial_3 = "despacho" ascii nocase
        $generado = "Generado" ascii nocase

    condition:
        filesize < 3MB and
        3 of ($svg_tag*) and
        (1 of ($judicial*) and $generado)
}

从最初的狩猎规则演变为精炼的检测规则,说明了我们在VT中进行威胁狩猎的方法——迭代并通过测试和分析不断改进。第一个规则很宽泛,旨在发现相关样本并揭示活动的全貌。它在livehunt和retrohunt中都被证明是有用的,帮助我们找到司法主题SVG及其链接负载的集群。随着调查的进展,我们专注于精确度,减少误报并移除没有增加价值的元素。调整规则始终是一种平衡:移除一种模式可能会遗漏一些样本,但也可以使规则更准确、更易于维护。

FileFix 现身! 几周前,Acronis的TRU团队发布了对一种(在当时)罕见的ClickFix攻击变种(称为FileFix)的研究。多亏了VirusTotal存档、搜索和编写规则以查找网页的能力,对此攻击向量的大部分调查才成为可能。我们Acronis和VT希望分享一些我们是如何做到的信息,以便其他人能够更好地研究这类新兴威胁。

剖析攻击——我们从哪里开始? 像许多网络钓鱼攻击一样,Fix攻击依赖于恶意网站,诱使受害者运行恶意命令。幸运的是,这些攻击有一些特定组件是所有或许多Fix攻击共有的。利用VT,我们能够编写规则并livehunt寻找包含这些组件的任何新网页,并且能够快速迭代过于宽泛的规则。

所有*Fix攻击的一个共同点是,它们将恶意命令复制到受害者的剪贴板——复制恶意命令,而不是让用户自己复制命令,这使攻击者能够尝试向受害者隐藏命令的恶意部分,并且只允许一个较小的、“良性”的命令部分出现在他们复制到Windows运行对话框或地址栏时。这个共同点为我们提供了两个很好的搜索字符串:

  • 用于将文本复制到受害者剪贴板的命令
  • 用于构建恶意负载的命令

我们首先使用Livehunt功能进行研究,并编写了一个规则来检测navigator.clipboard.writeTextdocument.execCommand("copy")(两者都用于复制到剪贴板),以及任何包含powershellmshtacmd等我们发现在*Fix攻击中常用的命令的字符串。其最基本形式,规则可能如下所示:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import "vt"

rule ClickFix
{
  strings:
    $clipboard = /(navigator\.clipboard\.writeText|document\.execCommand\(\"copy\"\))/
    $pay01 = /(powershell|cmd|mshta|msiexec|pwsh)/gvfi
  condition:
    vt.net.url.new_url and
    $clipboard and
    any of ($pay*)
}

然而,这还远远不够。有许多良性网站使用复制到剪贴板功能,并且也包含powershellcmd等词(三个字母“cmd”经常作为Base64字符串的一部分出现)。这使得事情变得有点棘手,因为它要求我们排除这些误报。我们需要使我们的模式看起来更类似于真正的powershell或cmd命令。

不幸的是,这些命令的书写方式差异巨大,我们的模式越僵化,就越有可能错过包含我们以前没见过或想不到的内容的真正阳性。这需要一种平衡行为——如果你的规则太僵化,你会错过采用创造性设计的命令的真正阳性;太宽松,你会收到大量的误报,这会减慢调查速度。

例如,我们可以尝试通过搜索更类似于我们在ClickFix负载中看到的powershell命令的字符串来缩小规则范围,以包含更多真正的powershell阳性,方法是包含“iex”cmdlet,它告诉powershell命令执行一个命令:

1
$pay03 = /powershell.{,80}iex/

这将在单词powershell出现,且单词iex在其后0到80个字符内出现时匹配。这应该会减少与powershell相关的误报数量,因为它更清晰地类似于一个powershell命令,但同时也将我们的规则限制为仅捕获遵循此结构的powershell命令——任何在单词powershelliex之间有超过80个字符的真正阳性命令,或者不使用iex的命令,都不会被捕获。

我们最终设置了多个规则集,有些更具体,有些更通用。更通用的规则集帮助我们调整更具体的规则集。这种策略使我们能够发现大量的ClickFix攻击。大多数是普通的虚假验证码,利用ClickFix,其他的则更有趣。随着我们继续微调规则,在设置Livehunt后的一周内,我们的一个更通用的规则进行了一次有趣的检测。乍一看,它似乎是一个误报,但当我们仔细观察时,我们发现这正是我们希望找到的东西——一个FileFix攻击。

分析负载 研究*Fix攻击最棒的事情之一是,负载就在网站上,就在明处。这提供了一些优势——第一个是,即使钓鱼网站本身已关闭,只要它被VT存档,我们也可以检查负载。第二个优势是,我们可以通过VT查询进一步搜索VT上的类似模式,以尝试捕获同一活动的其他攻击。

(配图文字:负载直接在VT中可见,通过在任意可疑网站上使用内容选项卡(在本例中为混淆后的))

通常,这些负载可能包含用于下载和执行额外负载的额外恶意URL。这些也可以在VT上轻松检查,并且它们导致的任何文件都可以直接从VT下载。

在我们对FileFix站点的调查中,我们发现负载(一个powershell命令)下载了一张图片,然后运行嵌入在图片文件中的脚本。该第二阶段的脚本然后从图片中解密并提取一个可执行文件并运行它。

(配图文字:FileFix站点从图片下载并提取代码(已高亮))

我们同时使用了虚拟机(VM)和VT来调查这些负载。VT一个有趣的使用方式是追踪恶意图片的其他例子,因为命令的部分内容作为字符串嵌入在图片文件中,允许我们通过VT查询匹配这些模式,找到攻击的新例子,或者通过搜索文件名或托管它的域名。

(配图文字:以托管恶意.jpg文件的域名为支点,调查攻击的额外阶段,由VT存档)

VT在允许我们非常轻松地分析恶意URL方面提供了极大的帮助,这些URL不仅用于网络钓鱼,还用于传递恶意软件和额外的脚本。在一些例子中,我们能够在无需启动虚拟机的情况下,沿着脚本和负载的链条走得很远,只需查看内容选项卡,查看特定文件内部有什么。这并非每次都能实现,但当它发生时确实很好。

(配图文字:攻击中使用的恶意图像包含攻击第二阶段使用的恶意代码部分) (配图文字:通过以该代码中的特定字符串为支点,我们能够定位同一攻击者创建的其他恶意图像和脚本样本,并进一步支点以揭露其基础设施)

在调查期间,调查和关联各个阶段,或来自同一攻击者的多个样本的能力,对我们来说是一个巨大的帮助。它使我们能够在不离开VT的情况下快速连接各个点,并且应该是您调查中的一项巨大资产。

寻找*Fix 所以,既然你现在知道了这一切——接下来呢?这有什么用呢?嗯,我们希望它能在几个方面有所帮助。

首先,作为一个社区共同努力,我们继续捕获和阻止采用Fix攻击的URL非常重要。动态检测Fix站点并不容易,并且在许多情况下,预防可能仍然发生在负载已经运行之后。维护一个强大的阻止列表仍然是阻止这些威胁的一个非常好且易于实现的选项。

其次,我们中那些有兴趣继续追踪此威胁并关注其演变的人可以利用这一点来发现这些威胁,并可能实现检测自动化。顺便说一句,*Fix攻击是那些刚开始接触安全领域的人很好的调查主题,只要采取适当的预防措施,通过VT可以相对安全地进行调查,并且对于学习恶意命令、钓鱼网站等非常有用。

第三,对于我们这些保护组织的人来说,这可以作为一个有用的指南,让你自己在野外发现这些攻击,以便更深入地了解它们的运作方式,以及你可以找到哪些相关方法来保护你的组织,尽管当然也有许多关于此主题的报告也很有用。

VT技巧(基于成功案例) [引用VirusTotal的话…] Acronis团队对FileFix、SideWinder和ShadowVector的调查是威胁狩猎技术的宝库。让我们超越叙述,提取一些高级的、实用的方法,您可以将其应用于自己对基于Web的威胁和多阶段负载的狩猎。

增强您的网页内容YARA规则 一个寻找剪贴板命令和“powershell”的简单YARA规则是一个好的开始,但攻击者知道这一点。通过构建寻找这些命令出现上下文的规则,您可以显著提高检测率。

与其进行通用搜索,不如尝试专注于这些攻击中常见的混淆和页面结构。例如,攻击者经常将恶意脚本隐藏在其他函数或编码字符串中。您的YARA规则可以搜索剪贴板命令与去混淆函数指示符(如atob()(用于Base64)或String.fromCharCode)的组合。

将内容搜索与URL元数据结合起来。内容修饰符也可用于URL,当您将实体设置为url时,您可以使用内容修饰符来搜索URL内容中的字符串。例如,以下查询有助于识别潜在的ClickFix URL,结合了Acronis分享的一些发现以及用于避免检测的潜在字符串。

1
entity:url (content:"navigator.clipboard.writeText" or content:"document.execCommand(\"copy\")") (content:"String.fromCharCode" or content:"atob")

通过高级内容查询剖析负载 当您找到一个负载时,正如Acronis在FileFix站点的源代码中所做的那样,您的工作才刚刚开始。下一步是找到相关样本。攻击者经常重用代码,即使他们混淆了脚本,独特的字符串或逻辑模式也可能暴露他们。隔离脚本中独特的、非通用的部分。寻找:

  • 自定义函数名称
  • 特定变量名称
  • 不常见的注释
  • 命令或API调用的独特序列

专注于代码中未混淆的部分。在FileFix负载中,攻击者可能会混淆C2域名,但用于解码和运行它的PowerShell命令结构在样本中可能是一致的。使用该结构作为您的支点。例如,如果一个负载使用了[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String(...))的特定组合,您可以构建一个查询来查找使用该确切去混淆链的其他文件。

1
behavior:"[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("

别忘了基础设施 Acronis以非常聪明的方式追踪SideWinder。他们对VirusTotal的经验是显而易见的。我们的大多数用户主要将VirusTotal用于文件分析,但有时我们会忘记,有强大的功能可以通过livehunt追踪基础设施。

在SideWinder入侵中,有一个持续监控的哈希值,它对应于一个诱饵文件,并且该文件是从不同的URL下载的。

(配图文字:ITW URL意味着这些URL正在下载被研究的文件,在本例中为RTF诱饵文件)

一种主动快速识别新URL的有趣方法是为URL创建一个livehunt YARA规则,目标是发现正在下载该特定RTF诱饵文件的新URL。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import "vt"

rule URLs_Downloading_Decoy_RTF_SideWinder {
  meta:
    target_entity = "url"
    author = "Virustotal"
    description = "This YARA rule identify new URLs downloading the decoy file related to SideWinder"

  condition:
    vt.net.url.downloaded_file.sha256 == "1955c6914097477d5141f720c9e8fa44b4fe189e854da298d85090cbc338b35a"
    and vt.net.url.new_url
}

另一种同样有趣的方法是直接使用API查询诱饵文件的itw_urls关系。一个用例可能是创建一个脚本,定期(也许每天)调用关系API,检索URL,将它们存储在数据库中,然后每天重复调用以识别新的URL。这是一种简单而有效的方式,可以与任何公司可能已经拥有的技术集成。

以下代码片段可以在Google Colab中执行,一旦您建立了API密钥,您将在all_itw_urls变量中获得与诱饵文件相关的所有itw_urls

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
!pip install vt-py nest_asyncio
import getpass, vt, json, nest_asyncio
nest_asyncio.apply()

cli = vt.Client(getpass.getpass('Introduce your VirusTotal API key: '))

FILEHASH = "1955c6914097477d5141f720c9e8fa44b4fe189e854da298d85090cbc338b35a"
RELATIONS = "itw_urls"
all_itw_urls = []

async for itemobj in cli.iterator(f'/files/{FILEHASH}/{RELATIONS}', limit=0):
    all_itw_urls.append(itemobj.to_dict())

被遗忘的重要工具:VT Diff 当我们读到使用VT Diff的研究时,我们感到高兴,因为它确实是一个很好的创建YARA规则的工具。

在分析一组相关样本时,使用VT Diff功能来发现共性和差异。这可以帮助您识别模式,例如重复的字符串、硬编码值或表明自动生成的元数据工件。

正如Acronis团队所指出的,“我们使用VT Diff功能来比较样本之间的差异,并快速发现模式,例如重复的单词、十六进制值、URL或暗示自动生成的元数据标签(例如字符串’Generado Automaticamente’)”。

您可以从多个地方轻松使用VT Diff:情报搜索结果、收藏集、活动、报告、VT图…

(配图文字:从报告创建VT Diff)

结论 Acronis威胁研究单位在追踪FileFix、SideWinder和Shadow Vector等活动时分享的例子,展示了VT作为全面威胁情报和狩猎平台的能力。通过利用主动Livehunt规则、深度内容分析和丰富元数据支点的组合,安全研究人员可以有效发现和追踪难以捉摸且不断演变的威胁。

这些例子强调,成功的威胁狩猎不仅在于拥有正确的工具,还在于应用创造性和持续的调查技术。正如Acronis所做的那样,能够从一个简单的YARA规则转向全面的活动分析,对于连接各个点并揭示攻击的全貌至关重要。从狩猎基于Web的威胁中的剪贴板操作,到追踪十年之久的漏洞,再到分析恶意的SVG诱饵,Acronis团队展示了对现代威胁狩猎的深刻理解,我们感谢他们与社区分享这些宝贵的见解。

我们希望这篇博客能给您带来启发,并帮助您自己的威胁狩猎工作。打击网络犯罪是一项集体努力,我们分享的知识和经验越多,作为一个社区我们就越强大。

如果您有使用VirusTotal的成功案例希望与社区分享,我们将很高兴收到您的来信。请联系我们,我们很乐意在未来的博客文章中介绍您的故事,邮箱是:practitioners@virustotal.com。

携手共进,我们可以让数字世界更安全。

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