恶意软件开发、分析和 DFIR 系列 - 第 四 部分

admin 2024年8月10日11:24:53评论9 views字数 13849阅读46分9秒阅读模式

恶意软件开发、分析和DFIR系列

第四部分

介绍

在这篇文章中,我们将从 Windows 取证的基础知识开始,了解对于数字取证和事件响应 (DFIR) 调查很重要的 Windows 文件系统和工件。Windows 取证对于调查恶意软件攻击、响应事件、搜寻异常、恢复数据、确保合规性、执行内部调查、增强安全性、执行数字审计和收集威胁情报至关重要。

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

Windows 文件系统

文件系统对于在计算机上组织、管理和存储数据至关重要,有助于高效的数据检索和管理。它提供了一个结构化框架,用于将数据排列到文件和目录中,从而简化了用户和应用程序的访问和操作。文件系统处理存储空间的分配,跟踪文件位置,并通过权限和访问控制确保数据的完整性和安全性。如果没有文件系统,数据将以混乱和无法访问的方式存储,从而导致效率低下和潜在的数据丢失。从根本上说,文件系统对于计算机系统的功能、性能和可靠性至关重要,它确保数据被系统地存储并易于访问。

Windows 在其存在的历史中使用了不同的文件系统,文件分配表 (FAT) 文件系统是在 1977 年创建的,用于软盘,它没有安全功能、很少的时间戳和一些黑客攻击,这使得它迄今为止一直被用作文件系统。FAT 有几种不同的版本,分别是 FAT12、FAT16、FAT32 和 exFAT。它们之间的主要区别在于文件分配表 (FAT) 中可寻址条目的大小,它决定了最大卷大小。

NTFS(新技术文件系统)是 Microsoft 于 1993 年开发的高级文件系统,对于 Windows 操作系统至关重要。它提供了强大的功能,例如支持大容量、增强的文件安全性、数据压缩和加密,这些对于个人和企业环境都至关重要。

NTFS 有几个功能使其比 FAT 文件系统更安全可靠,例如:

<> Reduced Fragmentation of data
<> Filesnames with mixed cases and more than 255 characters
<> Transaction journaling when crash recovery
<> compression, encryption, and quota enforcement support at the filesystem level
<> support for sparse files, hard links, soft links, and reparse points
<> extent-based allocation for large files
<> smaller cluster sizes for efficient storage
<> support for alternate data streams
<> POSIX support and etc..

NTFS 的一些有趣功能是:

<>日志文件以记录对元数据的更改,以跟踪文件系统的状态和完整性,这称为日记或事务日志记录。通过 USN(更新序列号)日志或更改日志跟踪系统上已更改的所有文件。

<> POSIX 合规性,并支持硬链接和软链接,软链接是具有多个名称和文件链接器的单个文件。

<>对象 ID 以跟踪文件和目录,即使它们已被移动或重命名。

<> 安全功能,支持隐私分离和访问控制列表 (ACL) 以限制对文件和目录的访问。

<> 使用卷影复制功能进行卷备份。

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

让我们稍后再写一篇关于 Windows 中的文件系统和分区的文章,然后继续讨论对 DFIR 调查很重要的工件。

Windows 注册表

注册表是存储系统重要配置数据的数据库文件的集合。它存储软件、硬件和系统组件信息。注册表可以详细说明已安装的软件、系统配置、最近使用的文件和启动程序。可以使用“regedit.exe”来查看和操作注册表。在我看来,分析蜂巢时使用的最佳工具是 Eric Zimmerman 的注册表浏览器。

恶意软件开发、分析和 DFIR 系列 - 第 四 部分
The registry has four root keys:
HKEY CLASSES ROOT- - HKCRHKEY CURRENT USER- - HKCUHKEY LOCAL MACHINE- - HKLMHKEY USERS- - HKU

