hacktricks/forensics/basic-forensic-methodology/windows-forensics/README.md
2023-08-03 19:12:22 +00:00

27 KiB
Raw Blame History

Windows证据

Windows证据

☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 YouTube 🎥

通用Windows证据

Windows 10通知

在路径\Users\<用户名>\AppData\Local\Microsoft\Windows\Notifications中,你可以找到数据库appdb.datWindows周年版之前wpndatabase.dbWindows周年版之后

在这个SQLite数据库中你可以找到Notification其中包含可能包含有趣数据的所有通知以XML格式

时间线

时间线是Windows的一个特性提供了访问的时间顺序历史记录,包括访问的网页、编辑的文档和执行的应用程序。

数据库位于路径\Users\<用户名>\AppData\Local\ConnectedDevicesPlatform\<id>\ActivitiesCache.db。可以使用SQLite工具或工具WxTCmd打开此数据库该工具生成2个可以使用工具TimeLine Explorer打开的文件。

ADS备用数据流

下载的文件可能包含ADS Zone.Identifier,指示它是如何从内部网络、互联网等下载的。一些软件(如浏览器)通常还会放置更多信息,如文件下载的URL

文件备份

回收站

在Vista/Win7/Win8/Win10中回收站可以在驱动器的根目录(C:\$Recycle.bin)中找到。
当文件在此文件夹中被删除时会创建2个特定的文件

  • $I{id}:文件信息(删除日期)
  • $R{id}:文件内容

有了这些文件,你可以使用工具Rifiuti获取已删除文件的原始地址和删除日期对于Vista - Win10请使用rifiuti-vista.exe)。

.\rifiuti-vista.exe C:\Users\student\Desktop\Recycle

阴影副本

阴影副本是微软Windows中包含的一项技术可以在计算机文件或卷正在使用时创建备份副本或快照。

这些备份通常位于文件系统根目录下的\System Volume Information名称由以下图像中显示的UID组成

使用ArsenalImageMounter挂载取证映像,可以使用工具ShadowCopyView来检查阴影副本,甚至从阴影副本备份中提取文件

注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore包含不备份的文件和键:

注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS还包含有关Volume Shadow Copies的配置信息。

Office自动保存的文件

您可以在以下位置找到Office自动保存的文件C:\Usuarios\\AppData\Roaming\Microsoft{Excel|Word|Powerpoint}\

Shell项

Shell项是包含有关如何访问另一个文件的信息的项。

最近文档LNK

当用户在以下位置之一打开、使用或创建文件Windows会自动创建这些快捷方式

  • Win7-Win10C:\Users\\AppData\Roaming\Microsoft\Windows\Recent\
  • OfficeC:\Users\\AppData\Roaming\Microsoft\Office\Recent\

创建文件夹时,还会创建到文件夹、父文件夹和祖父文件夹的链接。

这些自动创建的链接文件包含有关源文件的信息,例如它是一个文件还是一个文件夹,该文件的MAC时间,文件存储位置的卷信息目标文件的文件夹。这些信息在文件被删除的情况下可以用于恢复这些文件。

此外,链接文件的创建日期是原始文件首次使用的时间,链接文件的修改日期是原始文件最后一次使用的时间

您可以使用LinkParser来检查这些文件。

在这个工具中,您将找到2组时间戳:

  • 第一组:
  1. FileModifiedDate
  2. FileAccessDate
  3. FileCreationDate
  • 第二组:
  1. LinkModifiedDate
  2. LinkAccessDate
  3. LinkCreationDate.

第一组时间戳引用了文件本身的时间戳。第二组引用了链接文件的时间戳

您可以使用Windows CLI工具LECmd.exe获取相同的信息。

LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs

在这种情况下信息将保存在CSV文件中。

跳转列表

这些是每个应用程序指示的最近文件。它是您可以在每个应用程序上访问的最近使用的文件列表。它们可以是自动创建的或自定义的

自动创建的跳转列表存储在C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\中。跳转列表的命名遵循{id}.autmaticDestinations-ms的格式其中初始ID是应用程序的ID。

自定义跳转列表存储在C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\CustomDestination\中,它们通常是由应用程序创建的,因为文件发生了重要的变化(可能标记为收藏夹)。

