kernelstub/Ferrum
GitHub: kernelstub/Ferrum
Ferrum 是一个用 Go 编写的 Windows 安全研究框架,提供本地提权、COM 劫持排查、持久化分析和攻击面枚举等模块化审计能力。
Stars: 184 | Forks: 25
# FERRUM
Ferrum 是一个优先面向 Windows 的漏洞研究和安全审计框架,使用 Go 编写。它被设计为单一二进制文件 `ferrum.exe`,通过一个精简的核心接口来注册模块。
## 构建
```
GOOS=windows GOARCH=amd64 go build -o ferrum.exe ./cmd
```
或者使用内置的脚本:
```
.\scripts\build-windows.ps1
```
从 Linux/macOS 构建:
```
./scripts/build-windows.sh
```
## 用法
```
ferrum.exe --HELP
```
## 架构
- `cmd/` 包含 CLI 入口点。
- `core/` 包含模块注册、上下文以及 banner 代码。
- `modules/` 包含研究模块。新模块通过实现 `core.Module` 并调用 `core.Register` 来注册。
- `windows/` 包含带有 build tag 的 Windows API 封装以及非 Windows 的存根代码。
- `output/` 包含控制台日志记录。
## 输出
编写单个模块报告:
```
ferrum.exe --CLSID --OUTPUT clsid.txt
```
运行所有模块,并为每个模块生成一个文件:
```
ferrum.exe --ALL
ferrum.exe --ALL --OUTPUT ferrum-reports
```
如果不指定 `--OUTPUT`,`--ALL` 会创建一个带有时间戳的文件夹,例如 `ferrum-output-20260613-153000`。
## CLSID ProcMon 过滤器模型
`--CLSID` 为 COM 劫持/LPE 排查模拟了以下 ProcMon 工作流:
- `User is NT AUTHORITY\SYSTEM`
- `Path contains HKCU\Software\Classes`
- `Path contains InprocServer32`
- `Path contains LocalServer32`
- `Result is NAME NOT FOUND`
Ferrum 是一个优先面向 Windows 的漏洞研究和安全审计框架,使用 Go 编写。它被设计为单一二进制文件 `ferrum.exe`,通过一个精简的核心接口来注册模块。
## 构建
```
GOOS=windows GOARCH=amd64 go build -o ferrum.exe ./cmd
```
或者使用内置的脚本:
```
.\scripts\build-windows.ps1
```
从 Linux/macOS 构建:
```
./scripts/build-windows.sh
```
## 用法
```
ferrum.exe --HELP
```
## 架构
- `cmd/` 包含 CLI 入口点。
- `core/` 包含模块注册、上下文以及 banner 代码。
- `modules/` 包含研究模块。新模块通过实现 `core.Module` 并调用 `core.Register` 来注册。
- `windows/` 包含带有 build tag 的 Windows API 封装以及非 Windows 的存根代码。
- `output/` 包含控制台日志记录。
## 输出
编写单个模块报告:
```
ferrum.exe --CLSID --OUTPUT clsid.txt
```
运行所有模块,并为每个模块生成一个文件:
```
ferrum.exe --ALL
ferrum.exe --ALL --OUTPUT ferrum-reports
```
如果不指定 `--OUTPUT`,`--ALL` 会创建一个带有时间戳的文件夹,例如 `ferrum-output-20260613-153000`。
## CLSID ProcMon 过滤器模型
`--CLSID` 为 COM 劫持/LPE 排查模拟了以下 ProcMon 工作流:
- `User is NT AUTHORITY\SYSTEM`
- `Path contains HKCU\Software\Classes`
- `Path contains InprocServer32`
- `Path contains LocalServer32`
- `Result is NAME NOT FOUND`标签:COM劫持, Conpot, EVTX分析, Go语言, Web报告查看器, Windows安全, 内存取证对抗, 协议分析, 情报收集, 文档结构分析, 日志审计, 权限提升, 漏洞研究, 程序破解, 端点可见性