Devzinh/GhostTrace

GitHub: Devzinh/GhostTrace

GhostTrace 是一款只读的 Windows 取证痕迹扫描工具,用于采集和分析软件持久化、执行证据及用户活动痕迹,并将结果映射到 MITRE ATT&CK 框架。

Stars: 0 | Forks: 0

# GhostTrace ![GhostTrace](https://static.pigsec.cn/wp-content/uploads/repos/cas/b5/b5eb8f9af92c604e6927e8f946e9afd8bb0914f32590ea930f773faa16510d37.svg) GhostTrace 是一款专为应急响应人员、系统管理员和具备安全意识的高级用户设计的本地 Windows 取证痕迹追踪工具。它将持久化、执行、活动以及残留的痕迹映射为可供审查的记录,并且仅在你明确选择时,提供严格受限的清理操作。 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/1d/1d494e8e0d31b078d30d4187a990f06e7c891c9e4fc1b3499c6d8dedecded045.svg)](https://github.com/Devzinh/GhostTrace/actions/workflows/ci.yml) [![Release](https://img.shields.io/github/v/release/Devzinh/GhostTrace?display_name=tag&sort=semver&style=flat-square)](https://github.com/Devzinh/GhostTrace/releases/latest) ![Windows](https://img.shields.io/badge/platform-Windows%2010%2F11%20x64-1F8FFF?style=flat-square) ![.NET](https://img.shields.io/badge/.NET-10-17B47E?style=flat-square) [![License](https://img.shields.io/badge/license-MIT-F39C3D?style=flat-square)](LICENSE) **[下载](https://github.com/Devzinh/GhostTrace/releases/latest)** | **[快速开始](#quick-start)** | **[功能特性](#what-it-collects)** | **[安全模型](#forensic-safety)** | **[路线图](docs/roadmap.md)** | **[葡萄牙语 (巴西)](docs/README_PT_BR.md)** ## 为什么选择 GhostTrace 卸载应用程序并不总是能清除其运行痕迹。启动项、计划任务、缓存的执行证据、注册表值、服务和文件夹可能会在安装程序报告成功后长期残留。 GhostTrace 将这一宽泛的问题转化为聚焦的本地调查: - **一次聚焦的追踪**,涵盖 22 个取证模块。 - **按来源划分证据**,每个模块独立保存发现、错误和元数据。 - **天生离线**,无遥测、不上传数据、不依赖云端。 - **审计就绪的输出**,包括 TXT 记录、用于定向收集器的 JSON 输出以及清理日志。 - **人工控制的清理**,绝不进行自动修复。 ![GhostTrace running in the terminal](https://static.pigsec.cn/wp-content/uploads/repos/cas/54/54c604d1d3fc9e77d01d8aaa75328292de1ef2b56fc8775a755b1689161f8b6a.gif) ## 快速开始 ### 安装 从 [Releases](https://github.com/Devzinh/GhostTrace/releases/latest) 下载最新的 x64 MSI: ``` GhostTrace--x64.msi ``` 该安装包是独立的,因此目标机器不需要预装 .NET 运行时。请以管理员身份运行 GhostTrace,以访问受保护的 Windows 痕迹。 ### 追踪软件名称 ``` GhostTrace.CLI scan --name nvidia ``` 交互式流程会显示进度,按技术对发现进行分组,并可以导出调查记录。如果存在安全的清理候选项,你必须选择它们并输入确认短语,然后才会执行任何移除操作。 ### 在自动化中运行 ``` GhostTrace.CLI scan --name nvidia --quiet --output C:\Cases\Host1 ``` `--quiet` 会创建非交互式的 TXT 记录。报告写入失败将返回非零退出代码,因此自动化不会在没有生成文件的情况下静默成功。 ### 核心命令 | 目标 | 命令 | | --- | --- | | 打开交互式菜单 | `GhostTrace.CLI` | | 运行全面分诊 | `GhostTrace.CLI scan` | | 追踪指定的应用程序 | `GhostTrace.CLI scan --name ` | | 生成对脚本友好的扫描记录 | `GhostTrace.CLI scan --name --quiet --output ` | | 关联 Task Scheduler COM 和 TaskCache | `GhostTrace.CLI scan-tasks-correlate-json --output ` | | 检查目录、Registry 键或 Event Log | `scan-fs-json`, `scan-reg-json`, `scan-evt-json` | 使用 `--lang` 选择界面语言: ``` GhostTrace.CLI scan --name nvidia --lang en GhostTrace.CLI --lang pt-BR ``` ## 从收集到审查 ![GhostTrace investigation workflow](https://static.pigsec.cn/wp-content/uploads/repos/cas/7b/7bd2c014fb625dae97b83f1942ff9939c7a1541b981a670a2dad9ff62e72931f.svg) 1. GhostTrace 运行选定收集任务可用的模块。 2. 每个模块返回其各自的发现、错误和元数据。 3. CLI 会呈现简明的摘要,并根据需要写入本地记录。 4. 任何选定的清理操作都将写入单独的审计日志中。 ## 它收集什么 ![GhostTrace module coverage](https://static.pigsec.cn/wp-content/uploads/repos/cas/f3/f3cd74c3c77d43285cdb277abc6b78ee8f08ae8c3f5bce5c6eb2a59ae6b7aa12.svg) | 领域 | 证据来源 | | --- | --- | | 持久化 | Run/RunOnce、Startup、services、Winlogon、IFEO、AppInit、LSA、Active Setup、WMI 和 scheduled tasks | | 执行 | Prefetch、Shimcache、BAM/DAM、UserAssist 和 MUICache | | 用户活动 | PowerShell 历史记录、出站 RDP 历史记录、RecentDocs、USB 和网络痕迹 | | 已安装软件和残留物 | Uninstall 条目、StartupApproved、Program Files、ProgramData 和 AppData 痕迹 | | 计划任务关联 | 用于调查 Ghost Tasks (T1053.005) 的 COM 和 TaskCache 差异 | ### 持久化模块 | 模块 | 来源 | | --- | --- | | `PersistenceScanModule` | Run/RunOnce 和 Startup 文件夹 | | `ServicesScanModule` | Service 和 driver 的 `ImagePath` 值 | | `AsepScanModule` | Winlogon、IFEO、AppInit、LSA 和 Active Setup | | `ScheduledTasksScanModule` | Task Scheduler COM,包括隐藏任务 | | `TaskCacheScanModule` | `TaskCache\Tree` 异常 | | `WmiPersistenceScanModule` | `__EventFilter`、`__EventConsumer` 及其绑定 | ### 执行和活动模块 | 模块 | 来源 | | --- | --- | | `PrefetchScanModule` | Windows 10/11 的 `.pf` 文件,包括 XPRESS-Huffman 压缩 | | `ShimcacheScanModule` | AppCompatCache | | `BamScanModule` | 按 SID 记录的 BAM/DAM | | `UserAssistScanModule` | GUI 启动和使用次数 | | `MuiCacheScanModule` | Shell MUICache | | `PowerShellHistoryScanModule` | PSReadLine 历史记录和可疑命令信号 | | `RdpConnectionScanModule` | 出站 RDP 连接历史记录 | | `RecentDocsScanModule` | 资源管理器 RecentDocs | | `UsbDeviceScanModule` | USBSTOR 历史记录 | | `NetworkArtifactsScanModule` | Hosts 文件和已知的网络配置文件 | ## 取证安全 GhostTrace 默认是**只读收集器**。其清理工作流程针对的是软件残留,而不是自动的恶意软件修复。 - 无需网络调用、遥测、证据上传或云账户。 - 清理操作在启动时没有任何预选项,需要明确选择并输入确认信息。 - 执行缓存和活动历史永远不会成为清理候选项。 - 只有当目录直接位于受信任的根目录下、与目标名称完全匹配且不是联接点或符号链接时,才可被移除。 - 部分名称匹配会成为 `FilesystemTraceHint`:可报告,但绝不可移除。 - JSON 报告以原子方式写入,在替换完成之前保留现有报告。 - `Ctrl+C` 会协作式取消计划任务关联和 Prefetch 文件读取。 ## 适合调查的输出 | 输出 | 最适合 | | --- | --- | | 交互式表格 | 分析师快速审查 | | TXT 报告 | 来自 `scan` 的本地记录,包括 `--quiet` 自动化 | | JSON 报告 | 定向收集器和计划任务关联 | | 清理日志 | 审计已移除、已跳过和失败的清理操作 | `PartialSuccess` 表示模块产生了发现,但也遇到了限制。在将缺失的结果视为来源干净之前,请阅读该模块的错误信息。 ## 为信任而构建 - Pull request 会在 Windows 上使用 .NET 10 进行还原、构建和测试。 - 发布门控会在构建 MSI 之前测试完整的 `GhostTrace.sln`。 - `src/GhostTrace.Tests` 和 `tests/GhostTrace.Tests.Unit` 都包含在解决方案和 CI 中。 - 稳定版本仅接受 `v..` 标签。 - GhostTrace 采用 [MIT 许证](LICENSE) 发布。 ## 文档 - [计划任务关联手册](docs/playbooks/scheduled-tasks-correlation.md) - [产品路线图](docs/roadmap.md) - [UX 与架构决策](docs/design/ux-architecture-decisions.md) - [测试项目指南](tests/README.md) - [README (巴西葡萄牙语)](docs/README_PT_BR.md) ## 贡献 欢迎贡献。请保持收集器为只读状态,传播 `CancellationToken`,将覆盖率缺口显示为结果错误,并在行为更改中包含测试。[路线图](docs/roadmap.md) 重点指明了下一个高影响力的领域。 GhostTrace 为调查提供支持。请在主机环境、时间线和你的操作规程的上下文中验证每一个痕迹。
标签:持久化扫描, 攻击溯源, 数字取证, 自动化脚本