任何跳转列表的创建时间表示第一次访问文件的时间,而修改时间表示最后一次访问的时间

您可以使用JumplistExplorer检查跳转列表。

请注意JumplistExplorer提供的时间戳与跳转列表文件本身相关

Shellbags

点击此链接了解shellbags是什么

使用Windows USB设备

通过以下创建可以确定是否使用了USB设备

  • Windows最近文件夹
  • Microsoft Office最近文件夹
  • 跳转列表

请注意某些LNK文件指向的是WPDNSE文件夹而不是原始路径

文件夹WPDNSE中的文件是原始文件的副本因此在计算机重新启动后将不会保留并且GUID是从shellbag中获取的。

注册表信息

查看此页面以了解哪些注册表键包含有关连接的USB设备的有趣信息。

setupapi

检查文件C:\Windows\inf\setupapi.dev.log以获取有关USB连接产生的时间戳搜索Section start)。

USB Detective

USBDetective可用于获取连接到映像的USB设备的信息。

插拔式清理

“插拔式清理”定期任务负责清除旧版驱动程序。根据在线报告,它还会删除30天未使用的驱动程序,尽管其描述中指出“将保留每个驱动程序包的最新版本”。因此,30天未连接的可移动设备可能会被删除其驱动程序

定期任务本身位于“C:\Windows\System32\Tasks\Microsoft\Windows\Plug and Play\Plug and Play Cleanup”其内容如下所示

任务引用了负责执行清理活动的“pnpclean.dll”此外我们还可以看到“UseUnifiedSchedulingEngine”字段设置为“TRUE”指定使用通用任务调度引擎来管理任务。“MaintenanceSettings”中的“Period”和“Deadline”值为“P1M”和“P2M”指示任务在常规自动维护期间每月执行一次如果连续两个月失败则在紧急自动维护期间开始尝试执行任务。此部分内容摘自此处

电子邮件

电子邮件包含2个有趣的部分邮件头和邮件内容。在邮件头中,您可以找到以下信息:

  • 发送邮件的人员电子邮件地址、IP、重定向电子邮件的邮件服务器
  • 邮件发送的时间

此外,在ReferencesIn-Reply-To头中您可以找到消息的ID

Windows邮件应用

此应用程序以HTML或文本格式保存电子邮件。您可以在\Users\<username>\AppData\Local\Comms\Unistore\data\3\的子文件夹中找到电子邮件。电子邮件以.dat扩展名保存。

电子邮件的元数据联系人可以在EDB数据库中找到:\Users\<username>\AppData\Local\Comms\UnistoreDB\store.vol

将文件的扩展名从.vol更改为.edb,然后可以使用工具ESEDatabaseView打开它。在Message表中,您可以看到电子邮件。

Microsoft Outlook

当使用Exchange服务器或Outlook客户端时将会有一些MAPI头

  • Mapi-Client-Submit-Time:发送电子邮件时的系统时间
  • Mapi-Conversation-Index:线程的子消息数量和每个消息的时间戳
  • Mapi-Entry-ID:消息标识符。
  • Mappi-Message-FlagsPr_last_Verb-Executed有关MAPI客户端的信息消息已读未读已回复重定向离开办公室

在Microsoft Outlook客户端中所有发送/接收的消息、联系人数据和日历数据都存储在以下PST文件中

  • %USERPROFILE%\Local Settings\Application Data\Microsoft\OutlookWinXP
  • %USERPROFILE%\AppData\Local\Microsoft\Outlook

注册表路径HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook指示正在使用的文件。

您可以使用工具Kernel PST Viewer打开PST文件。

Outlook OST

当使用IMAP或Exchange服务器配置Microsoft Outlook时它会生成一个OST文件该文件存储与PST文件几乎相同的信息。它将文件与服务器同步保存最近12个月文件大小最大为50GB并保存在与PST文件相同的文件夹中。您可以使用Kernel OST viewer检查此文件。

恢复附件

您可以在以下文件夹中找到它们:

  • %APPDATA%\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook -> IE10
  • %APPDATA%\Local\Microsoft\InetCache\Content.Outlook -> IE11+

