iabdullah215/ActiveDecoy
GitHub: iabdullah215/ActiveDecoy
一个自动化 ITDR 与欺骗框架,通过在 Active Directory 中部署蜜罐对象实现横向移动威胁的主动检测与响应。
Stars: 2 | Forks: 0
# ActiveDecoy:自主 ITDR 与欺骗框架
ActiveDecoy 是一个自动化的 ITDR(身份威胁检测与响应)框架,旨在编排并部署逼真的 Active Directory honey object,用于主动的横向移动检测。
## 安全免责声明
本项目仅供教育、防御以及明确授权的安全测试使用。请勿将 ActiveDecoy 部署到您不拥有或不受您管理的系统或目录上。
## 截图
| | |
|:---:|:---:|
|  |  |
|  |  |
|  |  |
|  |  |
|  |  |
|  |  |
|  |  |
|  |  |
|  |  |
|  |  |
|  |  |
|  |  |
|  |  |
## 仓库布局
```
ActiveDecoy/
├── app/
├── washu_agent/
├── docs/
├── scripts/
├── data/
├── tests/
├── .github/workflows/
├── docker-compose.yml
├── Dockerfile
├── README.md
├── SETUP.md
└── requirements.txt
```
## 功能
### 连接
- 主机 OS 检测。
- LDAP 验证,提供结构化的调试输出。
- 针对授权实验室桥接的 Hypervisor 会话验证。
- 目录枚举(用户、组、计算机、信任关系)并导入 Neo4j。
### 可视化
- 由 Neo4j 支持的原生交互式拓扑画布(节点 + 关系)。
- 支持按范围(全部/honey/AD)、名称/类型、角色以及活动/honey 标记进行筛选。
- 与画布同步的资产清单表。
- 可选的 NeoDash 嵌入,用于外部仪表板。
### 欺骗
- Honey 用户、Honey 服务器、影子 DC 和 breadcrumb 规划。
- 可选的 **Active Directory 配置**,部署到专用的 Honey OU 中(用户 + 诱饵计算机)。
- 生成 Cypher 语句以供 Neo4j 摄取。
- Dry-run 预检、拆除以及磁盘上的部署历史记录。
- UI 中的实时 payload 预览。
### 监控
- 针对 4768、4769、4625 和 4624 信号的实时事件反馈,支持严重性筛选。
- 针对上次部署的欺骗计划进行 Honey object 交互关联。
- Agent / SIEM 批量摄取(`POST /api/monitoring/ingest`),支持 token 认证。
- Washu Agent 软件包(`washu_agent/`),在监控端提供心跳健康状态。
- 持久化事件存储和 SSE 实时流,用于监控控制台。
- 实验室交互模拟器,用于端到端演练检测 pipeline。
- 告警分诊,支持针对单个事件及批量确认,并提供汇总统计数据。
- 基线噪声抑制与告警导出(JSON / STIX / syslog)。
### 策略与 ITDR
- Honey OU + 命名前缀强制执行与部署门控。
- Deny-logon GPO 产物与操作员检查清单。
- 按 Event ID 划分的响应 playbook。
- 通过 OU / `AD_MONITORED_DOMAINS` 进行多域追踪。
## 文档
| 指南 | 描述 |
|-------|-------------|
| [SETUP.md](SETUP.md) | 引导、Docker、环境变量 |
| [docs/ONBOARDING.md](docs/ONBOARDING.md) | 新协作者首日指南 |
| [docs/RUNBOOK.md](docs/RUNBOOK.md) | 授权部署 → 演练 → 拆除 |
| [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | 系统图表与模块映射 |
| [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) | LDAP、Neo4j、Agent 修复 |
| [docs/API.md](docs/API.md) | REST 参考与 `/docs` OpenAPI UI |
| [data/user_guide.md](data/user_guide.md) | 控制台内工作流(用户指南页面) |
**走廊演示 (Corridor demo):** `./scripts/demo_walkthrough.sh`(控制台必须处于运行状态)。
## 快速开始
### 选项 A — Docker Compose(推荐)
```
cp .env.example .env
docker compose up --build -d
```
打开 `http://127.0.0.1:8000` 并使用 `.env` 中的凭据登录。详情请参阅 [SETUP.md](SETUP.md)。
### 选项 B — 本地 Python
1. 运行 `./scripts/bootstrap.sh`(创建 venv,安装依赖,复制 `.env`)。
2. 启动 Neo4j(使用 Desktop 或运行 `docker compose up -d neo4j`)。
3. 使用 `./scripts/run.sh --reload` 或 `python main.py --reload` 启动。
4. 使用 `.env` 中的实验室管理员凭据登录。
## 开发说明
- 该项目使用 Jinja2 模板和自定义 CSS shell 构建仪表板。
- 后端在实验室工作流期间,会将 AD 和 hypervisor 状态保留在用户会话中。
- 启动时会验证配置,并针对默认密钥 / 缺失的 Neo4j 密码发出警告。
- 登录受速率限制;LDAP/hypervisor 密码仅保留在服务器端(不包含在会话 cookie 中)。
- 可选的实验室连接器(`pyvmomi`、VirtualBox 绑定、`pywin32`、`impacket`)已在 `requirements.txt` 和 SETUP.md 中列出 —— 请按需安装。
- **124+ 单元/API 测试** 涵盖了引擎、模拟的 LDAP/Neo4j、端到端控制台流程以及并发测试 —— 详见 `tests/README.md`。
- 代码设计旨在方便您在自己的环境中扩展真实的连接器和策略强制执行。
标签:Active Directory, AMSI绕过, ITDR, Plaso, SNMP, Web报告查看器, XXE攻击, 威胁检测, 模拟器, 横向移动检测, 蜜罐技术, 请求拦截, 身份安全, 逆向工具