0Pricing
Cloud & IT Cert Prep · 课时

Windows 取证痕迹:注册表、事件日志与预取文件

识别能够揭示攻击者活动的关键 Windows 痕迹——注册表启动项、安全事件日志条目,以及显示运行内容和运行时间的预取文件。

Windows 取证痕迹:注册表、事件日志与预取文件 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。

Windows 工件为何重要

Windows 系统会生成丰富的取证工件,用于记录用户活动、程序执行、文件访问和网络连接。这些工件之所以存在,是因为 Windows 的设计目标包括性能和功能——Prefetch(加快应用启动)和注册表(集中式配置)等功能会作为副作用生成取证记录。熟练的分析师知道应在哪里寻找攻击者试图隐藏或删除的证据。了解 Windows 工件是端点取证的基础。

Windows 注册表作为取证来源

Windows Registry 是用于存储 OS 和应用程序配置设置的分层数据库。对于取证调查人员而言,它是一座金矿,因为其中记录了:最近访问的文件和 URL、曾连接到系统的 USB 设备、已安装的程序及卸载历史、自动运行/启动项(持久化机制)、用户活动模式以及网络连接。注册表存储在配置单元文件(NTUSER.DAT、SYSTEM、SOFTWARE、SAM、SECURITY)中,并持久保存在磁盘上。

# Key forensic Registry locations
# Persistence (autorun) locations:
# HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
# HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
# HKLM\SYSTEM\CurrentControlSet\Services  (services/drivers)

# Recently accessed files (user activity):
# HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
# HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU

# USB devices ever connected:
# HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR

注册表持久化键

攻击者会利用注册表自动运行键建立持久化,确保其恶意软件在重新启动后再次运行。最常被滥用的键位于 HKLM\...\Run(对所有用户运行)和 HKCU\...\Run(仅对当前用户运行)下。调查人员会检查这些键中是否存在异常条目,防御人员则使用 Autoruns(Sysinternals)等工具进行枚举,并与已知正常基线进行比较。任何指向可疑位置(%TEMP%、%APPDATA%)的条目都值得调查。

# Examine autorun keys (PowerShell)
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
Get-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'

# Look for entries pointing to unusual paths:
# 'svchost32' = 'C:\Users\User\AppData\Local\Temp\evil.exe'
# vs legitimate:
# 'SecurityHealth' = '%windir%\system32\SecurityHealthSystray.exe'

# Autoruns.exe (Sysinternals) shows ALL autostart locations

Windows 事件日志

Windows Event 日志记录系统、安全和应用程序事件。在安全取证中,Security 事件日志最为关键——它会捕获身份验证事件、账户管理变更、权限使用和策略变更。关键位置:%SystemRoot%\System32\winevt\Logs\。事件日志采用二进制格式(.evtx),可使用 Event Viewer 或取证工具读取。攻击者经常试图清除事件日志;被清除的 Security 日志本身会生成事件 ID 1102,应立即触发警报。

# Query Security event log for failed logins (PowerShell)
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} |
  Select-Object TimeCreated, Message |
  Where-Object { $_.TimeCreated -gt (Get-Date).AddDays(-7) }

# Key Security Event IDs for forensics:
# 4624: Successful logon (logon type matters!)
# 4625: Failed logon
# 4634/4647: Logoff
# 4720: User account created
# 4732: Member added to security-enabled group
# 1102: Audit log cleared (attacker cleanup!)

事件 ID 4624 中的 Logon 类型

事件 ID 4624(Successful Logon)包含一个logon 类型字段,用于揭示该 logon 是HOW发生的。Logon 类型具有重要的取证意义:Type 2 = 交互式(用户在键盘前操作);Type 3 = 网络(文件共享、远程 API);Type 4 = 批处理(计划任务);Type 5 = 服务(服务启动);Type 7 = 解锁;Type 10 = 远程交互式(RDP);Type 11 = 缓存凭据。来自外部 IP 的网络 logon(Type 3)表明可能存在横向移动或远程访问。

# PowerShell: Find RDP logons (Type 10) from external IPs
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} |
  Where-Object {
    $msg = $_.Message
    $msg -match 'Logon Type:\s+10' -and
    $msg -match 'Source Network Address:\s+(?!192\.168|10\.|172\.1[6-9]|172\.2[0-9]|172\.3[0-1])'
  } |
  Select-Object TimeCreated, Message

Windows Prefetch 文件

Prefetch 文件(%SystemRoot%\Prefetch\*.pf)由 Windows 创建,通过缓存最近执行程序的信息来加快应用程序启动。每个 Prefetch 文件会记录:可执行文件名称、完整路径、最近一次运行时间、最多 8 个执行时间戳(Windows 8 及更高版本)、运行次数,以及可执行文件引用的文件和目录。在取证中,即使程序本身已被删除,Prefetch 仍能证明该程序曾被执行——这对证明恶意软件执行至关重要。

# List Prefetch files with last run times (PowerShell)
Get-ChildItem C:\Windows\Prefetch\*.pf |
  Select-Object Name, LastWriteTime, Length |
  Sort-Object LastWriteTime -Descending

# Parse with PECmd (Eric Zimmerman's tool) for full details:
PECmd.exe -d C:\Windows\Prefetch --csv C:\forensics\prefetch_output

# Output shows: executable path, last 8 run times, run count,
# files and directories accessed during execution

Shimcache 与 Amcache

