Introduction

介绍

我们在 上一个房间 中学习了 Windows 取证,并练习了从 Windows 注册表中提取取证工件。我们学习了如何从 Windows 注册表中收集系统信息、用户信息、访问的文件和文件夹、运行的程序以及连接到系统的外部设备。

但是,注册表并不是取证工件存在的唯一地方。在这个房间里,我们将了解其他地方的取证工件。我们将了解 Windows 常用的不同文件系统,以及在查找工件时在这些文件系统中查找的位置。我们将确定位置和工件以证明执行、文件/文件夹使用或知识以及外部设备使用的证据。我们还将介绍恢复已删除文件的基础知识。对于这个房间的大部分内容,我们将使用 Eric Zimmerman 的工具 来解析工件中存在的信息。我们已经在上一个房间里使用了 Registry Explorer 和 ShellBags Explorer。对于某些任务,我们将使用 Autopsy。

The FAT file systems

计算机系统中的存储设备(例如硬盘驱动器或 USB 设备)只是一组位。要将这些位转换为有意义的信息,需要对它们进行组织。为此,计算机科学家和工程师创建了不同的文件系统,按照标准组织硬盘中的位,以便可以轻松解释存储在这些位中的信息。

文件分配表 (FAT):
文件分配表 (FAT) 是这些文件系统之一。自 20 世纪 70 年代末以来,它一直是 Microsoft 操作系统的默认文件系统,并且仍在使用,尽管不再是默认文件系统。顾名思义,文件分配表会创建一个表,索引分配给不同文件的位的位置。如果您对 FAT 文件系统的历史感兴趣,可以前往 Wikipedia 页面。

FAT 文件系统的数据结构:
FAT 文件系统支持以下数据结构:

簇:
簇是 FAT 文件系统的基本存储单元。存储在存储设备上的每个文件都可以看作是一组包含信息位的簇。

目录:
目录包含有关文件标识的信息,如文件名、起始簇和文件名长度。

文件分配表:
文件分配表是所有簇的链接列表。它包含簇的状态和指向链中下一个簇的指针。

总之,组成文件的位存储在簇中。文件系统上的所有文件名、它们的起始簇和它们的长度都存储在目录中。磁盘上每个簇的位置存储在文件分配表中。我们可以看到,我们从由位组成的原始磁盘开始,并对其进行组织以定义哪组位指的是磁盘上存储的哪个文件。

FAT12、FAT16 和 FAT32:
FAT 文件格式将可用磁盘空间划分为簇,以便更直接地寻址。这些簇的数量取决于用于寻址簇的位数。因此,FAT 文件系统有不同的变体。 FAT 最初采用 8 位簇寻址,被称为 FAT 结构。后来,随着存储需求的增加,引入了 FAT12、FAT16 和 FAT32。最后一个是在 1996 年推出的。

理论上,FAT12 使用 12 位簇寻址,最多可容纳 4096 个簇(2^12)。FAT16 使用 16 位簇寻址,最多可容纳 65,536 个簇(2^16)。对于 FAT32,用于寻址簇的实际位是 28,因此簇的最大数量实际上是 268,435,456 或 2^28。但是,并非所有这些簇都用于文件存储。有些用于管理目的,例如,存储簇链的末尾、磁盘的不可用部分或其他此类目的。

下表总结了前面提到的信息以及它如何影响最大卷和文件大小:

属性 FAT12 FAT16 FAT32
可寻址位 12 16 28
最大簇数 4,096 65,536 268,435,456
支持的簇大小 512B - 8KB 2KB - 32KB 4KB - 32KB
最大卷大小 32MB 2GB 2TB

尽管 FAT32 的最大卷大小为 2TB,但 Windows 将格式化限制为仅 32GB。但是,Windows 支持在其他具有更大卷大小的操作系统上格式化的卷大小。

如今,遇到 FAT12 文件系统的机会非常少。 FAT16 和 FAT32 仍在某些地方使用,例如 USB 驱动器、SD 卡或数码相机。但是,最大卷大小和最大文件大小(FAT16 和 FAT32 均为 4GB - 1 个文件大小)是限制其使用率的因素。