注册表既可以在实时系统上访问,也可以离线访问。如果处于离线状态,您将需要知道注册表文件的存储位置。大多数文件存储在 [OS 驱动器]windowssystem32config 目录下。这些注册表配置单元是 DEFAULT、SAM、SECURITY、SOFTWARE 和 SYSTEM。

这些文件对应于它们在注册表中的含义。所有这些系统文件都将位于 HKEY_LOCAL_MACHINE 配置单元下的子含义 SAM、SECURITY、SOFTWARE 和 SYSTEM 下。该HKEY_LOCAL_MACHINE包含系统设置、启动文件、计算机配置和其他默认文件。

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

SYSTEM 配置单元存储 HKEY_LOCAL_MACHINESYSTEM,包括硬件和服务配置。它还将列出系统上卷和驱动器的大多数原始设备名称,包括 USB 密钥。

SOFTWARE 配置单元存储来自 HKEY_LOCAL_MACHINESOFTWARE 的数据,该配置单元是找到应用程序的所有设置的位置。Windows 程序/产品的设置也存储在此处。

The NTUSER.DAT 配置单元包含配置和环境设置,其中包括与用户活动相关的大量可识别数据。

SAM 配置单元包含所有本地用户帐户和组。它位于系统上的 HKEY_LOCAL_MACHINESAM 中。

SECURITY 配置单元包含 SAM 和操作系统使用的所有安全信息,包括密码策略、组成员身份信息等。

The AMCACHE.HVE 是通过更新添加到 Windows 7 中的,尽管它最初是在 Windows 8 中引入的。此配置单元用于内部应用程序兼容性功能,该功能允许 Windows 运行从其操作系统的早期迭代中找到的旧可执行文件。此 hive 文件用于跟踪执行证据。这更像是 PCA(仅在 Windows 11 中用于类似目的的人工制品)

每 10 天创建一次备份注册表配置单元,RegIdleBackup 计划任务将运行。它会将 SAM、DEFAULT、SYSTEM、SOFTWARE 和 SECURITY 配置单元复制到 %windows%System32ConfigRegBackbackup 目录中

除了核心系统配置单元外,每个用户都有一组注册表配置单元。这些配置单元存储相应用户的应用程序和设置的配置数据。注册表配置单元可用于枚举最近使用的文件。它还可以显示用户在硬盘驱动器上搜索的最后文件。它还可以显示用户在其浏览器窗口中输入的最后键入的 URL。它还可以显示在系统上执行的最后命令以及打开的文件。您还可以见证哪些文件是最后保存到 Windows 系统的。

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

NTUSER.dat配置单元包含与特定用户相关的所有键。

还有一个从 Windows 7 添加的其他配置单元,位于 C:Users<username>AppDataLocalMicrosoftWindowsUsrClass.dat。这个配置单元非常重要,因为它包含有关其他程序执行信息的一些关键信息,并使我们能够判断用户打开或关闭了哪些文件夹。

该UsrClass.dat的主要目的是帮助虚拟化注册表根目录进行用户帐户控制 (UAC)。每个已注册的文件扩展名都存在一个键。UAC 虚拟化注册表位于 VirtualStore 键中。

在带电的实时计算机上,注册表配置单元看起来与脱机分析时的注册表配置单元大不相同。大多数初学者在在线阅读注册表蜂巢时,都会遇到它们的正式名称。

HKEY_LOCAL_MACHINE<SystemSoftwareSecuritySAM>HKEY_USER or HKEY_CURRENT_USER

这些在使用 regedit 时很常见,有人可以轻松打开 HKEY_LOCAL_MACHINE 键并查看子键,其中包括 %windir%System32config 目录中的四个主要配置单元文件(System、Security、Software 和 SAM)。为了便于使用,我们在编写时将HKEY_LOCAL_MACHINE缩写为 HKLM。在分析用户的配置单元时,通常会浏览到 USER(如果有多个用户登录HKEY_)或 HKEY_CURRENT_USER(当前登录的用户)。

注册表键/值对:

