Kjean13/ADFT
GitHub: Kjean13/ADFT
一款用于离线分析 Windows 与 Active Directory 事件日志的取证工具包,检测并重建攻击路径。
Stars: 51 | Forks: 2
# ADFT v1.0
ADFT 是一个带有集成本地 Web UI 的离线 Active Directory / Windows 调查工具包。
此官方 v1.0 版本发布一个连贯的产品形态:
- 规范的 ADFT 引擎
- CLI
- 由后端提供的集成 GUI
ADFT 摄入导出的证据,将所有支持的源转换为规范的 JSONL,应用确定性检测与关联,计算观察到的 AD 暴露分数,重建攻击进展,并生成调查与加固工件。
## 快速概览
ADFT 分析离线的 Windows / AD / SIEM 方向数据集,并通过 CLI 与集成 GUI 生成调查工件。

## v1.0 覆盖范围
ADFT v1.0 支持:
- 规范的 JSONL 转换
- 从导出证据进行离线调查
- 确定性检测与关联
- 时间线重建与攻击路径渲染
- 观察到的 AD 暴露评分
- 加固发现与可选的 PowerShell 修复导出
- HTML、JSON 与 CSV 格式的报告工件
- ATT&CK Navigator、回放 JSON、Mermaid 图与完整性清单导出
- 由后端提供的集成本地 Web UI
- 用于发布验证与运行时检查的 GUI 基准视图
## 支持的输入格式
ADFT 接受多种格式的源证据,并在分析前将其转换为规范的 JSONL:
- JSON / JSONL / NDJSON
- EVTX
- YAML / YML
- CSV / TSV
- CEF / LEEF
- XML
- LOG / SYSLOG / TXT
- Markdown
- ZIP
## 安装
推荐的一次性安装:
```
./install_adft.sh
```
推荐用于真实的 EVTX 验证:
```
./install_adft.sh --run-demo
```
手动安装:
```
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -e ".[full]"
```
开发安装:
```
pip install -e ".[full,dev]"
```
详细的依赖说明列在 `docs/DEPENDENCIES.md`。
仓库说明:`pyproject.toml` 是打包的唯一真实来源。`install_adft.sh` 是 v1.0 的官方完整安装路径,`requirements-dev.txt` 仍可供贡献者与 CI 使用。
## 主要命令
```
adft convert test_logs -o converted_inputs
adft investigate test_logs/attack.json -o reports_core --format html json csv --export-events-jsonl
adft summary -o reports_core
adft alerts -o reports_core --full
adft score -o reports_core
adft story -o reports_core --full
adft attack-chain -o reports_core
adft attack-path -o reports_core
adft reconstruct -o reports_core --full
adft harden -o reports_core --dry-run --export-scripts reports_core/remediation
adft report -o reports_core
```
## 集成 GUI
使用以下命令启动集成 GUI:
```
adft ui -o reports_gui --host 127.0.0.1 --port 8765
```
然后打开:
```
http://127.0.0.1:8765
```

GUI 由后端驱动:上传、转换、调查、告警、时间线、重构、图、基准与导出视图读取真实的 ADFT 运行状态,而不是在浏览器中重放业务逻辑。
### 当前 GUI 特性
- 浏览器标签页标题与图标品牌为 **ADFT UI**
- 静态资源以 no-cache 标头提供
- 针对后端状态与功能的工作刷新操作
- 居中实体图,支持平移、缩放、节点拖拽、有向边与时间窗口过滤
- 节点丰富信息,包含风险、首次出现 / 最后出现时间以及已知 IOC 标记(当证据存在时)
- 带最大 50 个节点的分页图显示以减少分析师噪声
- 用于运行时与发布验证的基准标签页
## 基于图的枢轴
ADFT 支持从选定枢轴进行基于图的调查,提供可见关系、时间范围限定与分析师导向的导航。

## 生成的工件
- `adft_report.html`
- `adft_report.json`
- `adft_report.csv`
- `attack_navigator_layer.json`
- `adft_replay.json`
- `attack_graph.mmd`
- `adft_integrity.json`
- `.adft_last_run.json`
- `converted_inputs/conversion_manifest.json`
- `hardening_scripts.zip`(GUI 或 CLI 加固导出后生成)
## EVTX 依赖说明
EVTX 属于受支持的边界范围。
运行时,EVTX 转换需要 `python-evtx`。
没有它,EVTX 输入无法被成功解析。
这就是为什么官方 v1.0 推荐的安装路径是:
```
./install_adft.sh
```
## 规则包
此 v1.0 版本在确定性、可解释的流水线中提供 **34 条规则**。
## 仓库布局
```
adft/
cli/ command-line entry points
core/ ingestion, normalization and data models
detection/ deterministic rulepack and detection pipeline
correlation/ alert grouping and campaign logic
timeline/ timeline reconstruction
graph/ entity graph and attack path analysis
investigation/ case narrative and reconstruction helpers
analysis/ scoring and data-quality analysis
harden/ remediation and hardening logic
reporting/ JSON, CSV and standalone HTML reports
exports/ Navigator and replay exports
ui_server.py integrated HTTP server and GUI backend bridge
webui_dist/ packaged web UI assets served by the backend
datasets/ demo datasets used for smoke tests
frontend_source/
src/ React/Vite source for the integrated GUI
```
## 验证
```
pytest -q
python3 main.py investigate adft/datasets/ransomware_pre_encryption_campaign.json -o /tmp/adft_release_reports --format html json csv --export-events-jsonl
python3 main.py ui -o /tmp/adft_release_reports --host 127.0.0.1 --port 8765
```
## 基准与验证

基准视图提供了一个紧凑的产品验证表面,包含运行指标与打包发布检查。
另见:
- `docs/TESTING.md`
- `docs/ARCHITECTURE.md`
- `docs/DEPENDENCIES.md`
- `docs/RELEASE_VALIDATION.md`
## UI 语言切换
集成 GUI 包含顶部栏中的持久化 FR/EN 语言切换。选项在浏览器中本地存储,并应用于主导航、屏幕与面向分析师的标签。
## 演示数据集
ADFT v1.0 附带 `adft/datasets/ad_prod_investigation_post_siem_demo_1000_events.json`,用于端到端勒索软件演示,涵盖转换、时间线、图、告警与导出。
标签:Active Directory, AD取证, AD安全, ATT&CK Navigator, CSV报告, DInvoke, EVTX解析, GUI工具, HTML报告, HTTPS请求, JSONL, JSON报告, Mermaid图, PFX证书, Plaso, PowerShell remediation, TCP SYN 扫描, Web UI, Windows事件日志, Windows取证, 发布验证, 攻击检测, 攻击路径重建, 数据转换, 文档结构分析, 日志关联, 日志取证, 时间线重建, 暴露评分, 本地集成, 硬ening修复, 确定性检测, 离线调查, 证据导入, 调查取证, 调查工具包, 运行时检查, 逆向工具