exFAT 文件系统:
随着文件大小的增加,尤其是较新的数码相机支持更高分辨率的图像和视频,FAT32 的最大文件大小限制成为相机制造商的一个重要限制因素。尽管微软已经转向 NTFS 文件系统,但它并不适合数字媒体设备,因为它们不需要额外的安全功能和随之而来的开销。因此,这些制造商游说微软创建 exFAT 文件系统。

exFAT 文件系统现在是大于 32GB 的 SD 卡的默认文件系统。它也被大多数数字设备制造商广泛采用。exFAT 文件系统支持 4KB 到 32MB 的簇大小。它的最大文件大小和最大卷大小为 128PB(PB)。它还减少了 FAT 文件系统的一些开销,使其更轻便、更高效。每个目录最多可以有 2,796,202 个文件。

The NTFS File System

The NTFS file system

正如在上一个任务中观察到的那样,FAT 文件系统是一种非常基本的文件系统。它在组织数据方面做得很好,但在安全性、可靠性和恢复功能方面却没有提供更多功能。它在文件和卷大小方面也有一定的限制。因此,微软开发了一种称为新技术文件系统 (NTFS) 的较新的文件系统来添加这些功能。该文件系统于 1993 年随 Windows NT 3.1 推出。但是,自 Windows XP 以来,它已成为主流。NTFS 文件系统解决了 FAT 文件系统中存在的许多问题,并引入了许多新功能。我们将在下面讨论其中的一些功能。

日志记录

NTFS 文件系统会记录卷中元数据的更改。此功能可帮助系统从碎片整理导致的崩溃或数据移动中恢复。此日志存储在卷根目录中的 $LOGFILE 中。因此,NTFS 文件系统被称为日志文件系统。

访问控制

FAT 文件系统没有基于用户的访问控制。NTFS 文件系统具有访问控制,可定义文件/目录的所有者以及每个用户的权限。

卷影复制

NTFS 文件系统使用名为卷影复制的功能跟踪对文件所做的更改。使用此功能,用户可以恢复以前的文件版本以进行恢复或系统还原。在最近的勒索软件攻击中,勒索软件参与者已注意到删除受害者文件系统上的卷影副本,以阻止他们恢复数据。

备用数据流

文件是文件系统中组织的数据流。备用数据流 (ADS) 是 NTFS 中的一项功能,允许文件将多个数据流存储在单个文件中。Internet Explorer 和其他浏览器使用备用数据流来识别从互联网下载的文件(使用 ADS 区域标识符)。还观察到恶意软件将其代码隐藏在 ADS 中。

主文件表

与文件分配表一样,NTFS 中也有一个主文件表。但是,主文件表 (MFT) 比文件分配表要广泛得多。它是一个结构化的数据库,用于跟踪存储在卷中的对象。因此,我们可以说 NTFS 文件系统数据是在主文件表中组织的。从取证的角度来看,以下是 MFT 中的一些关键文件:

$MFT

$MFT 是卷中的第一个记录。卷引导记录 (VBR) 指向它所在的群集。$MFT 存储有关卷上所有其他对象所在群集的信息。此文件包含卷上所有文件的目录。

$LOGFILE

$LOGFILE 存储文件系统的事务日志。它有助于在发生崩溃时维护文件系统的完整性。

$UsnJrnl

它代表更新序列号 (USN) 日志。它存在于 $Extend 记录中。它包含有关文件系统中已更改的所有文件以及更改原因的信息。它也被称为更改日志。

MFT Explorer

MFT Explorer 是 Eric Zimmerman 用来探索 MFT 文件的工具之一。它有命令行和 GUI 版本。我们将使用 CLI 版本来完成此任务。

  MFTECmd version 0.5.0.1