• Keys - Similar to Folders (keys) and subfolders (subkeys)         Produces a folder/directory hierarchy• Values - Data stored within a key         Contain Data in form of: Strings, binary data, integers, lists, hexadecimal         This is where the most valuable data is found

注册表项类似于文件系统中的文件夹。它们可以包含子键(子文件夹)和值(文件)。通常,在编写注册表项的位置时,会写入完整的注册表项,以便轻松找到它。对调查人员有很大帮助的一件事是,每个注册表键都有最后一次写入时间或最后一次修改时间。这对于了解键中的值何时更改很有用,并且它包含与情况相关的内容,我们可以将该时间映射到系统上发生的其他活动。

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

跟踪系统上每个键的最后一次写入时间。将存储任何键值的最后一次更新的时间戳,该时间戳通常以 UTC 显示,在 DFIR 调查中非常重要。例如,您可以看到攻击者/受害者最后一次搜索包含与他提出反对意见的机密文件相关的某些单词的文件的时间。了解事件发生的时间,并将该数据与其他系统事实配对,例如用户登录的时间以及文件是否被移动/复制到 USB。永远记住,当值更新或添加到键时,最后一次写入时间会更新。

Hive 事务日志

Windows 操作系统将注册表写入缓存在两个位置:内存中和磁盘上的事务日志文件中。事务日志文件,以相应的配置单元命名(例如,HIVENAME.LOG1 和 HIVENAME。LOG2),与注册表配置单元文件位于同一目录中。从 Windows 8 开始,Microsoft 改变了系统永久写入 Hive 文件的方式。事务日志文件会先临时缓存注册表写入,然后再将其永久写入配置单元。Windows 8.1 及更高版本中引入的一项重大更改意味着,除非在打开注册表配置单元文件时分析事务日志文件,否则过去一小时内的最近活动可能会保留在事务日志文件中,并且不会反映在注册表配置单元文件中。

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

这种反常现象值得进一步探索。当 Windows 操作系统修改注册表配置单元文件中的键或值时,更改首先发生在内存中。将这些更改写入磁盘称为“配置单元刷新”。从 Windows 8 开始,临时数据将写入事务日志文件,这些文件会不断追加这些日志。对核心配置单元文件的永久写入不会立即发生,而是在不活动、系统关闭或自上次写入主配置单元文件后一小时后发生。随着时间的推移,此更改减少了磁盘写入,从而通过最大程度地减少连续的注册表配置单元写入来提高操作系统的性能。

这具有重大的取证意义。最近的注册表更改可能会在事务日志文件中找到,而不是在正在检查的配置单元文件中找到。大多数注册表取证工具不会检查或提醒用户注意此问题。这在跟踪 Windows 操作系统内最近的用户或进程交互时尤其重要。许多取证工具会忽略存储在事务日志文件中的数据,尤其是在 Windows 8 系统上,可能会遗漏最近的系统更改。但是,仍然可以依赖其他工件。

MRU 列表

“最近使用”(MRU) 列表负责在 Internet Explorer 中键入内容时出现的下拉菜单、关键字以及“自动完成”功能处理的其他术语。

在注册表中,MRUList 是键值,用于跟踪注册表键的最新添加项,从而允许键数据确定条目的添加顺序。虽然这可以在 Microsoft 操作系统内部用于各种目的,但它在 DFIR 中特别有用。

已删除的注册表

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

与文件系统类似,注册表配置单元包含可用和分配的数据区域。当删除注册表项时,它只是未分配,就像文件一样,因此可以使用取证工具进行恢复。有人可能出于各种原因想要恢复已删除的密钥。通常,删除的密钥是由于使用隐私清理器、卸载程序和清除浏览器历史记录造成的。在已删除的注册表键中可以找到许多有价值的案例数据工件,因为更高级的用户/攻击者可能会试图在典型的 Windows 操作系统上掩盖他们的踪迹。

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