Shimcache(AppCompatCache)会记录系统上运行过的可执行文件,并存储在注册表的 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache 中。它会捕获文件路径和最后修改时间。Amcache.hve(位于 %SystemRoot%\AppCompat\Programs\)是一个注册表配置单元,会记录已执行的程序、其 SHA-1 哈希以及首次运行时间。即使恶意软件文件已被删除,这两者仍可用于证明恶意软件曾被执行。

# Parse ShimCache with AppCompatCacheParser.exe (Eric Zimmerman)
AppCompatCacheParser.exe --csv C:\forensics

# Parse Amcache with AmcacheParser.exe
AmcacheParser.exe -f C:\Windows\AppCompat\Programs\Amcache.hve \
  --csv C:\forensics

# Look for executables in unusual locations:
# C:\Users\username\AppData\Local\Temp\*.exe
# C:\Users\username\Downloads\*.exe
# C:\ProgramData\*.exe (malware staging area)

Windows 事件取证:横向移动

检测横向移动需要关联多个系统中的事件。关键模式包括:源系统上的事件 4648(使用显式凭据 Logon)表明攻击者使用了 runas 或传递哈希工具;目标系统上的事件 4624 Type 3表明网络身份验证 Successful;目标系统上的事件 7045(安装新服务)表明攻击者通过 PsExec 或类似远程执行工具建立了持久化。在 SIEM 中关联各系统的时间戳,可以揭示横向移动路径。

# SIEM query: detect PsExec lateral movement pattern
# Source system: Event 4648 (explicit creds)
# Target system: Event 4624 Type 3 + Event 7045 (PSEXESVC service)

# PowerShell: find PSEXESVC service creation (attacker lateral movement)
Get-WinEvent -FilterHashtable @{LogName='System'; Id=7045} |
  Where-Object { $_.Message -match 'PSEXESVC' } |
  Select-Object TimeCreated, Message

LNK 文件与跳转列表

LNK(快捷方式)文件会在用户打开文件时由 Windows 自动创建,并记录目标文件路径、创建和修改时间以及卷序列号——即使目标文件后来已被删除。跳转列表会按应用程序记录最近访问和频繁访问的文件,存储在 %APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations\ 中。这些工件可以揭示攻击者的文件访问活动,并识别入侵期间被窃取或访问的文件,即使这些文件本身已被清理。

MFT 与已删除文件恢复

主文件表(MFT)是 NTFS 文件系统的索引,记录每个文件和目录的元数据,包括已删除的文件。当文件在 Windows 中被“删除”时,MFT 条目会被标记为可重新使用,但文件数据可能会继续保留在磁盘上,直到被覆盖。取证工具(Autopsy、FTK)可以恢复已删除文件的 MFT 条目,并尝试恢复其内容。这对于恢复攻击者删除的恶意软件、日志或用于暂存窃取数据的文件至关重要。

# Analyze the MFT to find deleted files
# Using Autopsy or The Sleuth Kit (tsk)
fls -r /forensics/disk.img | grep '\*'  # deleted files marked with *

# Recover a specific deleted file by inode number
icat /forensics/disk.img 12345 > /forensics/recovered_file
sha256sum /forensics/recovered_file

# Parse MFT with MFTECmd.exe (Eric Zimmerman)
MFTECmd.exe -f C:\$MFT --csv C:\forensics\mft_output

浏览器工件与用户活动

Web 浏览器会留下能够揭示攻击者或内部人员在线活动的取证工件。浏览历史会记录访问过的 URL 及时间戳。下载历史会显示从 Web 获取了哪些文件。缓存文件可能包含攻击者查看过的网页或文件副本。浏览器中的已保存凭据可以揭示攻击者访问过哪些账户。这些工件存储在配置文件目录中(%LOCALAPPDATA%\Google\Chrome\User Data\Default\),可以使用 ChromeCacheView 或 BrowsingHistoryView 等工具进行解析,以重建攻击者的在线活动。

# Browser artifact locations (Windows)
# Chrome history database:
# %LOCALAPPDATA%\Google\Chrome\User Data\Default\History
# (SQLite database)

# Parse with sqlite3
sqlite3 History 'SELECT url, title, last_visit_time FROM urls ORDER BY last_visit_time DESC LIMIT 50'

# Firefox places.db (SQLite):
# %APPDATA%\Mozilla\Firefox\Profiles\*.default\places.sqlite

# BrowsingHistoryView.exe (Nirsoft) parses all browsers at once

快速检查

测试您对本课 CompTIA Security+ (SY0-701) 概念的理解。

课程回顾

在本课中,您学到了:Windows Registry 会在具有取证价值的注册表配置单元文件中记录持久化机制、USB 历史和用户活动;Security 事件日志中的事件 ID 4624/4625/4720/1102 对身份验证和账户活动取证至关重要;以及即使恶意软件已被删除,Prefetch、Shimcache 和 Amcache 仍能证明程序执行。接下来,我们将探索网络和内存取证。

常见问题解答

「Windows 取证痕迹:注册表、事件日志与预取文件」课时是免费的吗?

是的 — 「Windows 取证痕迹:注册表、事件日志与预取文件」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。

「Windows 取证痕迹:注册表、事件日志与预取文件」这节课中我会学到什么?

识别能够揭示攻击者活动的关键 Windows 痕迹——注册表启动项、安全事件日志条目,以及显示运行内容和运行时间的预取文件。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cloud & IT Cert Prep 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「Windows 取证痕迹:注册表、事件日志与预取文件」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?

能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 易失性顺序与证据获取
  2. 保管链与法律可采性
  3. Windows 取证痕迹:注册表、事件日志与预取文件
  4. 网络与内存取证
← 返回 Cloud & IT Cert Prep