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