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 告警类型)的工具 —— 所有这些都在一个零依赖的独立脚本中完成。
## 简介
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)。未使用任何来自这些项目的代码。
## 简介
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 调试器, 库, 应急响应, 应用安全, 数字取证, 自动化脚本