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工具, 安全学习资源, 无后门, 日志审计, 网络安全, 逆向工具, 隐私保护