sud0gh0st-pwn/T3mp0ra_C2

GitHub: sud0gh0st-pwn/T3mp0ra_C2

Tempora 是一个异步加密的命令与控制(C2)框架,提供端到端安全通信、多客户端管理及网络侦察与提权分析能力。

Stars: 3 | Forks: 1

# Tempora - 安全 C2 框架
Tempora [![Python 版本](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://www.python.org/downloads/) [![许可证](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) [![Redis](https://img.shields.io/badge/redis-6.0%2B-red.svg)](https://redis.io/) [![Docker](https://img.shields.io/badge/docker-supported-blue.svg)](https://www.docker.com/) [![安全](https://img.shields.io/badge/security-encrypted-brightgreen.svg)](#security-features) [![文档](https://img.shields.io/badge/docs-latest-brightgreen.svg)](#documentation) [![构建状态](https://img.shields.io/badge/build-passing-brightgreen.svg)](#) [![代码覆盖率](https://img.shields.io/badge/coverage-85%25-brightgreen.svg)](#) [![最后提交](https://img.shields.io/github/last-commit/sud0gh0st-pwn/T3mp0ra_C2.svg)](#) [![Python](https://img.shields.io/badge/python-67.3%25-blue.svg)](#) [![HTML](https://img.shields.io/badge/html-18.3%25-orange.svg)](#) [![TypeScript](https://img.shields.io/badge/typescript-12.8%25-blue.svg)](#) [![CSS](https://img.shields.io/badge/css-1.6%25-purple.svg)](#)
Tempora 是一个强大且加密的命令与控制 (C2) 框架,专为中央服务器和分布式客户端之间的安全通信而设计。Tempora 将安全性和可靠性放在首位,具备端到端加密、异步命令分发和弹性连接等特性。 ## 📋 目录 - [快速开始](#-quick-start) - [功能](#-features) - [架构](#-architecture) - [语言](#-languages) - [安装](#-installation) - [配置](#-configuration) - [使用方法](#-usage) - [安全特性](#-security-features) - [开发](#-development) - [贡献](#-contributing) - [许可证](#-license) - [免责声明](#-disclaimer) - [常见问题](#-faq) - [故障排除](#-troubleshooting) - [路线图](#-roadmap) ## 💻 语言 Tempora 使用现代技术栈构建: - **Python (67.3%)**:核心服务器功能、客户端实现和后端服务 - **HTML (18.3%)**:Web 界面结构和模板 - **TypeScript (12.8%)**:前端交互和类型安全的代码 - **CSS (1.6%)**:样式和响应式设计 ### 技术栈 - **后端**: - Python 3.8+ 用于核心功能 - Flask 用于 Web 服务器 - Redis 用于消息队列 - SQLite 用于数据存储 - **前端**: - TypeScript 用于类型安全的开发 - Bootstrap 用于响应式设计 - jQuery 用于 DOM 操作 - 自定义 CSS 用于样式 - **开发工具**: - Git 用于版本控制 - Docker 用于容器化 - pytest 用于测试 - ESLint 用于 TypeScript 代码检查 ## ⚡ 快速开始 几分钟内即可启动并运行: ``` # Clone 仓库 git clone https://github.com/sud0gh0st-pwn/T3mp0ra_C2.git cd T3mp0ra_C2 # 设置环境 python -m venv .venv source .venv/bin/activate # or .venv\Scripts\activate on Windows pip install -r requirements.txt # 启动 Redis (使用 Docker) docker run --name tempora-redis -p 6379:6379 -d redis:alpine # 启动服务器 python src/server.py # 启动 Web 界面 cd src/frontend python run.py ``` 访问 `http://localhost:5001` 即可进入 Web 界面。 ## ✨ 功能 - **端到端加密**:使用 RSA 进行密钥交换,使用 Fernet 进行对称加密 - **消息认证**:实现 HMAC 以进行消息完整性验证 - **弹性连接**:自动重连和会话管理 - **交互式命令界面**:具有增强功能的易于使用的命令行管理工具 - **可扩展架构**:用于添加自定义功能的模块化设计 - **全面日志记录**:详细的活动监控和故障排除 - **Redis 集成**:用于可扩展且可靠的命令分发的消息队列 - **线程安全操作**:稳健处理并发连接和共享资源 - **初始 Payload 投递**:客户端连接后自动执行 payload - **Web 界面**:现代化的基于 Web 的管理面板 - **实时监控**:实时更新客户端状态和任务执行情况 - **多客户端管理**:同时控制多个客户端 - **任务调度**:安排命令以供将来执行 - **数据导出**:导出客户端数据和任务历史记录 - **网络侦察**:用于网络扫描和枚举的内置工具 - 具有可配置参数的 IP 范围扫描器 - 服务检测 - GeoIP 定位(使用 MaxMind GeoLite2 数据库) - 结果缓存和导出功能 - **权限提升**:用于权限提升分析的内置工具 - 系统信息收集 - 常见错误配置检测 - 漏洞利用建议 - 常见漏洞的自动检查 ## 🏗 架构 Tempora 采用带有现代 Web 界面的服务器-客户端模型运行: ``` ┌─────────────┐ Encrypted ┌─────────────┐ │ │ Communication │ │ │ C2 Server │◄─────────────────►│ Client │ │ │ Channel │ │ └─────────────┘ └─────────────┘ ▲ ▲ │ │ ▼ ▼ ┌─────────────┐ ┌─────────────┐ │ Web │ │ Target │ │ Interface │ │ System │ └─────────────┘ └─────────────┘ ▲ │ ▼ ┌─────────────┐ │ Redis │ │ Message │ │ Queue │ └─────────────┘ ``` ## 🔍 侦察工具 ### 网络扫描器 内置网络扫描器提供全面的网络侦察能力: - **IP 范围扫描**:扫描整个子网或特定 IP 范围 - **端口配置**: - 扫描特定端口或端口范围 - 常用端口扫描优化 - 服务版本检测 - **性能设置**: - 可配置的线程数 - 速率限制 - 连接超时 - 最大重试次数 - **资源管理**: - IP 范围的分块大小 - 数据库批量操作 - 连接池 - **结果**: - 实时进度监控 - 已发现主机的 GeoIP 信息 - 以多种格式导出结果 - 结果缓存以加快后续扫描速度 ### 使用方法 通过以下方式访问侦察工具: 1. Web 界面:导航至 Recon 部分 2. 配置扫描参数 3. 实时监控进度 4. 查看并导出结果 ## 🔐 权限提升工具 ### 系统分析 内置的权限提升工具提供全面的系统分析能力: - **系统信息收集**: - 操作系统和内核版本 - 已安装的包及其版本 - 正在运行的服务和进程 - 用户和组信息 - 文件权限和所有权 - 网络配置 - 计划任务和 cron 作业 - **漏洞检测**: - SUID/SGID 二进制文件 - 全局可写文件和目录 - 脆弱的文件权限 - 配置错误的服务 - 已知存在漏洞的软件版本 - 配置文件中的密码哈希 - **漏洞利用建议**: - 基于系统配置 - 已安装软件中的已知漏洞 - 常见配置错误 - 自定义漏洞利用建议 - **结果**: - 生成详细报告 - 风险评估 - 修复建议 - 导出功能 ### 使用方法 通过以下方式访问权限提升工具: 1. Web 界面:导航至 Recon 部分 2. 选择“Privilege Escalation”工具 3. 配置分析参数 4. 查看并导出结果 ## 🚀 安装 ### 前置条件 - Python 3.8+ - Redis 服务器 6.0+ - Docker 和 Docker Compose(可选,用于容器化部署) - Node.js 14+(用于 Web 界面) ### 设置 1. 克隆代码库: ``` git clone https://github.com/sud0gh0st-pwn/T3mp0ra_C2.git cd T3mp0ra_C2 ``` 2. 创建并激活虚拟环境: ``` # 创建虚拟环境 python -m venv .venv # 激活虚拟环境 # 在 Windows 上: .venv\Scripts\activate # 在 Unix 或 MacOS 上: source .venv/bin/activate ``` 3. 安装 Python 依赖项: ``` pip install -r requirements.txt ``` 4. 安装 Node.js 依赖项(用于 Web 界面): ``` cd src/frontend npm install ``` 5. 创建必要的目录: ``` mkdir -p logs data/redis ``` 6. 设置 Redis: a. 使用系统的 Redis 安装: # 安装 Redis (Ubuntu/Debian) sudo apt update sudo apt install redis-server # 启动 Redis 服务 sudo systemctl start redis-server sudo systemctl enable redis-server b. 使用 Docker(推荐): docker run --name tempora-redis -p 6379:6379 -v $(pwd)/data/redis:/data -d redis:alpine redis-server --appendonly yes 7. 配置你的环境: cp .env.example .env # 编辑 .env 进行配置 ## 💻 使用方法 ### 启动 C2 服务器 1. 如果 Redis 未运行,请启动它: ``` # 如果使用系统 Redis sudo systemctl start redis-server # 如果使用 Docker docker start tempora-redis ``` 2. 启动 C2 服务器: ``` python src/server.py [IP] [PORT] [INITIAL_PAYLOAD_PATH] ``` 3. 启动 Web 界面: ``` cd src/frontend python run.py --port 5001 ``` 4. 或者使用 Docker Compose 启动整个技术栈: ``` docker-compose up -d # 启动 Redis、C2 服务器 (暴露在 ${PORT:-5000}) 以及 ${WEB_PORT:-5001} 上的 Web 前端 ``` ### Web 界面功能 - **仪表盘**:服务器状态和已连接客户端的概览 - **客户端管理**:查看和管理已连接的客户端 - **任务管理**:创建和监控任务 - **设置**:配置服务器参数 - **系统信息**:监控服务器资源 - **日志**:查看和过滤系统日志 ### 命令行界面 管理界面支持以下命令: - `help` - 显示可用命令 - `list` - 显示所有已连接的客户端 - `task :` - 向当前目标客户端发送任务 - `target ` - 将某个客户端设为命令目标 - `info ` - 显示有关客户端的详细信息 - `status` - 显示服务器状态 - `kill ` - 强制断开客户端连接 - `history` - 显示命令历史记录 - `clear` - 清除控制台 - `exit` - 终止服务器 ### 部署客户端 ``` python src/client.py [SERVER_IP] [SERVER_PORT] [INTERVAL] ``` 参数: - `SERVER_IP`:C2 服务器的 IP 地址(默认:127.0.0.1) - `SERVER_PORT`:C2 服务器的端口(默认:4444) - `INTERVAL`:状态更新间隔,以秒为单位(默认:5) ## 🔒 安全特性 ### 密钥交换协议 1. 服务器生成 RSA 密钥对 2. 客户端连接并接收服务器的公钥 3. 客户端生成对称密钥和 HMAC 密钥 4. 客户端使用服务器的公钥加密这些密钥 5. 服务器使用其私钥解密密钥 6. 双方现在拥有共享的对称密钥和 HMAC 密钥 ### 消息安全 - 所有消息均使用 Fernet 对称加密 - 消息完整性通过 HMAC 进行验证 - 协议包含长度前缀以防止分段攻击 - Redis 通信通过 TLS 保护(可选) - Web 界面具有 CSRF 保护 - 会话管理和身份验证 - 安全的密码存储 ## 🛠 开发 ### 项目结构 ``` tempora/ ├── src/ │ ├── frontend/ # Web interface │ ├── server.py # C2 server │ ├── client.py # Client implementation │ └── api.py # API endpoints ├── tests/ # Test suite ├── data/ # Data storage ├── logs/ # Log files └── config/ # Configuration files ``` ### 添加新功能 1. 创建一个新分支: ``` git checkout -b feature/new-feature ``` 2. 进行更改并提交: ``` git add . git commit -m "Add new feature" ``` 3. 推送并创建 pull request: ``` git push origin feature/new-feature ``` ### 测试 运行测试套件: ``` cd src python -m pytest tests/ ``` ## 📝 许可证 本项目基于 MIT 许可证授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。 ## ⚠️ 免责声明 此工具仅用于教育和经过授权的安全测试目的。未经事先双方同意,使用 Tempora 攻击目标是非法且被禁止的。 ## 📙 配置 ### 环境变量 创建一个包含以下设置的 `.env` 文件: ``` # 服务器配置 SERVER_IP=0.0.0.0 SERVER_PORT=4444 WEB_PORT=5001 # Redis 配置 REDIS_HOST=localhost REDIS_PORT=6379 REDIS_PASSWORD= # 安全设置 ENCRYPTION_KEY_LENGTH=2048 SESSION_TIMEOUT=3600 MAX_LOGIN_ATTEMPTS=3 # 日志 LOG_LEVEL=INFO LOG_FILE=logs/tempora.log # Recon 设置 SCAN_TIMEOUT=5 MAX_SCAN_THREADS=100 GEOIP_DB_PATH=data/GeoLite2-City.mmdb ``` ### Web 界面配置 通过 `src/frontend/config.py` 自定义 Web 界面: ``` # 主题设置 THEME = { 'primary_color': '#007bff', 'secondary_color': '#6c757d', 'dark_mode': False } # Dashboard 设置 DASHBOARD = { 'refresh_interval': 10, 'max_clients_display': 10, 'max_tasks_display': 10 } ``` ## ❓ 常见问题 ### 一般问题 **问:Tempora 与其他 C2 框架有何不同?** 答:Tempora 将企业级安全性与用户友好的界面结合在一起,同时提供 Web 和 CLI 管理、内置侦察工具以及权限提升分析功能。 **问:Tempora 适合生产环境使用吗?** 答:是的,Tempora 是为生产环境设计的,具备加密、身份验证和日志记录等功能。但是,请务必先在受控环境中进行全面测试。 ### 技术问题 **问:如何处理 Redis 连接问题?** 答:检查 Redis 服务状态,验证 `.env` 中的连接设置,并确保网络连接正常。有关更多详细信息,请参阅[故障排除](#-troubleshooting)。 **问:我可以自定义 Web 界面吗?** 答:可以,Web 界面可通过配置文件进行高度自定义,并支持自定义主题。 ## 🔧 故障排除 ### 常见问题 1. **Redis 连接失败** # 检查 Redis 状态 docker ps | grep redis # 检查日志 docker logs tempora-redis 2. **Web 界面无法加载** - 验证端口可用性 - 检查防火墙设置 - 查看 Web 服务器日志 3. **客户端连接问题** - 验证网络连通性 - 检查服务器 IP/端口配置 - 查看客户端日志 ### 日志文件 - 服务器日志:`logs/server.log` - Web 界面日志:`logs/web.log` - 客户端日志:`logs/client.log` ## 🗺️ 路线图 ### 当前开发 - [x] 基本 C2 功能 - [x] Web 界面 - [x] 网络侦察 - [x] 权限提升工具 - [ ] 高级 payload 生成 - [ ] 多平台支持 - [ ] API 文档 - [ ] 性能优化### 未来功能 - [ ] 移动客户端支持 - [ ] 高级持久化机制 - [ ] 自定义模块开发 - [ ] 与威胁情报源集成 - [ ] 自动化报告 - [ ] 高级规避技术
标签:C2框架, IP 地址批量处理, Python, Redis, WSL, 安全, 安全学习资源, 搜索引擎查询, 无后门, 请求拦截, 超时处理, 逆向工具