用户信息

在案例中,对用户进行分析至关重要。了解用户登录特定计算机的频率、上次登录时间、最后一次登录失败以及密码策略非常有用。此外,许多程序(如回收站)使用用户的 RID(相对标识符)而不是用户名。在调查期间,了解如何在计算机上找到此信息至关重要。

我们可以检查管理帐户的 SAM 注册表配置单元,以查看哪个用户映射到哪个 RID,并回答上述所有问题。您需要做的就是将 SAM 配置单元导入到注册表资源管理器中并检查内容。

SAM

我们要查找信息的第一个地方是 SAM 配置单元。SAM 配置单元可帮助我们枚举计算机上具有配置文件的所有用户。如果您的计算机是域的一部分,则包含用户配置文件的 SAM 文件将位于域控制器上。

将用户名与 RID(相对标识符)绑定:

Windows 计算机上的许多项目都指向用户的 RID,而不是他们的用户名。了解这种联系对于各种取证分析至关重要。

对用户进行分析:

根据用户的登录习惯和错误对用户进行分析非常重要。您可以轻松确定每个用户的最后一次登录以及他们的登录总数。这两条信息都很有价值,因为它们指示了特定用户在计算机上的活跃程度。请注意,如果使用 Microsoft 帐户,则上次登录计数不会增加;但是,对于本地 (非 Microsoft) 帐户,它仍将递增。

Account Usage (SAM)Account CreatedLast LoginLast Failed LoginLast Password ChangeGroup Membership

SAM 非常有用的另一件事是用户登录身份验证安全问题以明文形式存储。它存储在 SAM/域/帐户/用户中

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

系统配置

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

Windows 操作系统版本

Windows 操作系统的版本对于在分析过程中准确查找和利用正确的工件至关重要。目录路径、工件类型,甚至默认程序都因 Windows 操作系统的版本和服务包而异。了解操作系统版本还有助于在使用 imageinfo 在 Volatility 中分析内存时节省时间。

您可以在 SOFTWARE 配置单元的以下键中找到此信息:SOFTWAREMicrosoftWindows NTCurrentVersion。此键提供有关您正在调查的计算机的特定 Windows 操作系统、Service Pack 和安装日期的详细信息。值得注意的是,安装日期是少数几个不遵循标准 64 位 Windows 时间格式的日期之一;相反,它处于纪元时代。

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

识别控制集

什么是控制集?,控制集包含控制系统启动所需的系统配置设置,例如驱动程序和服务信息。

为什么通常有两个控件集(ControlSet001 和 ControlSet002)?ControlSet001 通常是刚启动到计算机的控件集,表示最新版本。

ControlSet002 是“最后已知良好”版本,这是在上次启动期间被视为良好的配置。如果在当前启动周期中出现问题,将保留此版本。

在非活动计算机上检查 ControlSet 时,ControlSet001 表示上次成功启动,ControlSet002 表示在此之前的上一次成功启动。

打开 SYSTEM 配置单元时,通常会看到 ControlSet 的两个注册表路径:ControlSet001 和 ControlSet002。若要确定其中哪个表示易失性配置单元“CurrentControlSet”,需要检查 Select 键。如果当前键值设置为 0x1,则对应于 ControlSet001,反之亦然。

计算机名称

计算机名称有助于在日志、网络活动等中映射系统,它主要用于记录目的和验证,但不应被忽视。计算机名称的位置位于 SYSTEM 配置单元中:SYSTEMCurrentControlSetControlComputerNameComputerName

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

时区信息

尽管大多数注册表时间和最后写入时间都以 UTC 记录,但系统的日志文件和其他基于时间的信息与特定时区相关联。例如,FAT 文件系统上的文件系统时间戳会根据控制面板小程序中设置的本地时区进行更新。用户可以轻松更改时区。此键的上次写入时间将显示上次更改此计算机的时区的时间。

