alfgold/trojan-c2
GitHub: alfgold/trojan-c2
基于 GitHub API 实现的远程访问木马框架,用于网络安全教学和恶意软件原理学习。
Stars: 0 | Forks: 0
# 基于 GitHub 的 RAT 框架
**仅供教育目的 - 本工具用于学习网络安全知识,且只能在您拥有或获得明确授权测试的系统上使用。**
## 概述
本项目演示了远程访问木马 (RAT) 如何使用 GitHub 作为命令与控制 (C2) 基础设施。木马会定期轮询 GitHub 仓库以获取配置和模块,执行这些模块,并将结果上传回该仓库。
本项目基于 Justin Seitz 和 Tim Arnold 所著的《Black Hat Python》中的概念。
## RAT 的传播方式
- **网络钓鱼邮件**: 诱骗受害者下载并执行 RAT
- **恶意下载**: RAT 隐藏在看似合法的软件中
- **漏洞利用**: 利用漏洞在受害者不知情的情况下安装 RAT
- **社会工程学**: 诱使受害者安装 RAT,使其误以为是有用的应用程序
## 项目结构
```
├── Trojan/ # Main Trojan framework
│ └── trojan.py # Main RAT code
├── modules/ # Individual RAT modules
│ ├── dirlister.py # Directory listing module
│ └── environment.py # Environment variables module
├── config/ # Configuration files
│ └── abc.json # Module configuration
├── data/ # Results storage (uploaded by Trojan)
├── status/ # Status updates from Trojan
└── .gitignore # Git ignore file
```
## 安装说明
### 1. GitHub 仓库设置
1. **创建 GitHub 账号**: 在 [github.com](https://github.com) 注册
2. **创建新仓库**:
- 点击 "New repository"
- 为其命名(例如 `trojan-c2`)
- 选择公开或私有
3. **生成个人访问令牌**:
- 前往 Settings → Developer settings → Personal access tokens → Tokens (classic)
- 点击 "Generate new token (classic)"
- 为其命名并选择有效期
- 选择完全访问权限
- 复制令牌(您将无法再次看到它)
### 2. 本地设置
```
# Clone 你的 repository
git clone https://github.com/username/your-repo-name.git
cd your-repo-name
# 创建目录结构
mkdir -p Trojan data modules config status
# 创建 .gitignore 文件
touch .gitignore
# Add 并 commit 初始结构
git add .
git commit -m "Initial repository structure"
git remote set-url origin https://username:TOKEN@github.com/username/repo-name
git push origin main
```
### 3. 配置木马
编辑 `Trojan/trojan.py` 并更新以下变量:
```
GITHUB_TOKEN = "YOUR_ACTUAL_GITHUB_TOKEN"
REPO_OWNER = "YOUR_GITHUB_USERNAME"
REPO_NAME = "YOUR_REPOSITORY_NAME"
```
### 4. 安装依赖
```
pip install requests
```
### 5. 运行木马
```
cd Trojan
python3 trojan.py
```
## 模块开发
### 创建新模块
每个模块必须:
1. 放置在 `modules/` 目录中
2. 具有 `.py` 扩展名
3. 包含一个接受 `**kwargs` 参数的 `run()` 函数
4. 返回结果(可以是任何可序列化的数据)
### 示例模块
```
import os
import platform
def run(**args):
"""
System information module
Returns basic system information
"""
print("[*] In system_info module")
info = {
"platform": platform.platform(),
"system": platform.system(),
"release": platform.release(),
"version": platform.version(),
"machine": platform.machine(),
"processor": platform.processor(),
"hostname": os.uname().nodename if hasattr(os, 'uname') else 'unknown'
}
return info
```
### 将模块添加到配置
编辑 `config/abc.json` 以包含您的新模块:
```
[
{
"module" : "dirlister"
},
{
"module" : "environment"
},
{
"module" : "system_info"
}
]
```
### 提交更改
在添加或修改模块之后:
```
git add .
git commit -m "Added system_info module"
git push origin main
```
## 工作原理
1. **配置轮询**: 木马检查 GitHub 以获取配置更新
2. **模块加载**: 动态加载配置中指定的模块
3. **模块执行**: 运行每个模块并收集结果
4. **结果上传**: 将结果上传回 GitHub 仓库
5. **状态更新**: 定期更新木马状态
## 安全注意事项
- 木马使用 GitHub API 进行 C2 通信
- 所有通信均经过 HTTPS 加密
- 结果存储在仓库的 data 目录中
- 状态更新存储在 status 目录中
## 包含的教学模块
### 1. 目录列表器 (`dirlister.py`)
- 列出当前目录中的所有文件
- 演示基本的文件系统访问
### 2. 环境变量 (`environment.py`)
- 返回所有环境变量
- 显示系统配置信息
## 潜在模块思路
- **键盘记录器 (Keylogger)**: 捕获击键
- **屏幕截图**: 对桌面进行截图
- **文件窃取**: 上传特定文件
- **反弹 Shell**: 建立交互式 shell 访问
- **持久化**: 在重启后维持访问权限
- **权限提升**: 尝试获取更高的权限
## 法律与道德考量
**警告**:本工具仅供教育目的使用。
- 仅在您拥有或获得明确授权测试的系统上使用
- 未经授权访问计算机系统是非法的
- 滥用本软件可能会导致刑事指控
- 请始终遵守适用的法律法规
- 考虑您行为可能带来的道德影响
## 检测与防御
### 面向系统管理员:
1. **监控**来自内部系统的 GitHub API 调用
2. 对 GitHub 连接进行**网络流量分析**
3. 对异常的 Python 执行情况进行**进程监控**
4. 针对新 Python 脚本进行**文件完整性监控**
5. 使用**应用程序白名单**防止未经授权的执行
### 入侵指标:
- 异常的 GitHub API 流量
- 建立网络连接的新 Python 进程
- 上传到 GitHub 仓库的文件
- 位于意外位置的配置文件
## 免责声明
本项目仅出于教育和研究目的提供。作者不对本软件的任何滥用行为负责。用户有责任确保遵守所有适用的法律法规。
## 许可证
仅供教育使用 - 禁止用于恶意目的
标签:C2通信, CISA项目, ESC8, GitHub C2, HTTP工具, Object Callbacks, Python, RAT, Web服务, 中高交互蜜罐, 命令与控制, 安全学习, 恶意软件开发, 搜索语句(dork), 教育项目, 数据窃取, 文件枚举, 无后门, 无线安全, 木马分析, 模块化编程, 社会工程学, 网络安全, 网络安全审计, 网络安全研究, 网络攻防, 网络钓鱼, 远程访问木马, 逆向工具, 隐私保护, 黑帽Python