Thunderbird MBOX

Thunderbird将信息存储在文件夹\Users\%USERNAME%\AppData\Roaming\Thunderbird\Profiles中的MBOX文件中。

缩略图

当用户访问文件夹并使用缩略图进行组织时,会创建一个thumbs.db文件。即使删除了这些文件夹中的图像该数据库仍会存储文件夹的缩略图。在WinXP和Win 8-8.1中此文件会自动创建。在Win7/Win10中只有通过UNC路径\IP\folder...)访问时才会自动创建。

可以使用工具Thumbsviewer读取此文件。

Thumbcache

从Windows Vista开始缩略图预览存储在系统的集中位置。这样可以使系统能够独立于其位置访问图像并解决了Thumbs.db文件的局部性问题。缓存存储在%userprofile%\AppData\Local\Microsoft\Windows\Explorer中,以几个带有标签thumbcache_xxx.db(按大小编号)的文件形式存在,以及用于在每个大小数据库中查找缩略图的索引。

  • Thumbcache_32.db -> 小
  • Thumbcache_96.db -> 中
  • Thumbcache_256.db -> 大
  • Thumbcache_1024.db -> 特大

您可以使用ThumbCache Viewer读取此文件。

Windows注册表

Windows注册表包含有关系统和用户操作的大量信息。

包含注册表的文件位于以下位置:

  • %windir%\System32\Config*SAM*: HKEY_LOCAL_MACHINE
  • %windir%\System32\Config*SECURITY*: HKEY_LOCAL_MACHINE
  • %windir%\System32\Config*SYSTEM*: HKEY_LOCAL_MACHINE
  • %windir%\System32\Config*SOFTWARE*: HKEY_LOCAL_MACHINE
  • %windir%\System32\Config*DEFAULT*: HKEY_LOCAL_MACHINE
  • %UserProfile%{User}*NTUSER.DAT*: HKEY_CURRENT_USER

从Windows Vista和Windows 2008 Server开始HKEY_LOCAL_MACHINE注册表文件的一些备份位于**%Windir%\System32\Config\RegBack\**中。

从这些版本开始,还会创建注册表文件**%UserProfile%\{User}\AppData\Local\Microsoft\Windows\USERCLASS.DAT**,保存有关程序执行的信息。

工具

一些工具对于分析注册表文件很有用:

  • 注册表编辑器它已安装在Windows中。它是一个用于浏览当前会话的Windows注册表的图形界面。
  • 注册表浏览器:它允许您加载注册表文件并使用图形界面浏览它们。它还包含突出显示具有有趣信息的书签。
  • RegRipper:同样,它具有允许浏览加载的注册表的图形界面,并包含突出显示加载的注册表中有趣信息的插件。
  • Windows注册表恢复:另一个能够提取注册表中重要信息的图形界面应用程序。

恢复已删除的元素

当键被删除时,它会被标记为已删除,但在需要占用其空间之前,它不会被删除。因此,使用诸如注册表浏览器之类的工具,可以恢复这些已删除的键。

最后写入时间

每个键值包含一个指示其上次修改时间的时间戳

SAM

文件/注册表SAM包含系统的用户、组和用户密码哈希。

SAM\Domains\Account\Users您可以获取用户名、RID、上次登录、上次登录失败、登录计数器、密码策略以及帐户创建时间。要获取哈希值,还需要文件/注册表SYSTEM

Windows注册表中的有趣条目

{% content-ref url="interesting-windows-registry-keys.md" %} interesting-windows-registry-keys.md {% endcontent-ref %}

执行的程序

基本的Windows进程

您可以在以下页面了解有关基本Windows进程的信息以便检测可疑行为

{% content-ref url="windows-processes.md" %} windows-processes.md {% endcontent-ref %}

Windows最近使用的应用程序

在注册表NTUSER.DAT的路径Software\Microsoft\Current Version\Search\RecentApps中,您可以找到有关执行的应用程序上次执行时间以及启动次数的信息。

BAM后台活动调节器