这也将显示上次在计算机上更改时区的时间。强烈建议将本地分析机器时间设置为 UTC,以避免取证工具可能意外引入的任何偏差,从而可能导致对时间相关数据的误解。

SYSTEM/CurrentControlSet/Control/TimeZoneInformation

NTFS 上次访问时间

最后访问时间戳是一个取证工件,在形成意见之前需要相当谨慎。它经常被错误地归因于文件最后一次被“打开”的时间,而事实上,如果文件只是被“触摸”而没有被打开,它也可能被更新。

如果审查员不小心,关于最后访问时间戳的明确陈述可能会导致不准确的报告或证词。

要确定上次访问时间戳是否正在您正在检查的系统上更新,您可以检查以下注册表项。

SYSTEMCurrentControlSetControlFileSystem

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

网络接口

列出网络接口非常重要。网络接口在许多情况下都是关键,从长远来看可以为您节省很多麻烦。

密钥位于 SYSTEM 配置单元中:

SYSTEMCurrentControlSetServicesTcpipParametersInterfacesSYSTEMCurrentControlSetServicesTcpipParametersInterfaces

此密钥包含大量有用的信息。具体来说,它允许您查看 TCP/IP 配置、IP 地址、网关和其他可能有用的信息。如果计算机配置了 DHCP,它将包含分配的 DHCP IP 地址、子网掩码和 DHCP 服务器的 IP 地址。

对于涉及基于网络的数据的情况,此信息非常有用。在编制报告时,它被认为是显示有关机器的基本基本信息。

接口 GUID 还可用于关联从其他注册表项获取的其他网络配置文件数据。在案例中记录接口及其各自的 GUID 对于确定网络的访问方式非常有用。

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

网络历史记录

网络位置感知 (NLA) 旨在通过适当调整防火墙设置来帮助用户识别其计算机的连接位置。

NLA 还提供独特的取证信息。它显示计算机曾经连接过的所有网络的列表,由其 DNS 后缀标识。这对于识别计算机已连接到的 Intranet 和网络非常重要。

Most info regarding NLA will be stored under the following three places:HKLMSoftwareMicrosoftWindows NTCurrentVersionNetworkListHKLMSoftwareMicrosoftWindowsCurrentVersionHomeGroupC:WindowsSystem32NetworkListHistorical data can be found under the Cache key:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionNetworkListNlaCache
恶意软件开发、分析和 DFIR 系列 - 第 四 部分

网络配置文件 键 - 第一个/最后一个连接

密钥现在位于

SOFTWAREMicrosoftWindows NTCurrentVersionNetworkListProfiles。

位于此键中的每个子项都将包含一个 GUID,该 GUID 将包含网络名称和网络类型。网络类型将列为 0x47(十六进制)表示无线,0x06(十六进制)表示有线

能够识别网络类型将有助于确定用户如何连接到之前定义的网络名称。使用 ProfileGuid,可以轻松地将历史网络信息与 MAC 地址和 SSID 映射到上次连接的正确日期和时间。

注意:此处的时间是本地时间,而不是 UTC

系统启动自动启动程序

NTUSER.DATSoftwareMicrosoftWindowsCurrentVersionRunNTUSER.DATSoftwareMicrosoftWindowsCurrentVersionRun OnceSoftwareMicrosoftWindowsCurrentVersionRunOnceSoftwareMicrosoftWindowsCurrentVersionpoliciesExplorerRunSoftwareMicrosoftWindowsCurrentVersionRun

以上列出了在用户登录事件期间执行的程序/应用程序。这些不会在启动时执行。启动没有特定的顺序,这些键存在于 NTUSER 中。DAT 和 SOFTWARE 配置单元。

SYSTEMCurrentControlSetServices

如果 Start 键设置为 0x02,则服务将在启动时启动。对于在启动时启动的服务,可以在 SYSTEM 配置单元中检查上述键。在野外常见的恶意软件持久性技术之一。

关机信息

