windows取证——文件执行记录的获取和清除
字数 3057 2025-08-25 22:58:29

Windows取证:文件执行记录的获取与清除技术指南

前言

在Windows系统取证和安全分析中,文件执行记录是重要的信息来源。本指南详细总结了Windows系统中常见的文件执行记录位置、获取方法以及清除技术,适用于渗透测试、安全取证和系统管理员等多个场景。

一、从日志中获取执行记录

1. Audit Process Creation (4688/592事件)

适用系统

  • Windows 7/Server 2008及以上版本(Event ID 4688)
  • Windows XP/2003(Event ID 592)

开启方法

Edit Default Domain Policy -> 
Computer Configuration -> 
Policies -> 
Windows Settings -> 
Security Settings -> 
Advanced Audit Configuration -> 
Detailed Tracking -> 
Audit Process Creation

查询方法

wevtutil qe security /rd:true /f:text /q:"Event[System[(EventID=4688)]]"

清除方法:参考相关安全文章

2. Program Inventory Event Log

位置

  • 文件路径:C:\Windows\System32\winevt\Logs\Microsoft-Windows-Application-Experience%4Program-Inventory.evtx
  • 事件查看器路径:Applications and Services Logs\Microsoft\Application-Experience\Program-Inventory

重要事件ID

  • 800:软件活动摘要
  • 900/901:新IE加载项
  • 903/904:新应用程序安装
  • 905:更新的应用程序
  • 907/908:删除的应用程序

查询方法

wevtutil qe /f:text Microsoft-Windows-Application-Experience/Program-Inventory

3. Program-Telemetry Event Log

位置

  • 文件路径:C:\Windows\System32\winevt\Logs\Microsoft-Windows-Application-Experience%4Program-Telemetry.evtx
  • 事件查看器路径:Applications and Services Logs\Microsoft\Application-Experience\Program-Telemetry

重要事件ID:500/505

查询方法

wevtutil qe /f:text Microsoft-Windows-Application-Experience/Program-Telemetry

二、从注册表中获取执行记录

1. ShimCache (AppCompatCache)

功能:跟踪文件路径、大小、最后修改时间和执行状态

注册表位置

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache

解析工具

导出方法

reg export "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache" ShimCache.reg

清除方法

  1. 导出当前ShimCache
  2. 重启系统
  3. 导入之前导出的注册表

2. UserAssist

功能:跟踪资源管理器中打开的可执行文件和完整路径

注册表位置

  • 当前用户:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist
  • 所有用户:HKEY_USERS\<sid>\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist

解析工具UserAssistView

清除方法:删除对应键值

3. MUICache

功能:存储应用程序名称供以后使用

注册表位置

  • Windows Server 2003及以前:
    • 当前用户:HKEY_CURRENT_USER/Software/Microsoft/Windows/ShellNoRoam/MUICache
    • 所有用户:HKEY_USERS\<sid>\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
  • Windows Server 2003及以后:
    • 当前用户:HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
    • 所有用户:HKEY_USERS\<sid>\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache

解析工具MUICacheView

查询方法

reg query "HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache"

4. RunMRU

功能:保存Win+R启动程序的历史记录

注册表位置

  • 当前用户:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
  • 所有用户:HKEY_USERS\<sid>\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU

查询方法

reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU"

5. AppCompatFlags Registry Keys

功能:保存以兼容模式启动的程序

注册表位置

HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

查询方法

reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"

6. Background Activity Moderator (BAM)

适用系统:Windows 10 version 1709及以后版本

注册表位置

HKLM\SYSTEM\CurrentControlSet\Services\bam\UserSettings\{SID}

FILETIME转换方法

from __future__ import division
import struct
import sys
from binascii import unhexlify
from datetime import datetime, timedelta

nt_timestamp = struct.unpack("<Q", unhexlify("dc14dd91be7cd501"))[0]
epoch = datetime(1601, 1, 1, 0, 0, 0)
nt_datetime = epoch + timedelta(microseconds=nt_timestamp / 10)
print(nt_datetime.strftime("%Y/%m/%d %H:%M:%S"))

7. RecentApps

适用系统:Windows 10及以上

注册表位置

HKCU\Software\Microsoft\Windows\Current Version\Search\RecentApps

FILETIME转换方法

w32tm.exe /ntte 131781889970180000

或PowerShell:

[datetime]::FromFileTime(0x1d42eee43808fa0)

三、从文件中获取执行记录

1. Prefetch

位置C:\Windows\Prefetch

检查功能状态

reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters" /v EnablePrefetcher
  • 0 = 禁用
  • 1 = 应用程序启动预读启用
  • 2 = 启动预读启用
  • 3 = 应用程序和启动预读都启用(默认)

解析工具PECmd

使用方法

PECmd.exe -f "C:\Temp\CALC.EXE-3FBEF7FD.pf"
PECmd.exe -d "C:\Temp" --csv "c:\temp"

2. JumpLists

位置%APPDATA%\Microsoft\Windows\Recent

查询方法

dir %APPDATA%\Microsoft\Windows\Recent

3. Amcache / RecentFileCache.bcf

Windows 7/Server 2008R2

Windows 8/10/Server 2012

  • 位置:C:\Windows\AppCompat\Programs\Amcache.hve
  • 解析工具:AmcacheParser

复制Amcache.hve方法:使用shadow copy

4. SRUM (System Resource Usage Monitor)

适用系统:Windows 8及以上