Author: Eric Zimmerman (saericzimmerman@gmail.com)
https://github.com/EricZimmerman/MFTECmd
    f               File to process ($MFT | $J | $LogFile | $Boot | $SDS). Required
    m               $MFT file to use when -f points to a $J file (Use this to resolve parent path in $J CSV output).

    json            Directory to save JSON formatted results to. This or --csv required unless --de or --body is specified
    jsonf           File name to save JSON formatted results to. When present, overrides default name
    csv             Directory to save CSV formatted results to. This or --json required unless --de or --body is specified
    csvf            File name to save CSV formatted results to. When present, overrides default name

    body            Directory to save bodyfile formatted results to. --bdl is also required when using this option
    bodyf           File name to save body formatted results to. When present, overrides default name
    bdl             Drive letter (C, D, etc.) to use with bodyfile. Only the drive letter itself should be provided
    blf             When true, use LF vs CRLF for newlines. Default is FALSE

    dd              Directory to save exported FILE record. --do is also required when using this option
    do              Offset of the FILE record to dump as decimal or hex. Ex: 5120 or 0x1400 Use --de or --vl 1 to see offsets

    de              Dump full details for entry/sequence #. Format is 'Entry' or 'Entry-Seq' as decimal or hex. Example: 5, 624-5 or 0x270-0x5.
    fls             When true, displays contents of directory specified by --de. Ignored when --de points to a file.
    ds              Dump full details for Security Id as decimal or hex. Example: 624 or 0x270

    dt              The custom date/time format to use when displaying time stamps. Default is: yyyy-MM-dd HH:mm:ss.fffffff
    sn              Include DOS file name types. Default is FALSE
    fl              Generate condensed file listing. Requires --csv. Default is FALSE
    at              When true, include all timestamps from 0x30 attribute vs only when they differ from 0x10. Default is FALSE

    vss             Process all Volume Shadow Copies that exist on drive specified by -f . Default is FALSE
    dedupe          Deduplicate -f & VSCs based on SHA-1. First file found wins. Default is FALSE

    debug           Show debug information during processing
    trace           Show trace information during processing
    
    
 Examples: MFTECmd.exe -f "C:\Temp\SomeMFT" --csv "c:\temp\out" --csvf MyOutputFile.csv
          MFTECmd.exe -f "C:\Temp\SomeMFT" --csv "c:\temp\out"
          MFTECmd.exe -f "C:\Temp\SomeMFT" --json "c:\temp\jsonout"
          MFTECmd.exe -f "C:\Temp\SomeMFT" --body "c:\temp\bout" --bdl c
          MFTECmd.exe -f "C:\Temp\SomeMFT" --de 5-5
          Short options (single letter) are prefixed with a single dash. Long commands are prefixed with two dashes

MFTECmd 解析 NTFS 文件系统创建的不同文件(如 $MFT、$Boot 等)中的数据。上面的屏幕截图显示了解析 MFT 文件的可用选项。要解析 $MFT 文件,我们可以使用以下命令:

MFTECmd.exe -f <path-to-$MFT-file> --csv <path-to-save-results-in-csv>

然后,您可以使用 EZtools 文件夹中的 EZviewer 工具查看 MFTECmd 的输出,或者在下一个任务中查看 CSV 文件。您将看到它列出了有关卷上存在的所有文件的信息。您可以类似地解析 $Boot 文件,它将提供有关卷的引导扇区的信息。MFTECmd 目前不支持 $LOGFILE。

Recovering deleted files

已删除文件和数据恢复:

了解文件系统可以更轻松地了解文件是如何被删除、恢复和擦除的。正如我们在前两个任务中了解到的,文件系统将文件在磁盘上的位置存储在表或数据库中。当我们从文件系统中删除文件时,文件系统会删除存储文件在磁盘上位置的条目。对于文件系统,文件存在的位置现在可供写入或未分配。但是,只要在复制另一个文件时文件系统没有覆盖它们,或者在对磁盘执行维护时磁盘固件没有覆盖它们,磁盘上的文件内容仍然存在。

同样,磁盘上不同未分配的群集中也有数据,这些数据可能被恢复。要恢复这些数据,我们必须了解不同文件类型的文件结构,以便通过我们在十六进制编辑器中看到的数据来识别特定文件。但是,我们不会在本课中讨论这一点。我们要做的是使用一个工具来为我们完成这项工作,并识别磁盘映像文件中已删除的文件。但是什么是磁盘映像文件?

磁盘映像:

磁盘映像文件是一个包含磁盘驱动器逐位副本的文件。逐位副本将磁盘映像文件中的所有数据(包括元数据)保存在一个文件中。因此,在进行取证时,可以制作物理证据(即磁盘)的多个副本,并将其用于调查。这有两种帮助。1) 原始证据在进行取证时不会受到污染,2) 可以将磁盘映像文件复制到另一个磁盘并进行分析,而无需使用专用硬件。

使用 Autopsy 恢复文件

说完这些,让我们看看如何从磁盘恢复已删除的文件。我们将使用 Autopsy 恢复已删除的文件。对于 Autopsy 专用房间,您可以前往 此处

在连接的虚拟机上,您会在桌面上找到 Autopsy 的图标。双击它即可运行 Autopsy。您将看到以下屏幕:

img

点击“新案例”选项。您将看到类似以下的窗口:

img

输入保存案例的名称,然后单击“下一步”。

img

您可以在此处添加所需的详细信息。现在,我们可以单击“完成”继续。Autopsy 将执行一些处理,然后显示以下屏幕。单击“下一步”继续。

img

您将看到此屏幕。由于我们将对磁盘映像进行分析,因此请选择最上面的选项“磁盘映像”或“VM 文件”。

img

它会询问您数据源的位置。

img

提供数据源的位置。您将在桌面上找到一个名为“usb.001”的磁盘映像。在上面的窗口中提供该文件的路径,然后单击下一步。您将看到以下窗口:

img

在这里,单击“取消全选”。这些是 Autopsy 对数据运行以进行处理的不同模块。对于此任务,我们不需要任何这些。如果启用,它们将需要大量时间来运行。单击“取消全选”后,单击“下一步”。Autopsy 将加载磁盘映像。您将在左侧面板中看到以下内容。

img

数据源显示我们已添加到 Autopsy 的数据源。我们也可以添加更多来源。文件视图和标签菜单显示 Autopsy 在处理数据后发现的内容。展开数据源,然后单击 usb.001 设备。Autopsy 将以以下方式显示磁盘映像的内容:

img

磁盘的内容显示在右侧。磁盘中存在的所有文件和文件夹都列在上方选项卡中。下方选项卡中显示所选文件的详细信息。这里有不同的选项可以查看详细信息。您可以查看它们以查找有趣的信息。

请注意上面屏幕截图中最后一个文件上的 X 标记,名为 New Microsoft Excel Worksheet.xlsx~RFcd07702.TMP。这表示这是一个已删除的文件。已删除的文件上会有这个 X 标记。要恢复已删除的文件,请右键单击它,然后选择“提取文件”选项。

img

提供保存解压文件的路径,您将恢复已删除的文件。现在让我们看看您可以在此磁盘映像上找到哪些其他已删除的文件,并回答以下问题。

Evidence of Execution

现在我们已经了解了文件系统,让我们来了解一下在文件系统中哪里可以找到用于执行取证分析的工件。在此任务中,我们将研究为我们提供执行证据的工件:

Windows 预取文件
当程序在 Windows 中运行时,它会存储其信息以供将来使用。此存储的信息用于在频繁使用的情况下快速加载程序。此信息存储在位于C:\Windows\Prefetch 目录中的预取文件中。

预取文件的扩展名为 .pf。预取文件包含应用程序的上次运行时间、应用程序运行的次数以及文件使用的任何文件和设备句柄。因此,它构成了有关上次执行的程序和文件的极好信息来源。

我们可以使用 Eric Zimmerman 工具中的预取解析器 (PECmd.exe) 来解析预取文件并提取数据。当我们在提升的命令提示符中运行 PECmd.exe 时,我们会得到以下输出:

user@machine$ PECmd.exe

PECmd version 1.4.0.0