有时,有必要知道系统上次关闭的时间,以及成功关闭的次数。以下键将非常有用:

SYSTEMCurrentControlSetControlWindows(关机时间)

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

SYSTEMCurrentControlSetControlWatchdogDisplay(关机计数)

上次关机时间可用于检测用户的某些类型的活动。关机计数还指示用户通常是否正确关闭机器。

已安装的应用程序

SoftwareMicrosoftWindowsCurrentVersionUninstallSoftwareWOW6432NodeMicrosoftWindowsCurrentVersionUninstallSoftwareMicrosoftWindowsCurrentVersionApp PathsSoftwareWOW6432NodeMicrosoftWindowsCurrentVersionInstallerUserDataSIDProductsNTUSERSoftwareMicrosoftWindowsCurrentVersionUninstallNTUSERWOW6432NodeSoftwareMicrosoftWindowsCurrentVersionUninstallNTUSERSoftwareMicrosoftWindowsCurrentVersionApp Paths

这些注册表项存储与已安装的应用程序、其路径和用户特定设置相关的信息。它们可用于跟踪软件安装和卸载、确定应用程序路径以及了解用户特定的软件配置。

卸载密钥为我们提供了以下信息:

<?> Application Name<?> Application Version<?> Application File Size<?> Application Location/Path<?> Software Publisher<?> Install Date

这些密钥在取证分析中特别有价值,可用于了解软件使用情况、检测未经授权的安装以及重建 Windows 系统上的用户活动。

用户活动和执行的证据

<?> UserComms<?> File Download<?> Program Execution<?> File Opening/ Creation<?> File Knowledge<?> Physical Location<?> USB Key Usage<?> Account Usage<?> Browser Usage

Wordwheelquery 键

NTUSER的。DATSoftwareMicrosoftWindowsCurrentVersionExplorerWordWheelQuery

WordwheelQuery 将记录机器上程序和文件的历史搜索。可以在“开始”菜单或“资源管理器文件夹”视图搜索栏中输入搜索查询。能够确切地知道特定用户何时寻找人工制品对调查非常有用。

类型化路径

NTUSER的。DATSoftwareMicrosoftWindowsCurrentVersionExplorerTypedPaths

此键记录在“开始”菜单或资源管理器栏中手动键入路径的时间。在您需要证明用户对某个位置有特定了解的情况下,它非常有用。通过显示用户必须键入或剪切并粘贴该位置到资源管理器中,它表明直接了解该位置,从而排除了资源管理器的意外导航。

此键中的条目按最近的使用情况自动排序,#1 位置是最新的。虽然没有 MRU(最近使用)键,但路径保持顺序,url1 值是最后一个添加的值,url2 是下一个值,依此类推。

最近文档

NTUSER的。DATSoftwareMicrosoftWindowsCurrentVersionExplorerRecentDocs

此键及其子键对于调查与特定文件相关的活动非常有价值。虽然此键的原始值可能难以读取,但注册表资源管理器等工具可以分析内容以便于查看。

通过注册表查看器查看时,这些值按 MRU(最近使用)列表顺序显示。MRU 列表首先显示最近打开的文件,最后列出打开时间最远的文件。通过此组织,可以更轻松地按时间顺序跟踪文件访问活动。

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

Microsoft Office 最近文档:

在注册表中找到的每个 Office 版本版本

NTUSER的。DATSoftwareMicrosoftOfficeVERSION

NTUSER的。DATSoftwareMicrosoftOfficeVERSIONUserMRULiveID_####文件 MRU

OpenSaveMRU

此键跟踪已在 Windows shell 对话框中打开或保存的文件。它不仅包括来自 Internet Explorer 和 Firefox 等 Web 浏览器的数据,还包括来自大多数常用应用程序的数据。一个有时被忽略的重要细节是,此键还跟踪同一对话框的自动完成术语。这可以提供有关各种应用程序中用户活动的宝贵见解。

