vaibhav2vicky/Minotaur
GitHub: vaibhav2vicky/Minotaur
Minotaur 是一款基于 Flask 的轻量级 C2 框架,为红队演练和授权安全测试提供 Agent 管理、远程命令执行和活动监控能力。
Stars: 2 | Forks: 1
# Minotaur C2 框架
一个用于在多个目标系统上管理和与已部署的 agent 进行通信的命令与控制 (C2) 框架。Minotaur 提供了一个集中式服务器,用于 agent 部署、命令执行、监听器管理和活动日志记录。
## 概述
Minotaur 是一个基于 Flask 的 C2 框架,专为授权的安全测试和红队演练而设计。它包括:
- **Agent API**:agent 注册、beacon 轮询、命令结果、文件窃取和 shell 指令
- **控制台**:用于管理 agent、构建二进制文件和监控活动的 Web UI
- **Agent 构建器**:为选定的平台构建基于 Go 的 agent 二进制文件
- **数据库**:使用 SQLite 持久化存储受害者、端口事件、agent 版本和活动日志
## 功能
- **多平台 agent 构建**:为可配置的 OS/ARCH 组合编译 Go agent 二进制文件
- **双服务器架构**:agent API 在 `5000` 端口,控制台在 `5001` 端口
- **实时控制台更新**:由 WebSocket 驱动的控制台刷新
- **远程命令执行**:向单个 agent 或 OS 组发送命令
- **Shell 监听器管理**:打开、停止和检查 TCP 监听器端口
- **Agent 版本控制**:存储已编译的版本并选择当前的平台版本
- **可选的 RSA 认证**:在构建时生成 RSA 密钥对
- **日志导出**:将 shell 或 agent 活动导出为文本文件
## 项目结构
```
c2_framework/
├── agents/
│ └── go/
│ ├── agent.go
│ ├── agent_unix.go
│ └── agent_windows.go
├── database/
│ └── c2.db
├── logs/
├── server/
│ ├── app.py
│ ├── handlers/
│ │ ├── activity_logger.py
│ │ ├── agent_handler.py
│ │ └── command_handler.py
│ ├── listeners/
│ │ ├── port_manager.py
│ │ └── tcp_listener.py
│ ├── models/
│ │ ├── port_event.py
│ │ └── victim.py
│ └── utils/
│ └── logger.py
├── web/
│ ├── static/
│ │ ├── agents/
│ │ │ └── versions/
│ │ ├── css/
│ │ │ └── dashboard.css
│ │ └── js/
│ │ └── dashboard.js
│ └── templates/
│ └── dashboard.html
├── requirements.txt
├── run.sh
├── LICENSE
└── README.md
```
## 环境要求
### 系统要求
- Python 3.8 或更高版本
- Go 1.16 或更高版本
- Linux 或 macOS 上兼容 Bash 的 shell
### Python 依赖
- `flask>=3.0.0`
- `werkzeug>=3.0.0`
- `flask-socketio>=5.3.6`
- `python-socketio>=5.11.0`
- `cryptography>=42.0.0`
完整列表请参见 `requirements.txt`。
## 安装说明
### 快速开始
1. 克隆或下载项目:
cd c2_framework
2. 运行启动脚本:
chmod +x run.sh
./run.sh
该脚本将会:
- 验证是否已安装 Python 3 和 Go
- 如有需要,创建虚拟环境
- 安装所需的 Python 依赖
- 启动后端服务
### 手动安装
1. 创建并激活虚拟环境:
python3 -m venv .venv
source .venv/bin/activate
2. 安装依赖:
pip install -r requirements.txt
3. 启动服务器:
python3 server/app.py
## 使用说明
### 启动服务器
```
./run.sh
```
应用程序会启动两个服务:
- Agent API: `http://0.0.0.0:5000`
- 控制台 UI: `http://127.0.0.1:5001`
### 访问控制台
在浏览器中打开:
```
http://127.0.0.1:5001
```
### 构建自定义 Agent
使用控制台为选定的平台和设置构建 agent 二进制文件。选项包括:
- C2 URL
- beacon 延迟(至少 5 秒)
- jitter
- user agent 字符串
- 目标平台和架构
- 启用认证
- 自动持久化
- 调试模式
构建的二进制文件保存在 `web/static/agents/versions/` 下。
### 命令执行
一旦 agent 注册并 beacon 进入:
- 通过控制台查看已连接的 agent
- 对单个 agent 或 OS 组执行命令
- 向监听器发出 shell 反向连接
- 监控命令结果和活动日志
## 配置
### 服务器设置
编辑 `server/app.py` 以调整:
- 用于 SQLite 存储的 `DB_PATH`
- 用于已编译二进制文件的 `AGENT_STORAGE`
- Flask `SECRET_KEY`
- Socket.IO 设置和 CORS
### Agent 默认设置
修改 `agents/go/agent.go` 以更新默认的 agent 设置,例如:
- `ServerURL`
- `BeaconDelay`
- `Jitter`
- `UserAgent`
- `InsecureTLS`
- `AutoPersistence`
- `DebugMode`
## API 端点
### Agent API (`端口 5000`)
- `POST /api/agent/authenticate`
- `POST /api/agent/register`
- `POST /api/agent/beacon`
- `POST /api/agent/result`
- `POST /api/agent/exfil`
- `POST /api/agent/shell`
- `POST /api/build_agent`
- `GET /api/agent/versions`
- `POST /api/agent/set_current_version`
- `POST /api/agent/delete_version`
- `GET /api/agents/list`
- `GET /static/agents/`
### 控制台 API (`端口 5001`)
- `GET /`
- `GET /api/victims`
- `GET /api/agents`
- `POST /api/execute`
- `POST /api/set_os`
- `POST /api/agent/send_command`
- `POST /api/agent/delete`
- `POST /api/agents/clear_all`
- `POST /api/build_agent`
- `GET /api/agent/versions`
- `POST /api/agent/set_current_version`
- `POST /api/agent/delete_version`
- `GET /api/agents/list`
- `POST /api/open_port`
- `POST /api/stop_port`
- `POST /api/open_ports`
- `GET /api/port_events`
- `GET /api/active_ports`
- `GET /api/activity/shell`
- `GET /api/activity/agent`
- `GET /api/logs/victims`
- `GET /api/logs/agents`
- `GET /api/export/logs`
## 数据库
该应用程序使用位于 `database/c2.db` 的 SQLite,并存储:
- 受害者记录
- 端口事件历史
- 活动日志
- 已编译的 agent 版本
- 当前的平台版本选择
## 许可证
有关许可证信息,请参见 [许可证](LICENSE)。
## 免责声明
此框架仅用于授权的安全测试、红队演练和防御性研究。未经授权将其用于您不拥有或未获得明确测试许可的系统是非法的。对于因滥用此软件或由此造成的损害,作者不承担任何责任。
标签:C2框架, DNS 反向解析, Go, IP 地址批量处理, Python, Ruby工具, 安全学习资源, 无后门, 日志审计, 网络安全, 逆向工具, 隐私保护