gregmamoyac/Gregrep-Overlord-DFIR-App

GitHub: gregmamoyac/Gregrep-Overlord-DFIR-App

一款零依赖的跨平台实时数字取证与应急响应分流工具,在活动系统上直接运行即可自动采集多源证据并生成带 IOC 评分的分析报告。

Stars: 0 | Forks: 0

# Gregrep Overlord DFIR 应用程序 **取证分流编排器** — Windows & macOS *一款实时的数字取证和事件响应工具,能够呈现超越 SIEM 仪表板显示范围的深度信息。* Gregrep-Overlord 是唯一一款结合了实时系统分流(无需文件复制、无需 agent)、跨平台覆盖(原生支持 Windows + macOS)、IOC 感知报告(根据严重程度对发现进行评分)以及告警场景预设(预映射到 EDR 告警类型)的工具 —— 所有这些都在一个零依赖的独立脚本中完成。 GrepOverloard-Dash ## 简介 Gregrep-Overlord 是一个独立的取证分流引擎,使用**原生 PowerShell (Windows)** 和 **Bash (macOS)** 编写。没有二进制依赖。无需安装 KAPE。无需 EZ Tools。在任何实时系统上运行它,只需一条命令即可获得完整的、可供分析师直接使用的 HTML 报告以及各模块的 CSV 文件。 它的诞生是为了回答每位响应人员在收到 EDR 告警后都会面临的问题: ## 你的 EDR 仪表板做不到,但它能做的事 | 你的 EDR 显示 | Gregrep-Overlord 还能发现 | |---|---| | 告警进程及父进程 | 带有派生异常检测的完整进程树 | | C2 的网络事件 | 映射到进程的活动 TCP 连接、DNS 缓存、可疑端口 | | 检测时间戳 | 跨所有证据源的完整 7 天(可配置)时间线 | | 单一检测 | 跨证据源印证:event log + prefetch + BAM + 浏览器 + PS history | | 仅限 Windows | macOS: LaunchAgents, UnifiedLog, SIP/Gatekeeper, TCC, DYLD, quarantine DB | ## 快速开始 ### Windows (以管理员身份运行) ``` # 完整分类 — 所有模块,最近 7 天 .\Invoke-GregrepOverlord.ps1 # 警报聚焦 — 已知用户和进程,最近 3 天 .\Invoke-GregrepOverlord.ps1 -TimeframeDays 3 -SuspectUser "jsmith" -SuspectProcess "powershell.exe" # 交互式场景选择器(建议在 EDR 警报后使用) .\Quick-Launch.ps1 # 直接启动场景 .\Quick-Launch.ps1 -Scenario CredentialDump -SuspectUser "jsmith" ``` ### macOS (以 root 身份运行) ``` # 完整分类 sudo bash Invoke-GregrepOverlord-macOS.sh # 警报聚焦 sudo bash Invoke-GregrepOverlord-macOS.sh -d 3 -u jsmith -p Terminal # 跳过特定模块 sudo bash Invoke-GregrepOverlord-macOS.sh -s "UnifiedLogs,NetworkConfig" ``` ## 输出 每次运行都会生成一个带有时间戳的输出文件夹: ``` GregrepOverlord-Output/ └── HOSTNAME-20250101-123456/ ├── GregrepOverlord-Report_HOSTNAME_20250101-123456.html ← Open this first ├── triage.log └── csv/ ├── FINDINGS_SUMMARY.csv ← All flagged IOCs for SIEM import ├── EventLogs.csv ├── BrowserArtifacts.csv ├── ProcessTree.csv ├── NetworkConnections.csv ├── Persistence.csv ├── ... (one CSV per module) ``` **HTML 报告**是独立的(无外部依赖)——可以在任何浏览器中打开。它包括: - 风险级别横幅 (CRITICAL / HIGH / MEDIUM / LOW) - 模块摘要网格,包含每个模块的发现数量 - 带有严重性过滤器和搜索功能的交互式发现表 - 每个被标记的 IOC 的完整详细信息 **FINDINGS_SUMMARY.csv** 可以直接导入到 SIEM (Splunk, QRadar, Elastic) 或粘贴到工单中。 ## 告警场景 (快速启动) `Quick-Launch.ps1` 为每种告警类型预配置了相应的模块和时间范围: | # | 场景 | 激活条件 | |---|---|---| | 1 | **PhishingClick** | 用户点击链接或打开附件 | | 2 | **RansomwareIndicator** | 文件加密、VSS 删除、批量写入 | | 3 | **CredentialDump** | 检测到 LSASS 转储、Mimikatz、procdump | | 4 | **LateralMovement** | PsExec, WMI, RDP, pass-the-hash | | 5 | **PersistenceDetected** | 新服务、Run key、任务、WMI sub | | 6 | **SuspiciousPS** | 编码的 PowerShell、AMSI 旁路、下载载体 | | 7 | **LOLBin** | certutil, mshta, regsvr32 滥用 | | 8 | **C2Beacon** | 定期出站、beaconing 行为 | | 9 | **FullTriage** | 所有模块,最深入的覆盖 | ## Windows 模块 | 模块 | 收集内容 | |---|---| | `EventLogs` | 安全性(30+ event ID),Sysmon, PowerShell 4104, WinRM | | `BrowserArtifacts` | Chrome/Edge/Firefox 历史记录 + 扩展权限 | | `ScheduledTasks` | 所有任务 — 脚本引擎操作、可疑路径 | | `Prefetch` | 来自 .pf 文件的执行证据 | | `CertUtil` | INetCache 投放、临时可执行文件、LOLBin 痕迹 | | `Persistence` | 启动文件夹、Run keys、AppInit_DLLs、COM 劫持 | | `NetworkConnections` | 实时 TCP + DNS 缓存 + 可疑端口/IP 标记 | | `ProcessTree` | 所有进程、父子异常检测 | | `UserActivity` | 最近的文档、跳转列表、已登录用户 | | `WMISubscriptions` | 事件过滤器、命令消费者、脚本消费者 | | `PowerShellHistory` | 来自所有用户配置文件的 PSReadLine 历史记录 | | `LateralMovement` | PsExec 痕迹、RDP 事件、管理共享 | | `DefenderLogs` | 检测、排除项、功能禁用事件 | | `ServicesDrivers` | 可疑路径中的服务、用户目录中的 SYSTEM | | `AmCache` | 应用程序执行历史记录 (AmCache.hve) | | `BAM` | 后台活动审核器执行记录 | | `CredentialAccess` | DPAPI 保管库、SAM 备份、LSASS 转储文件 | | `FileSystemAnomalies` | 最近的执行文件、备用数据流 | | `ShadowCopies` | VSS 存在/删除 — 勒索软件指标 | ## macOS 模块 | 模块 | 收集内容 | |---|---| | `UnifiedLogs` | Apple Unified Log — 认证、sudo、SSH、PAM 事件 | | `BrowserArtifacts` | Chrome, Safari, Firefox 历史记录 + 扩展 | | `Persistence` | LaunchAgents/Daemons, cron, at, 登录项、配置文件 | | `NetworkConnections` | lsof -i、DNS 缓存、防火墙规则 | | `ProcessTree` | ps aux 附带命令分析 | | `UserActivity` | bash/zsh 历史记录、最近的脚本、last/lastb 登录情况 | | `SecurityConfig` | SIP, Gatekeeper, FileVault, AMFI, XProtect, TCC, kexts | | `MalwareArtifacts` | 隔离数据库 (Quarantine DB)、隐藏的可执行文件、DYLD 注入、多余的应用程序 | | `RemoteAccess` | authorized_keys、杂散私钥、SSH 配置、RDP | | `NetworkConfig` | /etc/hosts 异常、代理、DNS 服务器、ARP 缓存 | ## 自定义 ### 专注于特定告警 将上下文标记传递给任何运行: ``` .\Invoke-GregrepOverlord.ps1 ` -SuspectUser "jsmith" ` -SuspectProcess "powershell.exe" ` -SuspectIP "45.33.32.156" ` -TimeframeDays 2 ``` ### 配置 IOC 编辑 `config/ioc-config.txt` 以添加: - 来自您威胁情报的已知恶意 IP - 自定义可疑进程名称 - 您信任的内部 IP 范围(减少误报) - 特定环境的白名单 ### 仅运行特定模块 ``` # 仅持久性和凭据模块 .\Invoke-GregrepOverlord.ps1 -Modules "Persistence,CredentialAccess,WMISubscriptions" # 除缓慢的浏览器模块外的所有内容 .\Invoke-GregrepOverlord.ps1 -SkipModules "BrowserArtifacts" ``` ## 与 EZ Tools / KAPE 的比较 有关详细分类,请参阅 [`docs/COVERAGE-GAPS.md`](docs/COVERAGE-GAPS.md)。 **简而言之:** - **KAPE** 是一个收集引擎 — 它负责复制文件。Overlord 查询实时系统并标记 IOC。 - **EZ Tools** 对单个证据进行深入的离线解析。Overlord 在所有界面进行广泛的实时覆盖。 - **Overlord** 填补了这一空白:具有 IOC 感知报告的实时分流,无需准备工具。 ## 环境要求 ### Windows - PowerShell 5.1 或更高版本(内置于 Windows 10/Server 2016+) - 本地管理员或 SYSTEM 权限(部分模块在没有此权限的情况下会受到限制) - 无需外部工具 ### macOS - Bash 3.2+(内置)或 zsh - Root 权限 (`sudo`) 以实现全面覆盖 - Python 3(用于扩展模块中的 JSON 解析 — 可选,未安装时会优雅降级) ## 常见问题 **这需要安装 KAPE 或 EZ Tools 吗?** 不需要。Gregrep-Overlord 是完全独立的 PowerShell 和 Bash。它专为无法轻易部署工具或部署工具会增加风险的环境而设计。 **我可以在多个主机上远程运行它吗?** 可以 — 将脚本复制到网络共享,然后通过 `Invoke-Command` 或 PSExec 调用。输出目录参数允许您写入到中央共享: ``` Invoke-Command -ComputerName WORKSTATION-042 -ScriptBlock { & \\fileshare\tools\Invoke-GregrepOverlord.ps1 -OutputPath "\\fileshare\output\" } ``` **完成一次完整的分流需要多长时间?** 在标准端点上通常需要 2–8 分钟。`EventLogs` 和 `FileSystemAnomalies` 模块是最慢的。使用 `-Modules` 缩小范围以加快运行速度。 **它本身会触发 EDR 告警吗?** 可能会 — 特别是注册表和进程枚举模块。请在 SOC 知情的情况下运行,并尽可能在部署前在您的 EDR 中将脚本路径加入白名单。 **我可以添加自定义模块吗?** 可以 — 在 Windows 脚本中添加一个 `Invoke-YourModule` 函数,并将其添加到 `$ModuleFunctions` 哈希表中。使用 `Save-ModuleCSV` 和 `Add-Finding` 与报告 pipeline 集成。 ## 路线图 - [ ] SRUM 数据库模块(执行 + 网络活动历史) - [ ] ShimCache (AppCompatcache) 解析器 - [ ] Windows 时间线 (ActivitiesCache.db) - [ ] macOS KnowledgeC.db 解析器(Biome / 屏幕使用时间活动) - [ ] macOS FSEvents 日志解析器 - [ ] 针对 NSRL 和本地黑名单的哈希验证 - [ ] 多主机远程分流包装器 - [ ] SIEM 导出格式预设 (Splunk, Elastic, QRadar) - [ ] 针对收集的事件进行 Sigma 规则匹配 ## 许可证 MIT License — 可免费使用、分支和修改。欢迎贡献。 *专为需要快速获得答案的事件响应人员打造,而不是用来安装另一个工具。* ## 致谢 灵感来源于 [Eric Zimmerman's Tools](https://ericzimmerman.github.io/) 的取证覆盖理念 和 [KAPE](https://www.kroll.com/en/services/cyber-risk/incident-response-litigation-support/kroll-artifact-parser-extractor-kape) 的收集架构。 事件日志搜寻概念参考了 Eric Conrad 和 SANS 社区的 [DeepBlueCLI](https://github.com/sans-holiday/DeepBlueCLI)。未使用任何来自这些项目的代码。
标签:AI合规, Bash, IPv6, IP 地址批量处理, Libemu, OpenCanary, PowerShell, Windows 调试器, 库, 应急响应, 应用安全, 数字取证, 自动化脚本