sud0gh0st-pwn/T3mp0ra_C2
GitHub: sud0gh0st-pwn/T3mp0ra_C2
Tempora 是一个异步加密的命令与控制(C2)框架,提供端到端安全通信、多客户端管理及网络侦察与提权分析能力。
Stars: 3 | Forks: 1
# Tempora - 安全 C2 框架
[](https://www.python.org/downloads/)
[](LICENSE)
[](https://redis.io/)
[](https://www.docker.com/)
[](#security-features)
[](#documentation)
[](#)
[](#)
[](#)
[](#)
[](#)
[](#)
[](#)
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 文档
- [ ] 性能优化### 未来功能
- [ ] 移动客户端支持
- [ ] 高级持久化机制
- [ ] 自定义模块开发
- [ ] 与威胁情报源集成
- [ ] 自动化报告
- [ ] 高级规避技术
[](https://www.python.org/downloads/)
[](LICENSE)
[](https://redis.io/)
[](https://www.docker.com/)
[](#security-features)
[](#documentation)
[](#)
[](#)
[](#)
[](#)
[](#)
[](#)
[](#)
标签:C2框架, IP 地址批量处理, Python, Redis, WSL, 安全, 安全学习资源, 搜索引擎查询, 无后门, 请求拦截, 超时处理, 逆向工具