Masriyan/WinFire
GitHub: Masriyan/WinFire
基于 PowerShell 的 Windows 取证应急响应引擎,实现端点现场工件自动化采集、威胁评分与合规报告生成。
Stars: 1 | Forks: 0
# WinFire
**Windows 取证应急响应引擎 v2.1.0**
[](https://github.com/PowerShell/PowerShell)
[](https://opensource.org/licenses/MIT)
[](https://www.microsoft.com/windows)
[](https://github.com/Masriyan/WinFire)
WinFire 是一个基于 PowerShell 的 Windows 取证应急响应引擎。它从 Windows 系统收集实时响应工件,导出结构化的 CSV/JSON 数据,生成执行摘要的 HTML 报告,记录监管链元数据,并将证据打包以供审查。
## 目录
- [使用前须知](#before-you-use)
- [v2.1.0 新特性](#what-is-new-in-v210)
- [功能](#features)
- [要求](#requirements)
- [用法](#usage)
- [输出结构](#output-structure)
- [威胁评分](#threat-scoring)
- [验证状态](#validation-status)
- [法律声明](#legal-notice)
- [贡献](#contributing)
- [安全](#security)
## 使用前须知
WinFire 执行合法的取证活动,这些活动可能与攻击者的侦察或数据收集行为相似。Antivirus 和 EDR 工具可能会发出警报或阻止该脚本。
建议的处理方式:
1. 在收集之前获得书面授权。
2. 与 SOC 或安全运营负责人协调。
3. 在监管链记录中记录任何 AV/EDR 排除项。
4. 以管理员身份运行 PowerShell。
5. 将结果存储在受保护的取证存储中。
Defender 排除项示例:
```
Add-MpPreference -ExclusionPath "C:\Tools\WinFire"
```
## v2.1.0 新特性
v2.1.0 添加了新的取证模块,修复了收集错误,改进了报告覆盖率,并强化了运行时行为。
### 新的收集模块
| 模块 | 输出 |
| --- | --- |
| 带有风险分类的命名管道枚举 | `Raw_Data\Named_Pipes.csv/.json` |
| 卷影副本枚举 | `Raw_Data\Shadow_Copies.csv/.json` |
| 备用数据流扫描 | `Raw_Data\Alternate_Data_Streams.csv/.json` |
| 代理、WPAD 和 WinHTTP 设置 | `Raw_Data\Proxy_Settings.csv/.json` |
| Sysmon 服务/配置/事件收集 | `Raw_Data\Sysmon_Artifacts.csv/.json`, `Sysmon_Events.json` |
| 内核驱动程序枚举及签名状态 | `Raw_Data\Kernel_Drivers.csv/.json` |
| ETW/WMI 使用者枚举 | `Raw_Data\ETW_Consumers.csv/.json` |
| AppLocker、WDAC、AMSI、PowerShell v2 状态 | `Raw_Data\Policy_State.csv/.json` |
| Credential Guard、VBS、BitLocker、TPM、LSA 保护 | `Raw_Data\Security_Posture.csv/.json` |
### 重要修复
- 将服务收集拆分为来自 `Get-Service` 的 `Services_Status` 和来自 `Get-CimInstance Win32_Service` 的 `Services_Detail`。
- 将剩余的 `Get-WmiObject` 用法替换为 `Get-CimInstance`。
- 将 `Get-WinFireSummaryEntry` 替换为已批准的动词 `Add-WinFireSummaryEntry`。
- 将管理员权限检查改为返回 `$false`;主执行流程负责处理退出和日志记录。
- 使用 `Get-WinFirePlannedTaskCount` 添加了动态进度任务计算。
- 修复了当可选注册表值不存在时 StrictMode 下的代理注册表收集问题。
- 更改了锁定的 `Amcache.hve` 处理方式,将锁定失败记录为数据行而不是失败的操作。
- 修复了 PowerShell 历史记录字符串的 JSON 序列化冗余问题。
- 通过添加风险分类调整了命名管道和 ADS 的误报。
## 功能
### 系统基线
- OS、BIOS、CPU、时区、网络配置、DNS 缓存、ARP、路由。
- 已安装软件清单。
- 环境变量和系统路径。
- 本地用户、组、组成员身份以及选定的配置文件工件。
### 进程和服务分析
- 正在运行的进程、父 PID、命令行、可执行路径、所有者和哈希值。
- 服务状态和详细的服务配置。
- 计划任务。
- WMI 事件订阅。
- ETW/WMI 使用者类。
- 带有签名状态的内核驱动程序。
### 网络分析
- TCP 和 UDP 连接。
- 正在监听的端口。
- 网络共享和映射驱动器。
- 防火墙规则。
- 代理、WinHTTP 和 WPAD 状态。
- 混杂模式适配器属性检查。
- SMB 会话和打开的文件。
- 网络配置文件。
- 带有模式和风险分类的命名管道。
### 文件系统和注册表
- 高风险位置中的最近文件。
- 可疑文件扩展名/名称/属性检查。
- 启动文件夹项。
- Amcache、Prefetch、SRUM、Windows Timeline 和 BITS 作业。
- 卷影副本清单。
- 带有良性流过滤的备用数据流扫描。
- Autorun 注册表键、USB 历史、RecentDocs、UserAssist、ShellBags、网络驱动器历史和 COM 劫持指示器。
### 事件日志和浏览器取证
- 安全、系统、应用程序、PowerShell 和 Defender 事件日志。
- 安装后的 Sysmon 服务和事件数据。
- Chrome、Edge 和 Firefox 高价值浏览器工件。
- 锁定的浏览器文件将被报告,而不会导致扫描崩溃。
### 高级威胁检测
- Windows Defender 状态和排除项。
- AV 和 EDR 服务检测。
- 已加载模块、DLL 注入指示器和进程镂空指示器。
- PowerShell 日志配置。
- PowerShell 历史威胁模式。
- RDP 活动。
- LOLBAS 滥用模式。
- 凭据转储指示器。
- 高级父子进程分析。
- 跳转列表和 LNK 分析。
- 带有风险级别的威胁评分。
## 要求
| 要求 | 值 |
| --- | --- |
| 操作系统 | Windows 10, Windows 11, Windows Server 2016+ |
| PowerShell | Windows PowerShell 5.1+ |
| 权限 | 需要管理员权限 |
| 推荐权限 | `SeDebugPrivilege`, `SeBackupPrivilege`, `SeRestorePrivilege` |
| 磁盘空间 | 取决于系统活动;建议 1 GB+ |
## 用法
在提升权限的 PowerShell 会话中运行:
```
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
.\WinFire.ps1 -Quick -OutputPath "C:\Forensics\Case001" -CaseNumber "INC-001" -Investigator "Analyst"
```
完整收集:
```
.\WinFire.ps1 -Full -OutputPath "D:\Cases\Case001" `
-CaseNumber "CASE-001" `
-Investigator "Analyst" `
-Purpose "Suspected ransomware intrusion"
```
静默快速扫描:
```
.\WinFire.ps1 -Quick -Quiet -OutputPath "C:\Forensics\Quick"
```
排除选定的模块:
```
.\WinFire.ps1 -Quick -ExcludeNetwork -ExcludeBrowser -OutputPath "C:\Forensics\Scoped"
```
### 参数
| 参数 | 描述 |
| --- | --- |
| `-Quick` | 更快的扫描,专注于高影响力的工件。 |
| `-Full` | 全面扫描。当未指定 `-Quick` 或 `-Full` 时默认使用。 |
| `-OutputPath` | 创建带有时间戳的结果的基础目录。 |
| `-ExcludeNetwork` | 跳过网络和命名管道分析。 |
| `-ExcludeBrowser` | 跳过浏览器工件收集。 |
| `-HashAlgorithm` | `MD5`、`SHA1` 或 `SHA256`。默认为 `SHA256`。 |
| `-Quiet` | 减少控制台输出。警告和最终摘要仍会显示。 |
| `-CaseNumber` | 用于监管链的案件标识符。 |
| `-Investigator` | 用于监管链的调查员姓名。 |
| `-Purpose` | 用于监管链的目的文本。 |
| `-Help` | 显示帮助。 |
### 退出代码
| 代码 | 含义 |
| --- | --- |
| `0` | 成功完成。 |
| `1` | 严重扫描错误。 |
| `2` | 先决条件检查失败。 |
| `3` | 缺少管理员权限或无法验证。 |
## 输出结构
```
WinFire_Results_YYYYMMDD_HHMMSS/
|-- Raw_Data/
| |-- System_Information.csv/.json
| |-- User_Accounts.csv/.json
| |-- Running_Processes.csv/.json
| |-- Services_Status.csv/.json
| |-- Services_Detail.csv/.json
| |-- Scheduled_Tasks.csv/.json
| |-- WMI_Event_Subscriptions.csv/.json
| |-- ETW_Consumers.csv/.json
| |-- Kernel_Drivers.csv/.json
| |-- Active_Network_Connections.csv/.json
| |-- Listening_Ports.csv/.json
| |-- Firewall_Rules.csv/.json
| |-- Proxy_Settings.csv/.json
| |-- Named_Pipes.csv/.json
| |-- Shadow_Copies.csv/.json
| |-- Alternate_Data_Streams.csv/.json
| |-- Policy_State.csv/.json
| |-- Security_Posture.csv/.json
| |-- Sysmon_Artifacts.csv/.json
| |-- Sysmon_Events.json
| |-- Threat_Score.csv/.json
| +-- ...
|-- Collected_Artifacts/
| |-- Browser_Profiles/
| |-- JumpLists/
| |-- Prefetch/
| +-- Timeline/
|-- Reports/
| |-- WinFire_Executive_Summary.html
| |-- Chain_Of_Custody.json
| |-- Hash_Manifest.txt
| +-- Operation_Metrics.csv
|-- WinFire_ExecutionLog.txt
+-- WinFire_Transcript.txt
```
## 威胁评分
WinFire 根据摘要警告和高信号原始指示器计算分数。v2.1.0 增加了以下评分项:
- 高风险命名管道匹配。
- 缺失 VSS 卷影副本。
- 可疑的备用数据流。
- 未签名的正在运行的内核驱动程序。
- LSA RunAsPPL 已禁用。
- PowerShell v2 降级风险。
- 缺失 Sysmon。
- WDAC/AppLocker 缺失或不可用。
风险级别:
| 分数 | 级别 |
| --- | --- |
| 0-10 | 低 |
| 11-30 | 中 |
| 31-60 | 高 |
| 61-100 | 严重 |
将评分视为分诊指南,而不是最终的受损裁定。
## 验证状态
当前脚本已在 Windows PowerShell 5.1 上通过以下环境的验证:
```
powershell -NoProfile -ExecutionPolicy Bypass -File .\WinFire.ps1 -Help
powershell -NoProfile -ExecutionPolicy Bypass -File .\WinFire.ps1 -Quick -OutputPath .\WinFire_TestRuns -Quiet
```
最新的本地快速扫描结果:
- 状态: `COMPLETED`
- 操作: `1512 total, 1512 succeeded, 0 failed`
- 输出: `WinFire_TestRuns\WinFire_Results_20260506_095301`
预期的实时系统警告包括锁定的临时/浏览器文件、缺少可选的取证权限、缺少 Sysmon 或没有 VSS 快照。
## 法律声明
WinFire 仅用于授权的数字取证、应急响应、安全评估和系统管理。用户需对授权、法律合规性、数据保护和监管链文档负责。
## 贡献
参见 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 安全
参见 [SECURITY.md](SECURITY.md)。
## 更新日志
参见 [CHANGELOG.md](CHANGELOG.md)。
## 许可证
本项目采用 MIT 许可证授权。参见 [LICENSE](LICENSE)。
仓库: [https://github.com/Masriyan/WinFire](https://github.com/Masriyan/WinFire)
WinFire v2.1.0 - 用于授权调查的 Windows 取证应急响应收集工具。
标签:DAST, EDR对抗, GitHub Advanced Security, HTML报告生成, IPv6, JSON导出, Libemu, PowerShell, Windows Server, 威胁评分, 安全加固, 实时响应, 库, 应急响应, 开源, 恶意软件分析, 数字取证, 数字取证, 数据包嗅探, 无线安全, 流量嗅探, 漏洞响应, 电子取证, 端点安全, 系统调查, 网络安全, 自动化脚本, 自动化脚本, 补丁管理, 证据保全, 隐私保护