MgnCoding2020/windows-triage-toolbox

GitHub: MgnCoding2020/windows-triage-toolbox

这是一个Windows系统安全分诊工具箱,通过PowerShell脚本实现只读证据收集和结构化报告,解决事件响应中的系统监控和数据获取问题。

Stars: 0 | Forks: 0

# Windows 分诊工具箱 用于安全优先的 Windows 分诊和 持续监控的 PowerShell 脚本及脱敏证据样本。是 [**Windows 分诊手册**](https://github.com/MgnCoding2020/windows-triage-playbooks) 的配套资源库。 **版本:** v4.1.1 **状态:** 只读脚本集,已在 Windows 10 Pro 上重新验证 · 2026年5月 **许可证:** MIT ## 这是什么 一个现场工具包,包含一组 PowerShell 脚本,用于对 Windows 端点运行只读收集 并向磁盘写入结构化报告。设计为以下两种方式运行: - **便携模式** — 直接从 USB 挂载的 ToolBox 文件夹运行 - **安装模式** — 复制到 `C:\ProgramData\ToolBox` 并通过计划任务驱动 每个脚本: - 从其自身位置 (`$PSScriptRoot`) 解析 ToolBox 根目录 - 将输出写入 `12_Reports\YYYY-MM\COMPUTERNAME\YYYYMMDD_HHMMSS_\` 目录下 - 生成一个 `ReportManifest.json` 文件,记录工具名称、参数、开始/结束时间、 提升上下文、输出文件列表以及警告/错误信息 - 声明一个安全级别:`ReadOnly`、`Caution`、`Administrative`、`Destructive`、`Recovery` 配套的 Playbook 集([Windows 分诊手册](https://github.com/MgnCoding2020/windows-triage-playbooks)) 记录了如何在真实的分诊工作流中使用这些脚本的输出。 ## 这不是什么 - 一个受管理的企业监控代理 - EDR(端点检测与响应)的替代品 - 运行这些脚本就一定能检测或移除恶意软件的保证 - 在情况需要时,专业事件响应团队的替代品 ## 仓库结构 ``` . ├── README.md ← this file ├── CHANGELOG.md ← version history (v4.1.1 patch notes) ├── CONTROL_MAPPING.md ← scripts → NIST 800-53 / 800-171 / CIS controls ├── LICENSE ← MIT ├── scripts/ ← 20 PowerShell scripts └── samples/ ← redacted output from a real local run (May 2026) └── README.md ← what each sample shows ``` ## 脚本列表 | 脚本 | 安全级别 | 用途 | |---|---|---| | `ToolBox.Common.ps1` | — | 共享框架(文件夹解析、运行上下文、清单、日志记录) | | `Initialize-ToolBoxFolders.ps1` | Administrative | 创建标准文件夹布局 | | `HealthSnapshot-ToolBox.ps1` | ReadOnly | 操作系统 / BIOS / 磁盘 / Defender / 事件错误快照 | | `Analyze-EventLogs-ToolBox.ps1` | ReadOnly | 精选的 Windows 事件日志审阅窗口 | | `Audit-Network-ToolBox.ps1` | ReadOnly | TCP/UDP、防火墙、DNS 缓存、主机、路由 | | `Audit-DefenderExclusions-ToolBox.ps1` | ReadOnly | Defender 排除项 + ASR 规则 + 配置漂移 | | `Cert-ExpiryMonitor-ToolBox.ps1` | ReadOnly | 本地证书存储、过期时间 + 证书链状态 | | `Get-BrowserExtensions-ToolBox.ps1` | ReadOnly | Chromium + Firefox 系列浏览器扩展清单 | | `Get-PersistenceInventory-ToolBox.ps1` | ReadOnly | 计划任务、服务、Run 键、IFEO、WMI 订阅 | | `Get-ToolBoxIntegrity.ps1` | ReadOnly | ToolBox 本身的 SHA256 基线 + 漂移检查 | | `InstalledApps-Inventory-ToolBox.ps1` | ReadOnly | 注册表 + AppX 清单,带启发式审查建议 | | `PrivGroups-DriftCheck-ToolBox.ps1` | ReadOnly | 本地特权组成员身份与基线的对比检查 | | `Invoke-ToolBoxAudit.ps1` | ReadOnly | 包装器 — 运行只读审计捆绑包 | | `Invoke-ToolBoxFastTriage.ps1` | ReadOnly | 用于初步分诊的快速子集 | | `Get-FileHashWithVTNote-ToolBox.ps1` | Caution | 计算文件哈希;可选 VirusTotal 哈希查询(需要 API 密钥) | | `Archive-EventLogs-Safe.ps1` | Administrative | 导出范围受限的 `.evtx` 存档 | | `Install-SysmonToolBox.ps1` | Administrative | 可选的 Sysmon 安装/配置 | | `Register-ToolBoxScheduledTasks.ps1` | Administrative | 注册计划任务(默认拒绝可移动路径) | | `Unregister-ToolBoxScheduledTasks.ps1` | Administrative | 移除已注册的任务 | | `Invoke-ToolBoxMonthlyMaintenance.ps1` | Administrative | 基于日历的存档轮换 | ## 快速开始(便携式 USB) ``` cd :\ToolBox\11_Scripts Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass .\Initialize-ToolBoxFolders.ps1 .\HealthSnapshot-ToolBox.ps1 .\Get-ToolBoxIntegrity.ps1 -CreateBaseline .\PrivGroups-DriftCheck-ToolBox.ps1 ``` 报告将出现在 `..\12_Reports\YYYY-MM\COMPUTERNAME\_\` 目录下。 ## 快速开始(已安装监控模式) ``` # 将 ToolBox 树复制到 C:\ProgramData\ToolBox 后 cd C:\ProgramData\ToolBox\11_Scripts Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass .\Initialize-ToolBoxFolders.ps1 .\Get-ToolBoxIntegrity.ps1 -CreateBaseline .\PrivGroups-DriftCheck-ToolBox.ps1 .\Invoke-ToolBoxAudit.ps1 -All .\Register-ToolBoxScheduledTasks.ps1 ``` 计划任务注册会拒绝可移动路径,除非传递 `-AllowRemovablePath` 参数。 这是有意为之——当 USB 盘符发生变化时,任务会静默失败。 ## 操作原则 按这些原则行事。这是 Playbook 集建立的相同的四行准则: 以及不可违背的原则: 1. **只读优先。** 在更改任何东西之前先收集。 2. **清理之前先收集。** 清理会销毁你需要了解发生了什么的证据。 3. **不要为可疑机器建立基线。** 基线是对已知良好状态的声明。 4. **切勿随意清除日志。** 安全日志、Defender 日志、PowerShell 日志和 Sysmon 日志都是证据。 5. **VirusTotal 哈希优先。** 切勿上传包含机密信息的私有文件、配置或日志。 6. **假设未知主机可能脆弱。** 先检查驱动器健康状况、加密、备份和业务上下文。 ## 证据样本 [`samples/`](./samples) 包含在我自己的工作站上运行(Windows 10 Pro, 2026年5月)后脱敏的输出。 所有主机名、用户名、BIOS 序列号、MAC 地址、SID 和网络配置文件 GUID 字段都已被替换为占位符。 包含的是精选子集——每个工具的 `ReportManifest.json`、摘要文件以及展示输出结构的小型 CSV。 完整的原始输出(事件日志转储、网络连接表、已安装应用清单)有意未予发布。 详见 [`samples/README.md`](./samples/README.md) 获取每个工具的详细说明。 ## 授权与范围 这些脚本设计用于**你拥有或已获书面授权可操作**的系统。 它们默认是只读的,但会深入读取——注册表、事件日志、计划任务、服务、证书存储、特权组成员资格。 不要在你无权检查的机器上运行它们。 ## 许可证 MIT — 详见 [`LICENSE`](./LICENSE)。 ## 项目历史 此工具箱是个人 Windows 监控项目的第三次迭代: - **第一阶段(2024 年 – 2025 年 9 月)** — 早期脚本开发和实验室工作。 - **第二阶段(2025 年 10 月 – 2026 年 2 月)** — 在我自己的日常主工作站上运行的持续监控操作。 计划任务每日/每周/每月执行,并存档报告输出;发布为 [HomeEDR-and-Governance-Security](https://github.com/MgnCoding2020/HomeEDR-and-Governance-Security)。 当 WGU 课程和生活优先事项占据主导时,于二月暂停。 - **第三阶段(2026 年 5 月 — 此仓库)** — 工具包的便携式 USB 挂载版本, 经过冒烟测试,在 v4.1.1 周期中修补并重新发布,附带脱敏的 证据样本和配套的 [Windows 分诊手册](https://github.com/MgnCoding2020/windows-triage-playbooks) 文档集。 这个仓库看起来是新的,因为它*确实*是新的——但底层的工作并非如此。 ## 关于作者 由 **Michael Nault** ([MgnCoding2020](https://github.com/MgnCoding2020) 创作和维护—— 一名入门级 GRC(治理、风险与合规)候选人,在 WGU(西部州长大学)攻读网络安全与信息保障学士学位的同时, 通过自学进行蓝队和合规性学习。 初稿和结构借助了 AI 辅助;此仓库中的每个脚本都经过手动编辑, 在真实的 Windows 10 Pro 工作站上进行了冒烟测试, 并在 [`CHANGELOG.md`](./CHANGELOG.md) 中记录的 v4.1.1 周期中完成了修补。 配套的 Playbook 集位于 [Windows 分诊手册](https://github.com/MgnCoding2020/windows-triage-playbooks)。 - GitHub: [@MgnCoding2020](https://github.com/MgnCoding2020) - LinkedIn: [michael-nault-mgncoding2020](https://www.linkedin.com/in/michael-nault-mgncoding2020)
标签:AI合规, AMSI绕过, CIS控制, Conpot, Homebrew安装, Libemu, NIST 800-53, PowerShell脚本, Windows安全, 只读收集, 威胁检测, 安全分诊, 安全合规, 系统取证, 结构化报告, 网络代理, 自动化监控, 连续监控