您可以使用注册表编辑器打开SYSTEM文件,并在路径SYSTEM\CurrentControlSet\Services\bam\UserSettings\{SID}中找到有关每个用户执行的应用程序的信息(注意路径中的{SID}),以及它们执行的时间时间位于注册表的Data值中

Windows Prefetch

预取是一种技术,允许计算机在用户可能在不久的将来访问的内容之前静默获取所需的资源,以便更快地访问资源。

Windows预取包括创建已执行程序的缓存,以便能够更快地加载它们。这些缓存以.pf文件的形式创建在路径C:\Windows\Prefetch中。在XP/VISTA/WIN7中限制为128个文件在Win8/Win10中为1024个文件。

文件名的创建方式为{program_name}-{hash}.pf哈希基于可执行文件的路径和参数。在W10中这些文件是压缩的。请注意仅文件的存在表明该程序曾被执行

文件C:\Windows\Prefetch\Layout.ini包含预取文件夹的名称。该文件包含有关执行次数、执行日期和程序打开的文件的信息。

您可以使用工具PEcmd.exe检查这些文件。

.\PECmd.exe -d C:\Users\student\Desktop\Prefetch --html "C:\Users\student\Desktop\out_folder"

Superprefetch

Superprefetch超级预读 的目标与 prefetch 相同,通过预测下一个要加载的内容来加快程序的加载速度。然而,它并不替代 prefetch 服务。
该服务会在 C:\Windows\Prefetch\Ag*.db 中生成数据库文件。

在这些数据库中,您可以找到程序的名称执行次数打开的文件访问的卷完整路径时间段时间戳

您可以使用工具 CrowdResponse 访问这些信息。

SRUM

系统资源使用监视器SRUM用于监视进程消耗的资源。它出现在 W8 中,并将数据存储在位于 C:\Windows\System32\sru\SRUDB.dat 的 ESE 数据库中。

它提供以下信息:

  • 应用程序 ID 和路径
  • 执行该进程的用户
  • 发送字节数
  • 接收字节数
  • 网络接口
  • 连接持续时间
  • 进程持续时间

此信息每 60 分钟更新一次。

您可以使用工具 srum_dump 从此文件中获取数据。

.\srum_dump.exe -i C:\Users\student\Desktop\SRUDB.dat -t SRUM_TEMPLATE.xlsx -o C:\Users\student\Desktop\srum

AppCompatCache (ShimCache)

Shimcache,也被称为AppCompatCache,是Microsoft创建的应用兼容性数据库的组成部分,操作系统使用它来识别应用程序的兼容性问题。

该缓存根据操作系统存储各种文件元数据,例如:

  • 文件完整路径
  • 文件大小
  • $Standard_InformationSI上次修改时间
  • ShimCache上次更新时间
  • 进程执行标志

这些信息可以在注册表中找到:

  • SYSTEM\CurrentControlSet\Control\SessionManager\Appcompatibility\AppcompatCache
  • XP96个条目
  • SYSTEM\CurrentControlSet\Control\SessionManager\AppcompatCache\AppCompatCache
  • Server 2003512个条目
  • 2008/2012/2016 Win7/Win8/Win101024个条目

您可以使用工具AppCompatCacheParser来解析这些信息。

Amcache

Amcache.hve文件是一个存储已执行应用程序信息的注册表文件。它位于C:\Windows\AppCompat\Programas\Amcache.hve

Amcache.hve记录了最近运行的进程并列出了执行的文件路径可以用于查找执行的程序。它还记录了程序的SHA1值。

您可以使用工具Amcacheparser解析这些信息。

AmcacheParser.exe -f C:\Users\student\Desktop\Amcache.hve --csv C:\Users\student\Desktop\srum

最有趣的生成的CSV文件是Amcache_Unassociated file entries

RecentFileCache

此工件仅在W7中的C:\Windows\AppCompat\Programs\RecentFileCache.bcf中找到,其中包含有关某些二进制文件的最近执行信息。

您可以使用工具RecentFileCacheParse来解析该文件。

计划任务

您可以从C:\Windows\TasksC:\Windows\System32\Tasks中提取它们并将其作为XML文件进行阅读。

服务

您可以在注册表的SYSTEM\ControlSet001\Services下找到它们。您可以查看将要执行的内容以及执行时间。