Author: Eric Zimmerman (saericzimmerman@gmail.com)
https://github.com/EricZimmerman/PECmd

    d               Directory to recursively process. Either this or -f is required
    f               File to process. Either this or -d is required
    k               Comma separated list of keywords to highlight in output. By default, 'temp' and 'tmp' are highlighted. Any additional keywords will be added to these.
    o               When specified, save prefetch file bytes to the given path. Useful to look at decompressed Win10 files
    q               Do not dump full details about each file processed. Speeds up processing when using --json or --csv. Default is FALSE

    json            Directory to save json representation to.
    jsonf           File name to save JSON formatted results to. When present, overrides default name
    csv             Directory to save CSV results to. Be sure to include the full path in double quotes
    csvf            File name to save CSV formatted results to. When present, overrides default name
    html            Directory to save xhtml formatted results to. Be sure to include the full path in double quotes
    dt              The custom date/time format to use when displaying timestamps. See https://goo.gl/CNVq0k for options. Default is: yyyy-MM-dd HH:mm:ss
    mp              When true, display higher precision for timestamps. Default is FALSE

    vss             Process all Volume Shadow Copies that exist on drive specified by -f or -d . Default is FALSE
    dedupe          Deduplicate -f or -d & VSCs based on SHA-1. First file found wins. Default is TRUE

    debug           Show debug information during processing
    trace           Show trace information during processing
 Examples: PECmd.exe -f "C:\Temp\CALC.EXE-3FBEF7FD.pf"
          PECmd.exe -f "C:\Temp\CALC.EXE-3FBEF7FD.pf" --json "D:\jsonOutput" --jsonpretty
          PECmd.exe -d "C:\Temp" -k "system32, fonts"
          PECmd.exe -d "C:\Temp" --csv "c:\temp" --csvf foo.csv --json c:\temp\json
          PECmd.exe -d "C:\Windows\Prefetch"
      Short options (single letter) are prefixed with a single dash. Long commands are prefixed with two dashes
Either -f or -d is required. Exiting

要在文件上运行 Prefetch Parser 并将结果保存为 CSV,我们可以使用以下命令:

PECmd.exe -f <path-to-Prefetch-files> --csv <path-to-save-csv>

类似地,为了解析整个目录,我们可以使用以下命令:

PECmd.exe -d <path-to-Prefetch-directory> --csv <path-to-save-csv>

我们可以利用这些信息来回答最后的问题。

Windows 10 Timeline

Windows 10 将最近使用的应用程序和文件存储在名为Windows 10 Timeline的 SQLite 数据库中。此数据可以作为有关上次执行的程序的信息来源。它包含已执行的应用程序和应用程序的焦点时间。Windows 10 时间线可在以下位置找到:

C:\Users\<username>\AppData\Local\ConnectedDevicesPlatform\{randomfolder}\ActivitiesCache.db

我们可以使用 Eric Zimmerman 的 WxTCmd.exe 来解析 Windows 10 时间线。运行它时,我们得到以下选项:

user@machine$ WxTCmd.exe

WxTCmd version 0.6.0.0

Author: Eric Zimmerman (saericzimmerman@gmail.com)
https://github.com/EricZimmerman/WxTCmd
    f               File to process. Required
    csv             Directory to save CSV formatted results to. Be sure to include the full path in double quotes
    dt              The custom date/time format to use when displaying timestamps. See https://goo.gl/CNVq0k for options. Default is: yyyy-MM-dd HH:mm:ss
 Examples: WxTCmd.exe -f "C:\Users\eric\AppData\Local\ConnectedDevicesPlatform\L.eric\ActivitiesCache.db" --csv c:\temp
       Database files are typically found at 'C:\Users\\AppData\Local\ConnectedDevicesPlatform\L.\ActivitiesCache.db'

      Short options (single letter) are prefixed with a single dash. Long commands are prefixed with two dashes
      
-f is required. Exiting

我们可以使用以下命令来运行WxTCmd:

WxTCmd.exe -f <path-to-timeline-file> --csv <path-to-save-csv>

Windows Jump Lists

Windows 引入了跳转列表,以帮助用户从任务栏直接转到最近使用的文件。我们可以通过右键单击任务栏中的应用程序图标来查看跳转列表,它将向我们显示该应用程序中最近打开的文件。此数据存储在以下目录中:

C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations

跳转列表包含有关执行的应用程序、首次执行时间和最后一次针对 AppID 执行应用程序的信息。

我们可以使用 Eric Zimmerman 的 JLECmd.exe 来解析跳转列表。运行它时,我们得到以下选项:

user@machine$ JLECmd.exe

JLECmd version 1.4.0.0

