最后更新于2023年10月6日(星期五)14:35:28 GMT

本周是 病毒公告会议 in London. 会议的一部分是网络威胁联盟峰会, 在那里,像Rapid7这样的CTA成员展示他们对各种网络威胁和技术的研究.

Traditionally, 当我们调查一场竞选时, 重点主要放在文件的代码上, 恶意软件的内部工作原理, 以及针对威胁行为体控制的基础设施的通信. 有法医学背景, 尤其是数据取证, 我总是对观察和调查数据的新方法感兴趣. 新技术可以帮助主动跟踪、检测和寻找工件.

在本博客中,其中重点介绍 my presentation 在会议上, 我将深入探讨Shell链接文件(LNK)和虚拟硬盘文件(VHD)的世界。. 作为这项研究的一部分,Rapid7将在 Velociraptor 它可以解析LNK文件,并将在本博客发布时发布.

VHD files

VHD及其后继版本VHDX是代表虚拟硬盘的格式. 它们可以包含通常在物理硬盘驱动器上找到的内容,例如磁盘分区和文件. 它们通常用作虚拟机的硬盘, 是内置在现代版本的Windows中的吗, 是微软管理程序的原生文件格式, Hyper-V. 该格式是由Connectix为他们的虚拟PC创建的, 自2003年微软收购Connectix以来,一直被称为微软虚拟. 正如我们稍后将看到的,单词“Connectix”仍然是VHD文件页脚的一部分.

为什么威胁演员会在他们的活动中使用VHD文件? 微软有一项名为“网络标记”的安全技术(MOTW). 当使用Windows从互联网下载文件时,它们被标记为秘密 Zone.Identifier NTFS备用数据流(ADS),具有称为MOTW的特定值. motwt标记的文件受到限制,无法执行特定操作. Windows Defender SmartScreen, 将文件与已知可执行文件的允许列表进行比较, 是否会处理带有mow标记的可执行文件. SmartScreen将停止文件的执行,如果它是未知的或不受信任的,并会提醒用户不要运行它. 由于VHD文件是一个虚拟硬盘,它们可以包含文件和文件夹. 当文件在VHD容器中时, 他们不会收到mow,也不会绕过安全限制.

注意:微软发布了http://msrc的补丁.microsoft.在2022年底影响容器文件. 这应该通过向用户提供警告来缓解这个问题.

根据底层操作系统,VHD文件可以是FAT或NTFS格式. 这样做的好处是可以应用传统的文件系统取证. 想想Master-File_Table分析、页眉/页脚分析和数据雕刻等等.

Example case:

在过去,我们调查了一个威胁行为者使用VHD文件作为其活动的一部分的案例. 活动流程展示了这种攻击是如何运作的:

在发了一封带有VHD文件的钓鱼邮件之后, 受害者会打开在Windows上自动挂载的VHD文件. Next, mow被绕过,并打开带有后门的PDF文件来下载Sednit或Zebrocy恶意软件. 然后,后门将与威胁参与者控制的命令和控制(C2)服务器建立连接.

检索VHD文件后, 首先,它被挂载为“只读”,因此我们不能对数字证据进行任何更改. 其次,对主文件表(MFT)进行检索和分析:

除了有价值的信息,比如 creation and 最后一次修改 时间(总是要考虑到这些可能被故意改变), 其中两个文件是从一个系统复制到VHD文件. 另一个有趣的发现是VHD磁盘包含一个RECYCLE.包含已删除文件的BIN文件. 这很好,因为这取决于VHD的文件大小(越大, 文件不被覆盖的可能性越大), 可以使用一种称为“数据雕刻”的技术来检索这些已删除的文件.”

使用Photorec作为数据雕刻工具之一, VHD文件再次以只读方式挂载,并且该工具指向此共享以尝试恢复已删除的文件.

在跑了一小会儿之后, 被删除的文件可以被检索并用作调查的一部分. 由于这与本博客无关,我们继续进行页脚分析.

一个VHD文件的页脚分析

The footer, 哪个通常被称为预告片, 附加到文件末尾的是原始头文件的附加内容吗. 它是一种类似于头文件的数据结构.

脚永远不会位于图像文件开始的固定偏移位置,除非图像数据总是相同的大小,因为根据定义,它位于图像数据之后, 哪个是典型的可变长度. 它通常位于距离图片文件末尾一定距离的地方. 与页眉类似,页脚通常有一个确定的大小. 渲染应用程序可以使用页脚的标识字段或幻数, 比如标题, 将其与文件中的其他数据结构区分开来.

当我们查看VHD文件的页脚时,可以观察到一些有趣的字段:

这些值是为VHD文件的页脚指定的数据结构的一些示例, 但也有其他值,如“磁盘类型”,在一个演员的多个活动的比较中是有价值的.

从截图来看, 我们可以看到“conectix”是VHD文件页脚的神奇数字值, 你可以把它比作一个小指纹. 从其他值来看, 我们可以确定这个人使用的是Windows操作系统, 我们可以从HEX值推导出VHD文件的创建时间.

从威胁搜索或跟踪的角度来看,这些值可能非常有用. 在下面的例子中, 编写了一个Yara规则来识别文件为VHD文件,其次是演员使用的硬盘驱动器的序列号:

Shell链接文件(LNK),又名快捷文件

A Shell link, 也被称为捷径, 这种格式的数据对象是否包含可用于访问另一个数据对象的数据. 扩展名为“LNK”的Windows文件的格式称为Shell链接二进制文件格式. 需要存储对目标文件的引用的能力的程序也可以使用Shell链接. Shell链接经常用于简化应用程序启动和链接场景, 例如对象链接和嵌入(OLE).

LNK文件在多种网络犯罪中被大量滥用 campaigns 下载下一阶段的有效载荷或包含隐藏在某些数据字段中的代码. 数据结构 specification LNK文件提到LNK文件存储各种信息, 在“额外数据”部分包括“可选数据”. 这是一个值得关注的有趣领域.

以下是Extra Data结构的概述:

' Header ' LinkInfo部分包含有关所使用的驱动器类型的有趣数据, 但更重要的是,它包含actor在创建LNK文件时使用的硬盘的SerialNumber:

Other interesting information can be found; for example, 关于所使用的图标和在此文件中使用的值, 它包含一个有趣的字符串.

再把这些信息结合起来, 一个简单的Yara规则可以为这个特殊的LNK文件编写,它可能已经在多个活动中使用:

最后一个例子是在Extra Data部分查找“Droids”值. Droids代表数字记录对象识别. 示例文件中有两个值:

这些字段中的值转换为攻击者系统的MAC地址… 是的,你看对了,现在可以闭上你张开的嘴了…

此外,这也可以用于构建之前的LNK Yara规则,其中您可以替换“.\\3.带有MAC地址值的部分,以查找在具有该MAC地址的特定设备上创建的LNK文件.

In a recent campaign 名为“树莓罗宾”的LNK文件被用来传播恶意软件. 分析LNK文件并运用上述调查技术, 创建了以下Yara规则:

迅猛龙LNK解析器

基于对LNK文件的研究,我们开发了一个更新的LNK解析器 Matt Green from Rapid7 for Velociraptor,我们先进的开源端点监控、数字取证和网络响应平台.

使用解析器, 多个LNK文件可以被处理,信息可以被提取出来作为Yara规则的输入,这些规则可以被推回平台进行搜索.

Windows.Forensics.Lnk 使用Velociraptor的内置二进制解析器解析LNK快捷方式文件. 工件输出与Microsoft的ms- shlink协议规范一致的字段和一些分析提示,以帮助检查或检测用例. 用户可以选择使用正则表达式搜索关键字段中的特定指标, 或者控制在解析过程中冒泡出现的可疑项的定义.

一些默认的目标可疑属性包括:

  • Large size
  • 自动执行的启动路径位置
  • 环境变量script -配置为执行的通用脚本的环境变量
  • 没有带有环境变量的目标,只有执行
  • 可疑的参数大小-默认超过250个字符的大参数
  • 参数有刻度——刻度在恶意LNK文件中很常见
  • 参数有环境变量——环境变量在恶意link中很常见
  • 参数具有罕见字符-查找可能表示混淆的特定罕见字符
  • 有前导空格的参数. 恶意LNK文件可能有许多前导空格来混淆某些工具
  • 具有http字符串的参数- link通常用作下载摇篮
  • 可疑参数-在字段中观察到的一些常见的恶意参数
  • 可疑trackerdata主机名
  • 主机名与trackerdata主机名不匹配

由于使用了迅猛龙的二进制解析器, 该工件比其他分析工具要快得多. 它可以作为分析的一部分部署,也可以使用IOCRegex和/或SuspiciousOnly标志作为大规模的搜索功能部署.

Summary

值得研究的是我们在威胁行为者活动中倾向于跳过的文件类型的特征. 在这篇博客中,我提供了一些例子,说明如何从VHD和LNK文件中检索工件,然后用于创建搜索逻辑. 作为这项研究的结果, Rapid7很高兴在Velociraptor中发布一个新的LNK解析器功能,我们欢迎任何反馈.