| name | performing-endpoint-forensics-investigation |
| description | 对受损端点执行数字取证调查,包括内存获取、磁盘镜像、工件分析和时间线重建。 适用于调查安全事件、为法律诉讼收集证据或分析端点受损范围的场景。 适用于涉及端点取证、内存分析、磁盘取证或事件调查的请求。
|
| domain | cybersecurity |
| subdomain | endpoint-security |
| tags | ["endpoint","forensics","memory-analysis","disk-imaging","incident-investigation","Volatility"] |
| version | 1.0.0 |
| author | mahipal |
| license | Apache-2.0 |
执行端点取证调查
使用场景
在以下情况下使用本技能:
- 调查需要取证分析的已确认或疑似端点入侵
- 为事件响应或法律诉讼收集易失性和非易失性证据
- 分析内存转储以发现恶意软件、注入代码或凭据窃取工件
- 从端点工件(prefetch、shimcache、amcache)重建攻击者时间线
不适用于实时威胁狩猎(使用 EDR/SIEM)或网络取证。
前置条件
- 配备分析工具的取证工作站(Volatility 3、KAPE、Autopsy、Eric Zimmerman 工具)
- 磁盘镜像的写阻断器(硬件或软件)
- 具有监管链文档的安全证据存储
- 内存获取工具(WinPMEM、FTK Imager、Magnet RAM Capture)
- 目标端点的管理员访问权限(或物理访问)
操作流程
步骤 1:证据保全(易失性顺序)
按从最易失到最不易失的顺序收集证据:
1. 系统内存(RAM)- 最易失
2. 网络连接和路由表
3. 运行中的进程和打开的文件
4. 磁盘内容(文件系统)
5. 可移动媒体
6. 日志和备份数据 - 最不易失
内存获取:
# WinPMEM(Windows)
winpmem_mini_x64.exe memdump.raw
# FTK Imager - 通过 GUI 创建内存捕获
# 文件 → 捕获内存 → 目标路径 → 捕获内存
# Linux(LiME 内核模块)
sudo insmod lime.ko "path=/evidence/memory.lime format=lime"
易失性数据收集:
# 捕获运行中的进程
Get-Process | Export-Csv "evidence\processes.csv" -NoTypeInformation
tasklist /v > "evidence\tasklist.txt"
# 捕获网络连接
netstat -anob > "evidence\netstat.txt"
Get-NetTCPConnection | Export-Csv "evidence\tcp_connections.csv"
# 捕获已登录用户
query user > "evidence\logged_users.txt"
# 捕获计划任务
schtasks /query /fo CSV /v > "evidence\scheduled_tasks.csv"
# 捕获服务
Get-Service | Export-Csv "evidence\services.csv"
# 捕获 DNS 缓存
ipconfig /displaydns > "evidence\dns_cache.txt"
步骤 2:磁盘镜像
# FTK Imager - 创建取证磁盘镜像
# 文件 → 创建磁盘镜像 → 物理驱动器 → E01 格式
# 始终验证镜像哈希(MD5/SHA1)与源匹配
# dd(Linux)
sudo dc3dd if=/dev/sda of=/evidence/disk.dd hash=sha256 log=/evidence/imaging.log
# 验证镜像完整性
sha256sum /evidence/disk.dd
# 与镜像期间生成的哈希对比
步骤 3:使用 Volatility 3 进行内存分析
vol -f memdump.raw windows.info
vol -f memdump.raw windows.pslist
vol -f memdump.raw windows.pstree
vol -f memdump.raw windows.psscan
vol -f memdump.raw windows.netscan
vol -f memdump.raw windows.malfind
vol -f memdump.raw windows.cmdline
vol -f memdump.raw windows.dlllist --pid 1234
vol -f memdump.raw windows.filescan | grep -i "suspicious"
vol -f memdump.raw windows.dumpfiles --pid 1234
vol -f memdump.raw windows.hashdump
vol -f memdump.raw windows.lsadump
vol -f memdump.raw windows.registry.printkey --key "Software\Microsoft\Windows\CurrentVersion\Run"
步骤 4:Windows 工件分析
关键取证工件及其工具:
Prefetch 文件(C:\Windows\Prefetch\):
工具:PECmd.exe(Eric Zimmerman)
显示:带时间戳和运行次数的程序执行历史
命令:PECmd.exe -d "C:\Windows\Prefetch" --csv output\
ShimCache(AppCompatCache):
工具:AppCompatCacheParser.exe
显示:系统中存在过的程序(即使已删除)
命令:AppCompatCacheParser.exe -f SYSTEM --csv output\
AmCache(C:\Windows\appcompat\Programs\Amcache.hve):
工具:AmcacheParser.exe
显示:带 SHA1 哈希和安装时间戳的程序执行
命令:AmcacheParser.exe -f Amcache.hve --csv output\
NTFS 工件($MFT、$UsnJrnl、$LogFile):
工具:MFTECmd.exe
显示:完整文件系统时间线,包括已删除文件
命令:MFTECmd.exe -f "$MFT" --csv output\
事件日志:
工具:EvtxECmd.exe
显示:安全、系统、PowerShell、Sysmon 事件
命令:EvtxECmd.exe -d "C:\Windows\System32\winevt\Logs" --csv output\
注册表配置单元(SAM、SYSTEM、SOFTWARE、NTUSER.DAT):
工具:RECmd.exe 及批处理文件
显示:用户账户、服务、已安装软件、USB 历史
命令:RECmd.exe -d "C:\Windows\System32\config" --bn BatchExamples\RECmd_Batch_MC.reb --csv output\
步骤 5:时间线重建
kape.exe --tsource C: --tdest C:\evidence\kape_output \
--target KapeTriage --module !EZParser
log2timeline.py timeline.plaso disk_image.E01
psort.py -o l2tcsv timeline.plaso -w timeline.csv
psort.py -o l2tcsv timeline.plaso "date > '2026-02-20' AND date < '2026-02-22'" -w filtered_timeline.csv
步骤 6:记录发现
取证报告结构:
1. 执行摘要
2. 范围和方法论
3. 证据清单(含监管链)
4. 事件时间线
5. 发现和分析
- 初始访问向量
- 持久化机制
- 横向移动
- 数据访问/泄露
6. 失陷指标(IOC)
7. 建议措施
8. 附录(工具输出、哈希、原始证据)
关键概念
| 术语 | 定义 |
|---|
| 易失性顺序 | 从最易失(RAM)到最不易失(备份)的证据收集优先级 |
| 监管链 | 从收集到呈堂的证据处理完整文档记录 |
| 写阻断器 | 防止修改源证据的硬件或软件设备 |
| 超级时间线 | 所有工件时间戳的综合时间顺序视图,用于事件重建 |
| Prefetch | 记录程序执行历史的 Windows 工件 |
| ShimCache | 跟踪端点上程序存在情况的应用程序兼容性工件 |
工具与系统
- Volatility 3:用于分析 RAM 转储的内存取证框架
- KAPE(Kroll Artifact Parser and Extractor):自动化分类收集和解析
- Eric Zimmerman 工具:Windows 工件解析器套件(PECmd、MFTECmd、RECmd 等)
- Autopsy/Sleuth Kit:用于文件系统分析的磁盘取证平台
- FTK Imager:取证镜像和内存获取工具
- Plaso/log2timeline:超级时间线创建框架
常见误区
- 在实时系统上修改证据:始终先镜像再分析。在实时系统上运行工具会改变时间戳和内存状态。
- 忘记监管链:没有记录监管链的证据在法律诉讼中不可采信。
- 只分析磁盘,忽略内存:仅在内存中的恶意软件(无文件攻击)不留下磁盘工件。始终先捕获内存。
- 未对证据进行哈希:所有证据必须在收集时进行加密哈希以证明完整性。
- 隧道视野:专注于单一工件而忽视时间线呈现的更广泛故事。始终构建全面的时间线。