Author: Eric Zimmerman (saericzimmerman@gmail.com)
https://github.com/EricZimmerman/JLECmd
    d               Directory to recursively process. Either this or -f is required
    f               File to process. Either this or -d is required
    q               Only show the filename being processed vs all output. Useful to speed up exporting to json and/or csv. Default is FALSE

    all             Process all files in directory vs. only files matching *.automaticDestinations-ms or *.customDestinations-ms. Default is FALSE

    csv             Directory to save CSV formatted results to. Be sure to include the full path in double quotes
    csvf            File name to save CSV formatted results to. When present, overrides default name

    html            Directory to save xhtml formatted results to. Be sure to include the full path in double quotes
    json            Directory to save json representation to. Use --pretty for a more human readable layout
    pretty          When exporting to json, use a more human readable layout. Default is FALSE

    ld              Include more information about lnk files. Default is FALSE
    fd              Include full information about lnk files (Alternatively, dump lnk files using --dumpTo and process with LECmd). Default is FALSE

    appIds          Path to file containing AppIDs and descriptions (appid|description format). New appIds are added to the built-in list, existing appIds will have their descriptions updated
    dumpTo          Directory to save exported lnk files
    withDir         When true, show contents of Directory not accounted for in DestList entries
    Debug           Debug mode

    dt              The custom date/time format to use when displaying timestamps. See https://goo.gl/CNVq0k for options. Default is: yyyy-MM-dd HH:mm:ss
    mp              Display higher precision for timestamps. Default is FALSE
Examples: JLECmd.exe -f "C:\Temp\f01b4d95cf55d32a.customDestinations-ms" --mp
          JLECmd.exe -f "C:\Temp\f01b4d95cf55d32a.automaticDestinations-ms" --json "D:\jsonOutput" --jsonpretty
          JLECmd.exe -d "C:\CustomDestinations" --csv "c:\temp" --html "c:\temp" -q
          JLECmd.exe -d "C:\Users\e\AppData\Roaming\Microsoft\Windows\Recent" --dt "ddd yyyy MM dd HH:mm:ss.fff"
      Short options (single letter) are prefixed with a single dash. Long commands are prefixed with two dashes
Either -f or -d is required. Exiting

我们可以使用以下命令通过 JLECmd.exe 解析跳转列表:

JLECmd.exe -f <path-to-Jumplist-file> --csv <path-to-save-csv>

在附加计算机桌面上的 triage 文件夹中,我们提取了要调查的系统的 Windows 目录。它保留了原始 Windows 目录的目录结构,即系统中的 C:\Windows 目录映射到 C:\users\thm-4n6\Desktop\triage\C\Windows。现在,让我们使用我们学到的信息对附加 VM 桌面上 triage 文件夹中保存的数据进行分析,并回答以下问题。

如果您在查看 CSV 文件时遇到问题,可以使用 EZtools 文件夹中的 EZviewer。

File/folder knowledge

Shortcut Files

Windows 会为本地或远程打开的每个文件创建一个快捷方式文件。快捷方式文件包含有关文件首次打开和最后打开时间的信息以及打开文件的路径,以及其他一些数据。快捷方式文件可以在以下位置找到:

C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\
C:\Users\<username>\AppData\Roaming\Microsoft\Office\Recent\

我们可以使用 Eric Zimmerman 的 LECmd.exe(Lnk Explorer)来解析快捷方式文件。当我们运行 LECmd.exe 时,我们会看到以下选项:

user@machine$ LECmd.exe

LECmd version 1.4.0.0

Author: Eric Zimmerman (saericzimmerman@gmail.com)
https://github.com/EricZimmerman/LECmd

d Directory to recursively process. Either this or -f is required
f File to process. Either this or -d is required
q Only show the filename being processed vs all output. Useful to speed up exporting to json and/or csv. Default is FALSE

r Only process lnk files pointing to removable drives. Default is FALSE
all Process all files in directory vs. only files matching *.lnk. Default is FALSE

csv Directory to save CSV formatted results to. Be sure to include the full path in double quotes
csvf File name to save CSV formatted results to. When present, overrides default name

xml Directory to save XML formatted results to. Be sure to include the full path in double quotes
html Directory to save xhtml formatted results to. Be sure to include the full path in double quotes
json Directory to save json representation to. Use --pretty for a more human readable layout
pretty When exporting to json, use a more human readable layout. Default is FALSE