Windows商店

安装的应用程序可以在\ProgramData\Microsoft\Windows\AppRepository\中找到。
此存储库具有一个日志,其中包含系统中每个安装的应用程序的信息,存储在数据库**StateRepository-Machine.srd**中。

在此数据库的Application表中可以找到"Application ID"、"PackageNumber"和"Display Name"列。这些列包含有关预安装和已安装应用程序的信息并且可以找到是否卸载了某些应用程序因为已安装应用程序的ID应该是连续的。

还可以在注册表路径Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications\中找到已安装的应用程序
已卸载的应用程序Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Deleted\中。

Windows事件

Windows事件中显示的信息包括

  • 发生了什么
  • 时间戳UTC + 0
  • 参与的用户
  • 参与的主机主机名、IP
  • 访问的资源(文件、文件夹、打印机、服务)

日志位于Windows Vista之前的C:\Windows\System32\config中,之后位于C:\Windows\System32\winevt\Logs中。在Windows Vista之前事件日志以二进制格式存在之后以XML格式存在,并使用**.evtx**扩展名。

事件文件的位置可以在SYSTEM注册表中的**HKLM\SYSTEM\CurrentControlSet\services\EventLog\{Application|System|Security}**中找到。

可以使用Windows事件查看器eventvwr.msc)或其他工具(如Event Log ExplorerEvtx Explorer/EvtxECmd)来查看这些日志。

安全

这会记录访问事件,并提供有关安全配置的信息,可以在C:\Windows\System32\winevt\Security.evtx中找到。

事件文件的最大大小是可配置的,当达到最大大小时,它将开始覆盖旧事件。

注册的事件包括:

  • 登录/注销
  • 用户操作
  • 访问文件、文件夹和共享资源
  • 修改安全配置

与用户身份验证相关的事件:

EventID 描述
4624 成功的身份验证
4625 身份验证错误
4634/4647 注销
4672 使用管理员权限登录

在EventID 4634/4647中有一些有趣的子类型

  • 2交互式使用键盘或软件如VNC或PSexec -U-)进行交互式登录
  • 3网络:连接到共享文件夹
  • 4批处理:执行的进程
  • 5服务:由服务控制管理器启动的服务
  • 6代理:代理登录
  • 7解锁:使用密码解锁屏幕
  • 8网络明文用户通过发送明文密码进行身份验证。此事件以前来自IIS
  • 9新凭据:当使用RunAs命令或用户使用不同凭据访问网络服务时生成
  • 10远程交互式通过终端服务或RDP进行身份验证
  • 11缓存交互式:使用最后缓存的凭据访问,因为无法联系域控制器
  • 12缓存远程交互式使用缓存凭据远程登录10和11的组合
  • 13缓存解锁:使用缓存凭据解锁锁定的计算机

在这篇文章中,您可以找到如何模拟所有这些类型的登录,并在其中哪些类型中能够从内存中转储凭据:https://www.alteredsecurity.com/post/fantastic-windows-logon-types-and-where-to-find-credentials-in-them

事件的状态和子状态信息可以提供有关事件原因的更多详细信息。例如看一下以下Event ID 4625的状态和子状态代码

恢复Windows事件

强烈建议通过拔掉电源关闭可疑的计算机以最大化恢复Windows事件的可能性。如果它们被删除可以使用Bulk_extractor工具来尝试恢复它们,指定evtx扩展名。

通过Windows事件识别常见攻击

暴力破解攻击

暴力破解攻击可以很容易地识别,因为会出现多个EventID 4625。如果攻击成功在EventID 4625之后会出现EventID 4624

时间更改

这对取证团队来说是非常糟糕的因为所有时间戳都将被修改。此事件由安全事件日志中的EventID 4616记录。

USB设备

以下System EventID对于识别USB设备很有用

  • 20001 / 20003 / 10000首次使用
  • 10100驱动程序更新

DeviceSetupManager的EventID 112包含每个插入的USB设备的时间戳。

关机/开机

"Event Log"服务的ID 6005表示计算机已开机。ID 6006表示计算机已关机。

日志删除

安全EventID 1102表示日志已被删除。

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