fevra-dev/Vigil

GitHub: fevra-dev/Vigil

一款纯浏览器端的 Windows 事件日志取证分析工具,无需后端即可完成 Sigma 规则匹配、PowerShell 解码、勒索软件链路关联等多维度威胁检测与可视化分析。

Stars: 1 | Forks: 0

# Vigil **适用于“就地取材”时代的 Windows 事件日志取证工具。** [![React](https://img.shields.io/badge/React-19-blue?style=flat-square&logo=react&logoColor=white)](https://react.dev) [![License](https://img.shields.io/badge/License-MIT-green?style=flat-square)](LICENSE) [![MITRE ATT&CK](https://img.shields.io/badge/MITRE-ATT%26CK%C2%AE%20v15-red?style=flat-square)](https://attack.mitre.org) [![Sigma](https://img.shields.io/badge/Sigma-31%20rules-purple?style=flat-square)](https://sigmahq.io) Vigil 是一款客户端 DFIR 工具,无需后端即可检测 Windows 事件日志中的威胁。它能够导入 Hayabusa、Chainsaw 或原始 EVTX 导出文件,并运行实时的 Shannon 熵分析、Sigma 规则匹配、PowerShell 混淆解码、ScriptBlock 重组、勒索软件链路关联、凭据访问检测以及进程谱系重建——所有这些操作完全在浏览器中进行。 Vigil 得名于“vigil”(守夜)——一段保持警惕的时期。Vigil 时刻监视着您的日志,让攻击者无法遁形。 ## 快速开始 ``` git clone https://github.com/fevra-dev/Vigil.git cd Vigil/vigil-run npm install npm run dev ``` 打开 `http://localhost:5173` 并点击仪表盘上的 **Load demo file** 以查看完整管道的实际运行效果,或者拖入您自己的 Hayabusa/Chainsaw 输出文件。 ### 生成测试数据 ``` # Hayabusa (推荐) hayabusa json-timeline -d /path/to/evtx/ -o results.jsonl # Chainsaw chainsaw hunt /path/to/evtx/ -s sigma/ --json > results.json ``` ## 检测功能 | 检测模块 | 技术 | MITRE ATT&CK | |---|---|---| | **Sigma 引擎** | 31 条规则,涵盖 LotL、持久化、凭据访问、横向移动、勒索软件 | 多项 | | **勒索软件链** | 针对每台主机的多阶段预部署关联(vssadmin、bcdedit、wbadmin、netsh) | T1490 | | **横向移动** | SMB 扫描(3 次及以上的 Type 3 登录)、RDP 异常、PsExec 模式检测 | T1021.001, T1021.002 | | **凭据访问** | SAM 注册表转储、DCSync (EID 4662)、Kerberoasting 爆发 (EID 4769 RC4) | T1003.002, T1003.006, T1558.003 | | **PowerShell 分析** | 12 种混淆类别 + 自动 Base64 解码 + ScriptBlock 重组 (EID 4104) | T1059.001, T1027 | | **熵评分** | Shannon 熵 + 字符类型变化频率,用于混淆检测 | T1027.010 | | **进程谱系** | 通过 Sysmon ProcessGuid 或启发式 PID 链接进行父子进程树重建 | T1059 | | **基线比对** | PersistenceSniper CSV/JSON 差异比对——抑制已知良好项,暴露攻击者植入的持久化项 | T1547 | ## 选项卡 | 选项卡 | 用途 | |---|---| | **仪表盘** | 文件拖放区、事件直方图、EID 频率、严重性统计、威胁摘要、攻击者画像 | | **日志分析器** | 可搜索的事件表,支持正则表达式、点击透视筛选、熵评分、PowerShell 解码面板 | | **关联引擎** | 多事件攻击链重建,带有杀伤链阶段映射 | | **攻击图谱** | 双车道 SVG 时间轴,通过战术着色展示主机之间的横向移动 | | **进程谱系** | 可展开的进程祖先树视图,按主机分组,支持命令行检查 | | **登录摘要** | EID 4624/4625 登录时间轴、登录类型细分、按账户标记的异常 | | **勒索软件链** | 5 阶段预部署杀伤链可视化,带置信度评分 | | **横向移动** | SMB 扫描、RDP 异常、PsExec 模式关联及序列可视化 | | **基线比对** | 针对已知良好基线的实时差异比对——仅显示增量部分 | | **Sigma 工作坊** | 浏览、搜索和检查全部 31 条规则,并支持实时 KQL/SPL/EQL/VQL 导出 | | **ATT&CK 地图** | 覆盖 8 个战术、35 个技术的技术覆盖范围热力图 | | **LOLBin 雷达** | 来自 LOLBAS + PersistenceSniper 目录中 18 个 LOLBin 的检测状态 | ## 架构 ``` File Drop │ ▼ ┌────────────────────────────────┐ │ Format Detection │ │ Hayabusa JSONL · Chainsaw │ │ Raw EVTX · Vigil JSON │ └──────────────┬─────────────────┘ │ ▼ ┌────────────────────────────────┐ │ Normalization + Reassembly │ │ Unified VigilEvent schema │ │ EID 4104 ScriptBlock stitch │ └──────────────┬─────────────────┘ │ ▼ ┌────────────────────────────────┐ │ Enrichment Pipeline │ │ │ │ 12 processing modules │ │ Entropy · Sigma · PS decode │ │ Ransomware · LM · Kerberos │ │ Lineage · Baseline diff │ └──────────────┬─────────────────┘ │ ▼ ┌────────────────────────────────┐ │ Output │ │ 12 interactive analysis tabs │ │ KQL/SPL/EQL/VQL rule export │ │ JSON/CSV event export │ └────────────────────────────────┘ ``` ## 检测覆盖范围 31 条采用开放标准编写的 Sigma 规则,映射至 MITRE ATT&CK v15。 | ID | 技术 | MITRE | 严重性 | |---|---|---|---| | SIGMA-001 | Impacket WMIExec 横向移动 | T1047, T1021.002 | Critical | | SIGMA-002 | WMI 持久化三组件(Filter + Consumer + Binding) | T1546.003 | Critical | | SIGMA-003 | GhostTask — 通过直接写入注册表创建计划任务 | T1053.005, T1112 | Critical | | SIGMA-004 | 通过 comsvcs.dll MiniDump 转储 LSASS | T1003.001, T1218.011 | Critical | | SIGMA-005 | 域控上的 DSRM 后门 | T1098, T1112 | Critical | | SIGMA-006 | LOLBin 链 — certutil 下载 + 编码的 PowerShell | T1105, T1059.001 | High | | SIGMA-007 | Suborner — 通过 RID 劫持隐藏管理员 | T1136.001, T1098 | Critical | | SIGMA-008 | PowerShell 配置文件持久化 | T1546.013 | High | | SIGMA-009 | 通过 AppCompatFlags 实现的 TelemetryController 持久化 | T1053.005, T1112 | High | | SIGMA-010 | mshta.exe 远程 HTA 执行 | T1218.005 | Critical | | SIGMA-011 | regsvr32.exe Squiblydoo(远程 COM 脚本) | T1218.010 | High | | SIGMA-012 | bitsadmin.exe 通过 BITS 作业下载文件 | T1105, T1197 | High | | SIGMA-013 | wmic.exe 远程进程创建 | T1047 | Critical | | SIGMA-014 | cmstp.exe 通过 INF 实现 UAC 绕过 | T1218.003 | High | | SIGMA-015 | 安全事件日志被清除(反取证) | T1070.001 | Critical | | SIGMA-016 | vssadmin 删除卷影副本(勒索软件) | T1490 | Critical | | SIGMA-017 | bcdedit 禁用恢复(勒索软件) | T1490 | Critical | | SIGMA-018 | wbadmin 删除备份目录(勒索软件) | T1490 | Critical | | SIGMA-019 | netsh 禁用防火墙(防御规避) | T1562.004 | High | | SIGMA-020 | 注册表 Run 键持久化(Sysmon EID 13) | T1547.001 | High | | SIGMA-021 | 可疑服务安装 — 非标准路径(EID 7045) | T1543.003 | High | | SIGMA-022 | 通过写入 CLSID 注册表进行 COM 对象劫持 | T1546.015 | High | | SIGMA-023 | 创建计划任务 — EID 4698 | T1053.005 | Medium | | SIGMA-024 | 从可疑路径加载 DLL(Sysmon EID 7) | T1574.001 | High | | SIGMA-025 | PowerShell ScriptBlock — 检测到攻击性工具 | T1059.001 | Critical | | SIGMA-026 | 通过 PowerShell 尝试绕过 AMSI | T1562.001 | Critical | | SIGMA-027 | 从可疑目录执行 PowerShell | T1059.001 | High | | SIGMA-028 | 通过 MavInject 或 odbcconf 进行的 LOLBin DLL 注入 | T1218 | Critical | | SIGMA-029 | 通过 reg.exe 转储 SAM 注册表配置单元 | T1003.002 | Critical | | SIGMA-030 | DCSync — 通过 EID 4662 进行的目录复制 | T1003.006 | Critical | | SIGMA-031 | Kerberos RC4 服务票据请求(Kerberoasting) | T1558.003 | High | ## 项目结构 ``` Vigil/ ├── vigil-run/ The application (React 19 + Vite) │ ├── src/ │ │ ├── components/ 18 UI components (12 tabs + atoms + tokens) │ │ ├── engine/ 12 processing modules │ │ ├── data/ 7 reference data files (31 Sigma rules, 18 LOLBins, MITRE map) │ │ └── store/ EventContext (central state management) │ └── public/sample/ Bundled 43-event Hayabusa demo file ├── .github/workflows/ GitHub Pages deployment ├── LICENSE MIT └── README.md ``` ## 关键设计决策 - **零后端** — React 19 + Vite,完全在客户端运行。没有数据会离开浏览器。 - 除了 React 之外**没有其他运行时依赖** — 熵计算、Sigma 匹配、PS 解码、链路关联、谱系构建和查询导出均在纯 JavaScript 中运行。 - **多格式导入** — 自动检测 Hayabusa JSONL、Chainsaw JSON、原始 EVTX JSON 以及 Vigil 原生重新导入。 - **规则导出** — 每条 Sigma 规则都可以导出为 KQL (Sentinel/Defender)、SPL (Splunk)、EQL (Elastic) 或 VQL (Velociraptor),并带有针对特定平台的字段映射。 ## 作者 **Fevra** — 安全开发者 [![GitHub](https://img.shields.io/badge/GitHub-fevra--dev-black?style=flat-square&logo=github)](https://github.com/fevra-dev/Vigil) [![作品集](https://img.shields.io/badge/Portfolio-fevra.dev-orange?style=flat-square)](https://fevra.dev) ## 许可证 MIT License — 详见 [LICENSE](LICENSE)。 MITRE ATT&CK 是 The MITRE Corporation 的注册商标。
标签:ATT&CK框架, Chainsaw, Cloudflare, EVTX解析, Hayabusa, Living off the Land, LotL攻击, MITRE ATT&CK, OpenCanary, PowerShell反混淆, PowerShell解密, React, Sigma引擎, Sigma规则匹配, Syscalls, Web安全应用, Windows事件日志, 代理, 凭证访问检测, 前端安全工具, 前端防御, 勒索软件关联, 勒索软件链路分析, 子域名变形, 安全熵分析, 客户端分析, 库, 应急响应, 数字取证, 数据可视化, 无文件攻击, 无需后端, 横向移动检测, 浏览器端处理, 网络安全, 脚本块重组, 自动化脚本, 自定义脚本, 进程关系重建, 进程血缘分析, 隐私保护, 香农熵