
La 法医信息学 在 Windows 环境中,需要了解系统如何留下所有事件的痕迹:用户活动、程序执行、网络连接以及配置更改。这些痕迹被称为“工件”,是重建事件的原始材料,且不会损害证据的完整性。
在实际事件中, 法医文物 它们允许您创建时间线、识别所用帐户、检测持久性并提供可在法庭上采纳的证据。尽管数据分散且不稳定,但 Windows 中有一些易于收集且信息极其丰富的来源。
Windows 中的取证文物是什么?它们为什么重要?
法医文物是指任何 记录、文件或元数据 系统在使用过程中自动创建的数据。在 Windows 中,这些数据包括事件日志和预取、注册表、LNK、ShellBags、SRUM 以及文件系统自身的遥测数据 (NTFS)。每个数据都构成了谜题的组成部分,解答了“什么”、“谁”、“何时”、“从何地”以及“有何影响”等问题。
由于它的分析,有可能 重建年表 (文件创建/修改/删除、应用程序执行),将活动与用户或计算机关联起来,检测持久性和横向移动技术,并用确凿的证据支持专家报告。
事件日志:密钥 ID 和路径
- 登录:4624(成功)、4625(失败)、4634/4647(关机)、4648(使用明确凭据登录)、4672(使用提升的权限登录)。
- 敏感变化:4719 报告审计策略的变化,有助于识别篡改企图。
- 服务:7034(崩溃)、7035(启动/停止)、7036(启动/停止)、7040(启动类型已更改)、7045 和 4697(服务已安装)。
- RDP:4778(会话已连接/重新连接)和 4779(已断开连接),非常适合跟踪远程桌面使用情况。
过滤失败的初创企业 PowerShell的,你可以扔 直接咨询 针对安全日志:
Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4625 } | Select-Object TimeCreated, Message
本机查看器(eventvwr.msc)和实用程序,例如 完整的事件日志视图 以可读和可导出的形式轻松查看这些数据,这对于 DFIR 剖面图 建立时间表。
预取:程序执行和时间上下文
Prefetch 机制记录 二进制文件的执行 以加快 引导 应用程序。对于取证专家来说,这是纯金,因为即使可执行文件消失,它也能保留痕迹。.pf 文件驻留在 C:\\Windows\\预取\\ 它的名称包含可执行文件和路径哈希,这有助于区分从不同位置运行的同一应用程序的实例。
- Windows XP–7:每次运行创建一个 .pf,限制接近 128 个条目。
- Windows 8 +:与 SysMain(以前称为 Superfetch)集成并将限制提高到 ~1024,并具有更丰富的跟踪。
- Windows 10 / 11:保持与 SysMain 的集成并提供上次运行的粒度。
- Windows服务器:在某些版本中,它可能默认被禁用。
常见用例: 识别已执行的恶意软件、在横向移动中展示远程管理能力,或随着时间的推移证实用户的操作。分析方法如下: 聚乙二醇 (埃里克·齐默尔曼) WinPrefetchView 并使用 PowerShell 快速查看 .pf 的最后写入内容:
Get-ChildItem -Path C:\Windows\Prefetch -Filter *.pf | Select-Object Name, LastWriteTime
LNK 文件:带有取证元数据的快捷方式
.lnk 快捷方式显示 什么被打开了,在哪里打开,什么时候打开的甚至设备详细信息(一系列 USB),这是疑似数据泄露的关键。您会在用户的桌面和“最近使用”文件夹中找到 LNK:
- 台:C:\\用户\\ \\桌面\\
- 最近:C:\\用户\\ \\AppData\\Roaming\\Microsoft\\Windows\\Recent\\
- 其他捷径:用户配置文件中的开始菜单和快速启动。
有用的工具: LECmd 提取完整的元数据(网络路由、序列号、时间戳)和 ShellBagsExplorer 补充资源管理器导航上下文。使用 PowerShell,您可以列出最近的项目及其上次修改:
Get-ChildItem -Path "C:\Users\<usuario>\AppData\Roaming\Microsoft\Windows\Recent" -Filter *.lnk | Select-Object Name, LastWriteTime
这些文物有助于 属性活动 即使原始文件已被移动或删除,也适用于帐户和会话。
Windows 注册表:持久性、USB 和用户活动
注册表是 分层仓库 系统和应用程序配置。从中,我们可以获取自动启动(持久性)、连接的设备以及最近文件列表等。
- 自动开启 (持久性):HKLM:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run
Get-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run" | Select-Object *
- 单元组件:HKLM:\\SYSTEM\\MountedDevices
Get-ItemProperty -Path "HKLM:\SYSTEM\MountedDevices" | Select-Object *
重要:MountedDevices 映射驱动器号;要追踪特定的 USB 及其历史记录,最好查阅 USBSTOR (例如 SYSTEM\\CurrentControlSet\\Enum\\USBSTOR)。
程序执行过程中的两个重要因素是 Shimcache(AppCompatCache) y Amcache:
- 内存缓存:指示存在/执行了哪些二进制文件,但不指示具体时间。键:HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache
- Amcache:包含 SHA1 哈希值、路径和时间戳的详细清单,非常适合确定 何时以及如何 已执行文件。键:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AppCompatFlags\Amcache
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache" | Select-Object *
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppCompatFlags\Amcache" | Select-Object *
对于文件夹导航, 贝壳袋 它们非常经典。即使目录已不存在,它们也能让你重建已探索过的目录。它们位于 HKU\\ 下\\Software\\Microsoft\\Windows\\Shell\\BagMRU 和 HKU\\ \\软件\\Microsoft\\Windows\\Shell\\包。
Get-ItemProperty -Path "HKU:\<SID>\Software\Microsoft\Windows\Shell\BagMRU" | Select-Object *
Windows 中的更多关键构件:从桌面到 NTFS
除了上述内容之外,还有 互补来源 这丰富了分析并填补了时间顺序上的空白。
- 休眠和分页:hiberfil.sys 和 pagefile.sys 可能包含凭据、会话残余和内存结构。
- 用户辅助/MRU:NTUSER.DAT 中的键显示最近使用的程序和最近打开/保存的文档。
- BAM/DAM:背景和桌面活动管理员,有助于理解 实际使用 每个用户的进程数。
- 自动运行:自动启动点可通过 Sysinternals Autoruns 看到或在分类(KAPE/IR-Rescue)中收集。
- 跳转列表:反映常用文件/应用程序的跳转列表,另一个向量 归因.
浏览器:历史记录、缓存、cookie 和恢复
浏览器集中 意图和行动。在 IE/Edge/Chromium/Firefox 中,我们可以提取浏览历史记录、搜索、缓存、会话和 Cookie,从而 下载、转移或访问内部资源。
- IE/Edge(旧版):WebCacheV*.dat、内容.IE5、历史记录.IE5
- Firefox:places.sqlite(历史记录)、downloads.sqlite(下载)、sessionstore.js(恢复)
- 铬/铬:默认\历史记录、默认\缓存
- Cookies:在 IE/Edge/Firefox/Chrome 的用户配置文件中
要查看这些来源: BrowsingHistoryView 加快跨库存;此外,缓存和 cookie 存储库有助于确认 外泄 通过网络或使用 SaaS 应用程序。
NTFS 和文件系统工件
文件系统 NTFS 似曾相识 粒度遥测 这对于了解文件发生了什么至关重要。
- $MFT:主文件表,包含元数据(日期、大小、ACL)。可使用 Mft2Csv 进行分析,并可使用 Registry Explorer 查看。
- $UsnJrnl:卷变化日志(创建/修改/删除),对于检测非常有用 样本 恶意软件 或强制删除。
- $日志文件:内部 NTFS 事务,重建操作和突然中断的关键。
像这样的工具 NTFS 日志查看器 o NTFS 日志跟踪器 允许处理 $UsnJrnl 和 $LogFile,同时 X 路、Autopsy 或 FTK 提供强大的法医查看器和过滤器。
USB 和外部设备:可追溯性和用户
对于 USB,Windows 存储有关 供应商、产品和系列 在 SYSTEM\CurrentControlSet\Enum\USB 和 USBSTOR 下。属性记录了 Windows 8-10 中的里程碑,例如首次安装(0064)、最后一次连接(0066)和最后一次删除(0067)。
- 关联用户:NTUSER.DAT\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\MountPoints2
- 卷数:SYSTEM\\MountedDevices 和 SOFTWARE\\Microsoft\\Windows Portable Devices\\Devices
- PnP 事件:System.evtx 可能反映安装 驱动程序 (例如,20001)
有了这些资源,就可以 链接 USB 通过对系统的操作(操作文件、访问路径)和特定帐户。
帐户、身份验证和 RDP
SAM 数据库保留本地账户数据,易于识别 最新登录 以及密码更改。对于登录活动,Security.evtx 是事件 4624/4625、4634/4647、4648、4672 和 4720(帐户创建)的参考点。
在远程桌面场景中,控制 事件 4778/4779 它有助于确定连接/断开连接的日期,将它们与源地址关联起来,并将它们与其他工件(如 LNK、Prefetch 或 SRUM)交叉引用。
管理系统日志和跟踪
除了常规事件日志之外,Windows 还保留 具体记录 用于安装、更新和维护。
- 安装操作日志:%WINDIR%\\setupact.log
- setuperr.log:%WINDIR%\\setuperr.log
- Windows更新日志:%WINDIR%\\WindowsUpdate.log
- 报告事件.log:%WINDIR%\\SoftwareDistribution\\ReportingEvents.log
- 捷运: %WINDIR%\\Debug\\mrt.log(反恶意软件工具运行)
- cbs.log中: %WINDIR%\\Logs\\CBS\\CBS.log(组件完整性)
- 豹:%SYSTEMROOT%\\$Windows.~BT\\Sources\\Panther\\*.log.xml 和 %WINDIR%\\PANTHER\\*.log.xml
- 设置 API:%WINDIR%\\INF\\setupapi.dev 和 %WINDIR%\\INF\\setupapi.setup
- 的WinSAT:%WINDIR%\\Performance\\Winsat\\winsat.log
- 内存转储:%WINDIR%\\内存.dmp
这些文件对于 证实系统变化、驱动程序安装和更新后状态,解释漏洞时间窗口或关键重启。
SRUM(系统资源使用情况监视器):CPU、网络和电源使用情况
SRUM 是 Windows 定期更新以监控的 ESE 数据库 每个应用程序/进程/服务的资源其主文件是 SRUDB.dat,位于 C:\\Windows\\System32\\sru\\SRUDB.dat 在 Windows 8 及更高版本中。
SRUM 扩展反映在注册表中(例如, HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SRUM\\Extensions),指示根据系统可用的数据集。诸如 斯鲁姆ECmd (Eric Zimmerman)提取 CSV 中的表格:AppUsage、NetworkUsages、Energy 等。
为了应对事件,该表 网络使用情况 对于证明渗透至关重要。一个典型的案例是: SSH。可执行程序 在与可疑 RDP 会话相关的时间间隔内发送了大量字节。通过按日期对传出字节进行排序, 传质 并将其与用户(账户列)和具体流程联系起来。
眼 El Temppo 在 SRUM 中: 时间戳 它反映的是数据提交到数据库的时间,不一定是执行的确切时间。最好将 SRUM 与预取、LNK、事件日志和注册表项关联起来,以整合时间顺序。
建议书
精心策划的工具箱可以带来以下不同 假设与检验这些在 Windows 上特别有用:
- 埃里克·齐默尔曼套房:PECmd/WinPrefetchView(预取)、LECmd(LNK)、ShellBagsExplorer(ShellBags)、Registry Explorer 和 RECmd(注册表)、SrumECmd(SRUM)、Timeline Explorer(年表)。
- 尸检和侦探工具包:开源取证磁盘分析。
- FTK / EnCase / X-Ways:针对大量复杂案件提供专业解决方案。
- 挥发性:RAM 分析(在适当的情况下使用 hiberfil/pagefile 转储)。
- RegRipper:自动提取关键注册表项。
- 完整的事件日志视图 y BrowsingHistoryView:快速概览事件和浏览历史。
Linux 中的关键取证工具(比较概述)
虽然重点是 Windows,但 思维导图 de Linux 适用于组织中的混合环境。
- 系统日志:/var/log/(syslog、auth.log、secure)用于审计访问、sudo、故障和服务。
- 用户和组:/etc/passwd、/etc/shadow、/etc/group 用于查看账户和权限。
- FS 元数据:时间和属性(inode)来创建创建/修改/删除年表。
- 网络和流程:ss/netstat、lsof、ps/top 用于实时连接和活动。
- 壳牌历史:.bash_history 和变体,考虑 HISTCONTROL/HISTTIMEFORMAT 设置。
- 记忆:用 LiME 转储并用 Volatility 分析以获得挥发性证据。
- 配置文件:服务、cron 和包日志作为附加来源。
这种比较有助于 保持线索 跨系统事件的描述,避免技术叙述中的空白。
Windows 中的工件景观显示每个操作都会留下痕迹:从 Security.evtx 中的 4625 到 Prefetch 中的 .pf,通过带有 USB 序列号的 LNK、注册表中的持久性密钥或 SRUM 中的网络消耗。 正确习得、来源之间的相关性和工具的交叉验证,可以重建 历史 即使面对积极掩盖踪迹的攻击者,也能做出足够精确的技术和法律决策。
对字节世界和一般技术充满热情的作家。我喜欢通过写作分享我的知识,这就是我在这个博客中要做的,向您展示有关小工具、软件、硬件、技术趋势等的所有最有趣的事情。我的目标是帮助您以简单而有趣的方式畅游数字世界。