位置C:\Windows\system32\sru\SRUDB.dat

解析工具srum-dump

5. Windows 10时间轴(ActivitiesCache.db)

位置

C:\Users\<username>\AppData\Local\ConnectedDevicesPlatform\<random_char>\ActivitiesCache.db

重要表:Activity表(包含AppId、开始时间、结束时间等字段)

四、其他执行记录来源

计划任务

列出所有任务

schtasks.exe

或PowerShell:

Get-ScheduledTask

查看任务详情

schtasks.exe /query /v /tn test /fo list

删除任务

schtasks.exe /delete /tn Task_name /F

五、总结

攻击者视角

  • 获取执行记录有助于信息收集
  • 清除记录可减少暴露风险

防御者视角

  • 定期清理敏感执行记录
  • 注意记录可能被伪造或删除

参考资源

  • https://blog.1234n6.com/2018/10/available-artifacts-evidence-of.html
  • 各工具GitHub仓库链接
Windows取证:文件执行记录的获取与清除技术指南 前言 在Windows系统取证和安全分析中,文件执行记录是重要的信息来源。本指南详细总结了Windows系统中常见的文件执行记录位置、获取方法以及清除技术,适用于渗透测试、安全取证和系统管理员等多个场景。 一、从日志中获取执行记录 1. Audit Process Creation (4688/592事件) 适用系统 : Windows 7/Server 2008及以上版本(Event ID 4688) Windows XP/2003(Event ID 592) 开启方法 : 查询方法 : 清除方法 :参考相关安全文章 2. Program Inventory Event Log 位置 : 文件路径: C:\Windows\System32\winevt\Logs\Microsoft-Windows-Application-Experience%4Program-Inventory.evtx 事件查看器路径: Applications and Services Logs\Microsoft\Application-Experience\Program-Inventory 重要事件ID : 800:软件活动摘要 900/901:新IE加载项 903/904:新应用程序安装 905:更新的应用程序 907/908:删除的应用程序 查询方法 : 3. Program-Telemetry Event Log 位置 : 文件路径: C:\Windows\System32\winevt\Logs\Microsoft-Windows-Application-Experience%4Program-Telemetry.evtx 事件查看器路径: Applications and Services Logs\Microsoft\Application-Experience\Program-Telemetry 重要事件ID :500/505 查询方法 : 二、从注册表中获取执行记录 1. ShimCache (AppCompatCache) 功能 :跟踪文件路径、大小、最后修改时间和执行状态 注册表位置 : 解析工具 : AppCompatCacheParser ShimCacheParser 导出方法 : 清除方法 : 导出当前ShimCache 重启系统 导入之前导出的注册表 2. UserAssist 功能 :跟踪资源管理器中打开的可执行文件和完整路径 注册表位置 : 当前用户: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist 所有用户: HKEY_USERS\<sid>\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist 解析工具 : UserAssistView 清除方法 :删除对应键值 3. MUICache 功能 :存储应用程序名称供以后使用 注册表位置 : Windows Server 2003及以前: 当前用户: HKEY_CURRENT_USER/Software/Microsoft/Windows/ShellNoRoam/MUICache 所有用户: HKEY_USERS\<sid>\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache Windows Server 2003及以后: 当前用户: HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache 所有用户: HKEY_USERS\<sid>\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache 解析工具 : MUICacheView 查询方法 : 4. RunMRU 功能 :保存Win+R启动程序的历史记录 注册表位置 : 当前用户: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU 所有用户: HKEY_USERS\<sid>\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU 查询方法 : 5. AppCompatFlags Registry Keys 功能 :保存以兼容模式启动的程序 注册表位置 : 查询方法 : 6. Background Activity Moderator (BAM) 适用系统 :Windows 10 version 1709及以后版本 注册表位置 : FILETIME转换方法 : 7. RecentApps 适用系统 :Windows 10及以上 注册表位置 : FILETIME转换方法 : 或PowerShell: 三、从文件中获取执行记录 1. Prefetch 位置 : C:\Windows\Prefetch 检查功能状态 : 0 = 禁用 1 = 应用程序启动预读启用 2 = 启动预读启用 3 = 应用程序和启动预读都启用(默认) 解析工具 : PECmd 使用方法 : 2. JumpLists 位置 : %APPDATA%\Microsoft\Windows\Recent 查询方法 : 3. Amcache / RecentFileCache.bcf Windows 7/Server 2008R2 : 位置: C:\Windows\AppCompat\Programs\RecentFileCache.bcf 解析工具: RecentFileCacheParser Windows 8/10/Server 2012 : 位置: C:\Windows\AppCompat\Programs\Amcache.hve 解析工具: AmcacheParser 复制Amcache.hve方法 :使用shadow copy 4. SRUM (System Resource Usage Monitor) 适用系统 :Windows 8及以上 位置 : C:\Windows\system32\sru\SRUDB.dat 解析工具 : srum-dump 5. Windows 10时间轴(ActivitiesCache.db) 位置 : 重要表 :Activity表(包含AppId、开始时间、结束时间等字段) 四、其他执行记录来源 计划任务 列出所有任务 : 或PowerShell: 查看任务详情 : 删除任务 : 五、总结 攻击者视角 获取执行记录有助于信息收集 清除记录可减少暴露风险 防御者视角 定期清理敏感执行记录 注意记录可能被伪造或删除 参考资源 https://blog.1234n6.com/2018/10/available-artifacts-evidence-of.html 各工具GitHub仓库链接