密钥位于 HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerComDlg32OpenSaveMRU

上次访问MRU:

HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerComDig32LastVisitedMRU

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

此键跟踪应用程序用于打开 OpenSaveMRU 键中记录的文件的特定可执行文件。此外,它还记录该应用程序访问的最后一个文件的目录位置。数据以二进制格式存储。有没有想过应用程序如何记住您上次打开文件的位置?“OpenSave”对话框使用此键来显示当您尝试打开或保存文件时该应用程序使用的最后一个目录。它维护自己的 MRU(最近使用)列表和上次写入时间。

最后执行的命令

HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerRunMRUHKCUSoftwareMicrosoftWindowsCurrentVersionExplorerPoliciesRunMRU

每当有人执行 Start -> Run 命令时,它都会记录他们执行的命令的条目。此键将列出从桌面上的 Windows 栏开始执行的命令>运行。命令的执行顺序列在 RunMRU 列表值中。字母表示命令的执行顺序。

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

“最近使用的应用”键

除了跟踪该应用程序打开的最新文件 - 文件打开的证据外,它还跟踪基于 GUI 的应用程序的执行证据。

NTUSER的。DATSOFTWAREMicrosoftWindowsCurrentVersionSearchRecentApps

在 RecentApps 键中,子键按 GUID 进行组织。每个 GUID 都表示已执行的不同应用程序。每个 GUID 子项中的值包括:

APPID:应用程序的名称。

LastAccessTime:以 UTC 为单位的最后执行时间。

LaunchCount:应用程序启动的次数。

LaunchCount 值与 UserAssist 键的运行计数匹配,从而提供一致的应用程序使用情况记录。

UserAssist - GUI 程序执行

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

NTUSERSoftwareMicrosoftWindowsCurrentversionExplorerUserAssistGUIDCount

如果用户/攻击者执行了一个程序,我们可以确定它最后一次执行的时间以及它在系统上执行了多少次。嫌疑人的 NTUSER.dat 注册表配置单元中的 USERASSIST 键对于此目的特别有用。GUI(图形用户界面)应用程序在 NTUSER 中留下用户活动的特定痕迹。DAT 配置单元。

具体而言,USERASSIST 键提供有关程序上次执行时间和执行次数的信息。这些密钥对于取证分析以跟踪系统上的应用程序使用情况和用户活动至关重要。

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

通过分析 UserAssist 键,您可以确定在 Explorer 中启动的每个 GUI 程序的以下内容。

<?> Last Run Time (UTC)<?> Run Count<?> Name of GUI Application<?> Focus Time: Total time an application has focus, expressed in milliseconds<?> Focus Count: Total number of times an application was re-focused in Explorer (mouse moved over application and clicked).<?> Duration of Run

UserAssist 键将列出每个用户的 Windows GUI 界面启动的所有应用程序(它不会列出 CLI 应用程序)。此外,它还将列出每个应用程序的上次运行时间以及执行它的总次数。

注意:您找到的这些键的值不可读,因为它们是 ROT-13 编码的。键的名称值将始终以UEME_开头,然后是 RUNPATH、RUNCPL 或 RUNPIDL。这些名称中的每一个都对文件的执行方式具有重要意义。

RUNPATH 是可执行文件的绝对路径。用户很可能通过 Windows 资源管理器界面双击了可执行文件。

RUNCPL 是控制面板小程序的推出。如果你 查看任何用户更改了系统上的“安全性”或“用户设置”的值。

RUNPIDL 是指向实际文件的指针,例如 LNK 文件的快捷方式。

UIQCUT对通过“快速启动”菜单快捷方式启动的程序进行计数。

UISCUT 对通过桌面快捷方式启动的程序进行计数。

UITOOLBAR 条目保留有关 Windows 资源管理器工具栏单击的数据。

BAM - 后台/桌面活动审查器

BAM 密钥记录有关应用程序及其后台活动的信息,包括上次执行时间。它有助于识别哪些应用程序在后台运行时正在消耗资源。

