Janaashraf992/EvilTwin
GitHub: Janaashraf992/EvilTwin
EvilTwin 是一个结合多协议蜜罐、SDN 智能路由、机器学习评分与 SOC 仪表盘的网络欺骗实验平台,用于诱捕攻击者并自动化分析其行为活动。
Stars: 2 | Forks: 0
# EvilTwin
EvilTwin 是一个网络欺骗实验室,结合了多协议 honeypot、FastAPI 数据摄取与评分 backend、React SOC 仪表盘,以及用于感知流量并进行智能路由的 SDN 控制层。
## 功能简介
- 捕获来自 Cowrie 和 Dionaea 的攻击者活动
- 将 honeypot 事件标准化为统一的数据摄取契约
- 将会话、凭证、命令和派生的元数据存储在 PostgreSQL 中
- 通过 ML 模型和富化 pipeline 对活动进行评分
- 在仪表盘中展示生成的活动,适用于演示和安全分析师工作流
- 支持可选的 Splunk 转发、canary webhook 以及兼容 OpenAI 的事件分析报告
## 架构一览
- `cowrie` 在宿主机端口 `2222` 上提供 SSH 欺骗面
- `dionaea` 在宿主机端口 `2121`、`8081`、`1445` 和 `11433` 上提供 FTP、HTTP、SMB 和 MSSQL 欺骗面
- `backend` 持续追踪 honeypot 日志,运行数据摄取与评分,并在 `http://localhost:8000` 暴露 API
- `frontend` 在 `http://localhost:3000` 提供 SOC 仪表盘
- `postgres` 存储会话、攻击者画像和告警数据
- `ryu` 可用于基于 SDN 的重定向工作流和控制器集成
## 仓库结构
```
.
├── backend/ FastAPI API, ingest pipeline, scoring, tests
├── frontend/ React dashboard
├── docs-site/ Docusaurus documentation site
├── honeypots/ Cowrie and Dionaea container definitions
├── sdn/ Ryu controller and flow-management logic
├── splunk/ Universal Forwarder configuration and dashboards
├── infra/ Deployment infrastructure assets
└── docker-compose.yml
```
## 快速开始
克隆仓库并创建根环境配置文件:
```
git clone https://github.com/Janaashraf992/EvilTwin.git
cd EvilTwin
cp .env.example .env
```
在 `.env` 中设置必需的密钥:
```
POSTGRES_PASSWORD=changeme
SECRET_KEY=change-me-in-production
CANARY_WEBHOOK_SECRET=change-me-in-production
```
启动技术栈:
```
docker compose up --build -d
docker compose ps
```
确认 backend 运行正常:
```
curl -s http://localhost:8000/health | python3 -m json.tool
```
在 `http://localhost:3000` 打开仪表盘,并使用预置的演示分析师账号:
```
Email: analyst@eviltwin.local
Password: eviltwin-demo
```
## 克隆即运行行为
在全新克隆并执行 `docker compose up --build -d` 后,默认技术栈预计会执行以下操作:
- 自动运行数据库迁移
- 当 `DEMO_BOOTSTRAP=true` 时,预置演示分析师账号
- 如果缺少 `MODEL_PATH`,则自动训练 fallback 模型
- 从挂载的卷中持续追踪 Cowrie 和 Dionaea 日志
- 在仪表盘和 `/sessions` 中展示由 Kali 发起的 SSH、HTTP、FTP、SMB 和 MSSQL 类活动
## 服务与端口
| Service | Host Port | Container Port | Purpose |
| ------------- | -------------- | -------------- | ----------------------------------------- |
| Cowrie | `2222` | `22` | SSH honeypot |
| Dionaea FTP | `2121` | `21` | FTP 欺骗面 |
| Dionaea HTTP | `8081` | `80` | HTTP 欺骗面 |
| Dionaea SMB | `1445` | `445` | SMB 欺骗面 |
| Dionaea MSSQL | `11433` | `1433` | MSSQL 欺骗面 |
| Backend API | `8000` | `8000` | FastAPI API 及告警/WebSocket endpoint |
| Frontend | `3000` | `3000` | SOC 仪表盘 |
| PostgreSQL | `5432` | `5432` | 本地数据库 |
| Ryu | `6633`, `8080` | `6633`, `8080` | OpenFlow 及 REST 控制器 |
## 冒烟测试
这些命令可以在启动后进行快速的完整性检查:
```
docker compose ps
curl -s http://localhost:8000/health | python3 -m json.tool
curl -s http://localhost:8081/ -o /dev/null -D -
printf 'USER anonymous\r\nPASS demo@example.com\r\nQUIT\r\n' | nc -nv 127.0.0.1 2121
ssh -p 2222 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@localhost
```
如果你想重置到干净的本地状态:
```
docker compose down -v
docker compose up --build -d
```
## 演示工作流
在文档网站中,请按以下顺序阅读文档:
1. [运行项目](docs-site/docs/running-the-project.md)
2. [Kali 演示指南](docs-site/docs/kali-demo-walkthrough.md)
3. [事件响应手册](docs-site/docs/incident-response-runbook.md)
该路径涵盖了技术栈启动、来自 Kali 虚拟机的攻击模拟,以及这些活动应该如何在仪表盘中呈现。
## 配置重点
根目录下的 [.env.example](.env.example) 已经为本地演示技术栈配置好了。最重要的值包括:
- `POSTGRES_PASSWORD`、`SECRET_KEY` 和 `CANARY_WEBHOOK_SECRET` 用于本地部署的核心功能
- `DEMO_BOOTSTRAP`、`DEMO_USER_EMAIL` 和 `DEMO_USER_PASSWORD` 用于预置的仪表盘访问
- `DIONAEA_FTP_PORT`、`DIONAEA_HTTP_PORT`、`DIONAEA_SMB_PORT` 和 `DIONAEA_MSSQL_PORT` 用于配置不同的宿主机端口绑定
- `IPINFO_TOKEN` 和 `ABUSEIPDB_API_KEY` 用于实现数据富化和信誉查询
- `LLM_API_KEY` 及相关的 `LLM_*` 变量用于生成 AI 事件分析报告
- `SPLUNK_HEC_URL` 和 `SPLUNK_HEC_TOKEN` 用于 Splunk 转发
## 常用命令
启动或重新构建所有内容:
```
docker compose up --build -d
```
仅重新构建 honeypot:
```
docker compose build cowrie dionaea
docker compose up -d --force-recreate cowrie dionaea
```
查看 backend 日志:
```
docker compose logs -f backend
```
检查正在运行的容器:
```
docker compose ps
```
## 文档导览
- [快速入门](docs-site/docs/getting-started.md)
- [运行项目](docs-site/docs/running-the-project.md)
- [Kali 演示指南](docs-site/docs/kali-demo-walkthrough.md)
- [运维与部署](docs-site/docs/operations-and-deployment.md)
- [故障排除](docs-site/docs/troubleshooting.md)
- [文档索引](docs-site/docs/documentation-index.md)
## 技术栈
FastAPI、SQLAlchemy、PostgreSQL、scikit-learn、React、TypeScript、Tailwind CSS、Cowrie、Dionaea、Ryu、Docker Compose,以及可选的 Splunk 和兼容 OpenAI 的集成。
标签:Apex, AV绕过, FastAPI, Petitpotam, PE 加载器, React, SDN, SOC仪表盘, Syscalls, 威胁评分, 机器学习, 测试用例, 版权保护, 蜜罐, 证书利用, 逆向工具