tejaslokare001/PyC2-RedTeam-Framework
GitHub: tejaslokare001/PyC2-RedTeam-Framework
PyC2 是一个基于 Python 的红队命令与控制框架,提供 AES-256 加密通信、Web 操作仪表板和多种后渗透模块,适合在隔离实验环境中学习和演示 C2 架构设计与红队攻防技术。
Stars: 0 | Forks: 0
# ⚡ PyC2 — 红队命令与控制 (C2) 框架





## 📌 关于
**PyC2** 是一个功能完整的基于 Python 的 **命令与控制 (C2) 框架**
作为作品集项目构建,旨在展示包括以下内容的红队技能:
- 自定义 C2 服务器/agent 架构
- AES-256 加密通信
- 后渗透模块
- 基于 Web 的操作员仪表板
- 自动化 PDF 交战报告生成
在 **Kali Linux** 上的**隔离 VMware 实验室环境**中构建并测试。
## 🖥️ 仪表板预览
╔══════════════════════════════════════════════════╗
║ ⚡ PyC2 红队仪表板 ║
║ 活跃会话 | 命令面板 | 活动日志 ║
╚══════════════════════════════════════════════════╝
## 🏗️ 架构
┌─────────────────────────────────────────────────────┐
│ 攻击者机器 (Kali) │
│ │
│ ┌─────────────┐ ┌──────────────────────────┐ │
│ │ 操作员 CLI │ │ Flask C2 Server :8080 │ │
│ │ (终端) │────▶│ /register /checkin │ │
│ └─────────────┘ │ /result /dashboard │ │
│ └──────────┬───────────────┘ │
│ ┌─────────────┐ │ │
│ │ Web │ │ HTTP (AES-256) │
│ │ 仪表板 │ │ │
│ └─────────────┘ ┌──────────▼───────────────┐ │
│ │ 目标机器 │ │
│ │ Agent (Beacon 3-8s) │ │
│ │ 加密通信 │ │
│ └──────────────────────────┘ │
└─────────────────────────────────────────────────────┘
## ✨ 功能特性
### 🔐 加密通信
- 对所有 C2 流量使用 AES-256-CBC 加密
- 每条消息使用随机 IV — 防止模式分析
- 加密命令和结果
### 📡 Agent Beaconing
- 基于 HTTP 的回连 agent
- 随机抖动(3-8秒间隔)— 规避时间检测
- 首次连接时自动注册
- 具备自动重试机制,在连接断开时维持存活
### 🖥️ Web 操作员仪表板
- 暗色主题 SOC 风格浏览器界面
- 带有 agent 详情的实时会话表
- 一键快捷命令
- 实时终端输出
- 带有颜色编码事件的活动日志
- PDF 报告导出
### ⌨️ 终端操作员控制台
- 用于会话管理的交互式 CLI
- 会话列出与交互
- 内置帮助菜单
### 🔍 侦察模块
| 命令 | 描述 |
|---------|-------------|
| `recon.sysinfo` | 完整系统信息 |
| `recon.network` | 网络接口与 IP |
| `recon.processes` | 运行中的进程 |
| `recon.ports` | 开放端口 |
| `recon.connections` | 活动连接 |
| `recon.users` | 本地系统用户 |
| `recon.sudo` | Sudo 权限 |
| `recon.ping ` | Ping 扫描 |
### 📁 文件模块
| 命令 | 描述 |
|---------|-------------|
| `file.ls ` | 列出目录 |
| `file.read ` | 读取文本文件 |
| `file.download ` | 下载文件 (base64) |
| `file.search ` | 按关键字搜索文件 |
### 💾 持久化模块 *(仅限实验室)*
| 命令 | 描述 |
|---------|-------------|
| `persist.install` | 添加 crontab 持久化 |
| `persist.check` | 检查持久化状态 |
| `persist.remove` | 移除持久化 ✅ |
## 🗂️ 项目结构
PyC2/
├── server/
│ ├── c2_server.py # Flask C2 服务器 + 所有 API 路由
│ └── operator_cli.py # 交互式终端控制台
├── agent/
│ └── agent.py # Beacon agent (运行在目标机上)
├── modules/
│ ├── crypto.py # AES-256 加密模块
│ ├── recon.py # 网络侦察模块
│ ├── file_ops.py # 文件操作模块
│ └── persistence.py # 持久化模块 (仅限实验室)
├── templates/
│ └── dashboard.html # 暗色 Web 操作员仪表板
├── logs/ # 自动生成的活动日志
├── .gitignore
├── requirements.txt
└── README.md
## ⚙️ 安装与设置
### 要求
- Kali Linux (推荐) 或任何基于 Debian 的 Linux
- Python 3.8+
- 位于 Host-Only 网络上的两台 VM (攻击者 + 目标)
### 1. 克隆仓库
```
git clone https://github.com/tejaslokare001/PyC2-RedTeam-Framework.git
cd PyC2-RedTeam-Framework
```
### 2. 安装依赖
```
pip3 install -r requirements.txt
```
### 3. 启动 C2 服务器 (攻击者 VM)
```
python3 server/c2_server.py
```
### 4. 配置并部署 Agent (目标 VM)
```
# 编辑 agent IP 以指向你的 C2 server
nano agent/agent.py
# 更改: C2_SERVER = "http://YOUR_KALI_IP:8080"
python3 agent/agent.py
```
### 5. 打开 Web 仪表板
http://127.0.0.1:8080/dashboard
### 6. 或者使用终端控制台
```
python3 server/operator_cli.py
```
## 🗺️ MITRE ATT&CK 映射
| 技术 ID | 名称 | 战术 | 实现 |
|-------------|------|--------|----------------|
| T1059 | 命令和脚本解释器 | 执行 | Shell 命令处理程序 |
| T1071 | 应用层协议 | C2 | HTTP beacon |
| T1573 | 加密通道 | C2 | AES-256-CBC |
| T1053 | 计划任务/作业 | 持久化 | Crontab 模块 |
| T1082 | 系统信息发现 | 发现 | recon.sysinfo |
| T1049 | 系统网络连接发现 | 发现 | recon.network |
| T1057 | 进程发现 | 发现 | recon.processes |
| T1083 | 文件和目录发现 | 发现 | file.ls |
## 🧪 实验室设置 (VMware)
VM 1 — Kali Linux (攻击者)
└── 运行: c2_server.py + operator_cli.py
└── 网络: VMnet1 Host-Only
VM 2 — 目标 Linux/Windows
└── 运行: agent.py
└── 网络: VMnet1 Host-Only (与 VM1 相同)
两台 VM 通过隔离的 Host-Only 网络进行通信。
无互联网访问 — 完全安全的实验室环境。
## 📦 依赖
flask
requests
cryptography
colorama
reportlab
python-dotenv
安装全部:
```
pip3 install flask requests cryptography colorama reportlab python-dotenv
```
## 🚧 开发路线图
- [x] 核心 C2 服务器 + agent 架构
- [x] AES-256 加密通信
- [x] 随机 beacon 抖动
- [x] 侦察模块
- [x] 文件操作模块
- [x] 持久化模块
- [x] Web 操作员仪表板
- [x] PDF 交战报告生成器
- [ ] HTTPS 传输 (第 5 周)
- [ ] 多 agent 支持
- [ ] Windows agent 支持
- [ ] 截图模块
## 👨💻 作者
**Tejas Lokare**
SOC 分析师 | 红队成员 | 网络安全专家
- 📧 Lokaretejas122@gmail.com
- 🔗 [LinkedIn](https://www.linkedin.com/in/tejas-lokare-b18388299/)
- 🐙 [GitHub](https://github.com/tejaslokare001)
## 📜 许可证
本项目**仅供教育目的**使用。
作为作品集项目构建,旨在展示红队技能。
请仅在授权的实验室环境中使用。
标签:AES-256加密, C2 Server, C2框架, Flask, IP 地址批量处理, pdftotext, Python, Web控制面板, 命令与控制, 安全学习资源, 安全实验室, 安全工具开发, 恶意软件研究, 攻击模拟, 数据展示, 无后门, 红队, 网络信息收集, 网络安全, 自动化报告, 逆向工具, 隐私保护, 驱动签名利用