DAM 跟踪桌面应用程序的活动,包括执行时间和资源使用情况。这有助于通过控制这些应用程序的运行方式来优化性能。

SYSTEMCurrentControlSetServicesBamStateUserSettings

SYSTEMCurrentControlSetServicesDAMStateUserSettings

Shimcache - 应用程序兼容性缓存

SYSTEMCurrentControlSetControlSessionManagerAppCompatCacheAppCompat 缓存

应用程序兼容性缓存由 Microsoft 设计,用于在启动程序时检测兼容性问题。此子系统解决了可能已为旧版本的 Windows 开发的程序的情况,通过调用不同操作系统版本的属性并进行必要的环境调整,确保它可以在较新的环境中顺利运行。

用户在通过兼容性向导执行程序时会遇到兼容性功能。这些模式通常被称为“Shims”。默认情况下,标准 Windows 安装中包含数百个填充码。操作系统会查阅 AppCompatCache 注册表项,以确定程序是否需要填充填充以实现兼容性。

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

AppCompatCache 最有价值的方面之一是它能够跟踪有关可执行文件的基本详细信息,包括最后修改日期、文件路径和文件大小。在 Windows XP(32 位)上,它还记录上次执行时间(最后更新时间)。此密钥对于事件响应者特别有用,因为它提供了有关应用程序是否已执行的重要见解,有助于检测系统上的潜在恶意活动。

此外,如果将应用程序写入磁盘、修改或重命名应用程序,它将触发 AppCompatCache 中的新条目。此行为对于确定文件在主机上下载后是否已重命名特别有用。它还有助于识别时间踩踏实例,其中 AppCompatCache 条目的最后修改时间与实际应用程序的上次修改时间不同。这种差异表明文件时间戳可能被篡改或操纵。

AmCache.hve - 应用程序兼容性缓存

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

C:WindowsAppCompatProgramsAmcache.hve

Amcache.hve Hive 包含大量用于跟踪可执行文件的信息,包括有关执行文件的位置的详细信息等。与在用户的 NTUSER 中找到的 UserAssist 键不同。DAT 配置单元,允许将程序执行归因于特定用户,Amcache.hve 不提供特定于用户的归因。

但是,Amcache.hve 包含有价值的详细信息,例如可执行文件的完整路径、文件的 NTFS $Standard信息、上次修改时间、SHA1 哈希(删除前导 0000),在某些情况下,还包含其他文件信息,如版本、产品名称、公司名称和描述。此信息对于取证分析和跟踪系统上文件的执行和修改至关重要。

Amcache 配置单元通常跟踪已安装的程序和已执行的程序。通过安装程序安装的程序将显示在 Amcache.hveRootFile 和 Amcache.hveRootPrograms 位置下。这些配对的位置称为“关联条目”。

结论

在这篇文章中,我们讨论了 Windows 文件系统、注册表和对 DFIR 调查很重要的工件。DFIR 专业人员可以重建用户活动、跟踪应用程序执行、识别恶意软件持久性机制,并发现未经授权访问或数据泄露的证据。Windows 取证是数字调查的重要组成部分,可提供有关系统行为、用户交互和安全事件的宝贵见解。通过利用存储在文件系统、注册表和工件中的信息,取证分析师可以有效地调查安全事件,响应数据泄露、恶意软件攻击,并增强组织的整体安全态势。在以后的文章中,我们将讨论其他重要的工件,如预取、SRUM、事件日志,并在 Windows 取证方面获得更高级的了解。

恶意软件开发、分析和 DFIR 系列 - 第 四 部分

原文始发于微信公众号(合规渗透):恶意软件开发、分析和 DFIR 系列 - 第 四 部分

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月10日11:24:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   恶意软件开发、分析和 DFIR 系列 - 第 四 部分http://cn-sec.com/archives/3050835.html

发表评论

匿名网友 填写信息