nid Suppress Target ID list details from being displayed. Default is FALSE
neb Suppress Extra blocks information from being displayed. Default is FALSE

dt The custom date/time format to use when displaying time stamps. See https://goo.gl/CNVq0k for options. Default is: yyyy-MM-dd HH:mm:ss
mp Display higher precision for time stamps. Default is FALSE

Examples: LECmd.exe -f "C:\Temp\foobar.lnk"
LECmd.exe -f "C:\Temp\somelink.lnk" --json "D:\jsonOutput" --jsonpretty
LECmd.exe -d "C:\Temp" --csv "c:\temp" --html c:\temp --xml c:\temp\xml -q
LECmd.exe -f "C:\Temp\some other link.lnk" --nid --neb
LECmd.exe -d "C:\Temp" --all

Short options (single letter) are prefixed with a single dash. Long commands are prefixed with two dashes

Either -f or -d is required. Exiting

我们可以使用以下命令通过 LECmd.exe 解析快捷方式文件:

LECmd.exe -f <path-to-shortcut-files> --csv <path-to-save-csv>

快捷方式文件的创建日期指向该文件首次打开的日期/时间。快捷方式文件的修改日期/时间指向该文件最后一次被访问的时间。

IE/Edge history

IE/Edge 浏览历史记录的一个有趣之处在于,它还包括系统中打开的文件,无论这些文件是否使用浏览器打开。因此,IE/Edge 历史记录是系统中打开文件的宝贵信息来源。我们可以在以下位置访问历史记录:

C:\Users\<username>\AppData\Local\Microsoft\Windows\WebCache\WebCacheV*.dat

访问的文件/文件夹在 IE/Edge 历史记录中以 file:///* 前缀显示。虽然可以使用多种工具来分析 Web 缓存数据,但您可以在附加的 VM 中使用 Autopsy 来执行此操作。为此,请选择逻辑文件作为数据源。

img

然后它会要求您选择要分析文件的路径。您可以提供分类文件夹的路径。

img

在 Autopsy 询问提取模块以处理数据的窗口中,选中“最近活动”前面的框并取消选中其他所有框。

img

您将能够在左侧面板的 Web 历史记录选项中查看访问的本地文件。

img

这是其在右侧面板中的样子。

img

如上所示,“数据工件”选项卡显示有关访问的文件的信息。

Jump Lists

正如我们在上一个任务中已经了解到的,跳转列表会创建最后打开的文件列表。此信息可用于识别系统中最后执行的程序和最后打开的文件。回想一下上一个任务,跳转列表位于以下位置:

C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations

External Devices/USB device forensics

USB 设备的 Setupapi dev 日志

当任何新设备连接到系统时,与该设备设置相关的信息将存储在 setupapi.dev.log 中。此日志位于以下位置:

C:\Windows\inf\setupapi.dev.log

此日志包含设备序列号以及设备首次/最后一次连接的时间。

这是在 Notepad.exe 中打开时的样子。请注意第一行,我们可以看到设备 ID 和序列号。

快捷方式文件

正如我们在上一个任务中了解到的那样,Windows 会自动为本地或远程打开的文件创建快捷方式文件。这些快捷方式文件有时可以为我们提供有关连接的 USB 设备的信息。它可以为我们提供有关卷名称、类型和序列号的信息。回顾上一个任务,此信息可在以下位置找到:

C:\Users\<用户名>\AppData\Roaming\Microsoft\Windows\Recent\

C:\Users\<用户名>\AppData\Roaming\Microsoft\Office\Recent\

由于我们已经在上一个任务中了解了如何使用 Eric Zimmerman 的 LECmd.exe 解析快捷方式文件,因此我们不再赘述。

Conclusion and Further material

这就是我们的 Windows Forensics 2 房间。了解 Microsoft Windows 如何记录系统上执行的所有操作非常有趣。

如果您还没有,请查看 Windows Forensics 1 房间,了解 Windows 注册表及其为我们提供的所有不同工件。如果您认为所有这些工作有点太多,并且您希望其中一些工作自动化,您可以查看 KAPE 房间。