tejaslokare001/PyC2-RedTeam-Framework

GitHub: tejaslokare001/PyC2-RedTeam-Framework

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

Stars: 0 | Forks: 0

# ⚡ PyC2 — 红队命令与控制 (C2) 框架 ![Python](https://img.shields.io/badge/Python-3.x-blue?style=flat-square&logo=python) ![Flask](https://img.shields.io/badge/Flask-2.x-black?style=flat-square&logo=flask) ![License](https://img.shields.io/badge/License-Educational-red?style=flat-square) ![Platform](https://img.shields.io/badge/Platform-Kali%20Linux-purple?style=flat-square) ![Status](https://img.shields.io/badge/Status-Active-brightgreen?style=flat-square) ## 📌 关于 **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控制面板, 命令与控制, 安全学习资源, 安全实验室, 安全工具开发, 恶意软件研究, 攻击模拟, 数据展示, 无后门, 红队, 网络信息收集, 网络安全, 自动化报告, 逆向工具, 隐私保护, 驱动签名利用