Lux1dus/LabRAT-C2-Framework
GitHub: Lux1dus/LabRAT-C2-Framework
基于 Flask 的轻量级 HTTP 命令与控制框架,用于红队操作训练和恶意软件架构研究。
Stars: 0 | Forks: 0
#### ⚠️ 免责声明
本项目是一个概念验证,专为教育、网络安全研究以及在获得授权的受控环境中进行测试而开发。作者 仅对任何因滥用、损害或非法使用本项目而产生的行为承担责任。在未获得明确许可的系统上使用此工具可能属于违法行为。
# 🐀 C2 Tactical Ops (LabRAT)     ## 快速体验 (System Preview) 以下是 labRAT 启动服务器后的控制中心界面。
*(C2 Server)* | `Python (Flask)`
`SQLite3` | 处理 RESTful API,管理命令队列。持久化存储 Agent 的状态、命令历史和事件日志。 | | **Frontend**
*(Command Center)* | `HTML5 / CSS3`
`Vanilla JS` | 提供暗色战术界面。使用 Fetch API 处理 AJAX,持续更新 DOM 数据而无需重新加载页面。 | | **Client**
*(Agent / Payload)* | `Python`
`PyInstaller` | 使用 `os`、`subprocess`、`psutil`、`winreg` 深入操作系统。将 payload 打包为独立的 `.exe` 文件。
*(注意:编译后的可执行文件不会在此存储库中发布。)* | ## 🚀 快速开始 (Getting Started - Local Lab) 要在本地环境 内部署和测试 LabRAT,请按照以下步骤操作: ### 1. 环境配置 下载源代码并安装依赖库: ``` # Clone repository (如果您正在 Git 上查看) git clone https://github.com/Lux1dus/LabRAT.git cd LabRAT # 安装库 pip install -r requirements.txt ``` ### 2. 启动 C2 Server 在 `C2_Server` 目录下打开终端并运行: ``` cd C2_Server python server.py ``` *默认情况下,服务器将在端口 **1234** 上进行监听。您可以通过以下地址访问 Dashboard:`http://127.0.0.1:1234`* ### 3. 部署 Agent (Target) 在 `C2_Agent` 目录下打开一个新的终端: ``` cd C2_Agent # 以脚本形式运行 agent 以测试连接 python agent.py ``` *注意:请确保 `agent.py` 中的 `SERVER_URL` 变量正确指向服务器的 IP 地址(默认为 localhost)。* ### 🔄 工作流程  系统分为 3 个明确的子系统,它们通过 RESTful API 相互通信。系统的核心是 `C2 Server` 和作为中转站的 `SQLite Database`。 为了保持流畅的连接,Agent 采用结合了 Beaconing(接收指令和报告状态)的 Polling 机制,而 Dashboard 则使用 AJAX Polling 持续实时更新数据。 ## III. API 架构与数据流分析 系统依靠 8 个核心 API 运作,对 UI (0.5s) 和 Agent (1s) 应用 Polling 以实现极低延迟。 | 子系统 | Endpoint | 方法 | 核心功能 (处理流程) | | :--- | :--- | :--- | :--- | | **Agent** | ``/api/agent_checkin`` | POST | 注册新 Agent,收集硬件信息,生成 bot_id。 | | **Agent** | `/api/sync` | POST | Beaconing 维持连接(报告 CPU/RAM)并从队列 中获取命令。 | | **Agent** | `/api/post_result` | POST | 将 Shell 执行结果返回给 C2 并存入 Database。 | | **Transfer** | `/api/transfer/upload` | POST | 服务器读取文件 -> Base64 -> 发送给 Agent 写入目标机器。 | | **Transfer**| `/api/transfer/download` | POST | Agent 读取文件 -> Base64 -> 发送到服务器作为战利品 保存。 | | **UI** | `/api/dashboard_data` | GET | app.js 每 0.5s 调用一次,获取整个数据库状态以更新 DOM (实时)。| | **UI** | `/api/send_command` | POST | 将操作员 输入的命令推送到数据库的命令队列 中。 | | **UI** | `/` | GET | 返回 index.html (Tactical Dashboard 界面)。 | ### 深入通信架构图 为了阐明上述 Endpoint 的处理过程,下面是详细的数据流图,准确说明了在一个命令执行生命周期中,Agent、C2 Server 和数据库层 是如何相互交互的:  ## V. 当前的限制与待改进之处 作为一个实验室项目,**labRAT** 如果被部署在具有严格监控系统 (EDR/IDS) 的实战环境中,仍然存在一些核心弱点: | 限制 | 技术原因 | 安全风险 | | :--- | :--- | :--- | | **嘈杂的网络流量**
*(Noisy Network Traffic)* | Agent 设定了固定的每 1 秒一次的 Beaconing (静态心跳)。 | 极易被网络流量分析系统 发现异常。 | | **明文通信**
*(Plaintext HTTP)* | 所有命令和结果都通过未加密的 HTTP 通道传输。 | 监控工具或 IDS (如 Wireshark, Snort) 可以通过抓包 读取所有数据。 | | **Payload 体积过大**
*(Heavy Payload)* | 使用 Python 编写并通过 PyInstaller 打包的 Agent 通常会生成 >10MB 的 `.exe` 文件。 | 容易被传统杀毒软件 (AV) 根据特征 识别、分析和拦截。 | ## VI. 未来发展路线图 为了将 labRAT 升级为接近研究级 的 C2 Framework 并提高防御规避 能力,发展路线图分为以下几个阶段: | 阶段 | 升级模块 | 技术细节描述 | 核心目标 | | :---: | :--- | :--- | :--- | | **Phase 2** | **扩展武器化**
*(Offensive Modules)* | 增加 Keylogger、截屏 和凭据转储 功能。 | 提升后渗透 阶段的情报收集能力。 | | **Phase 3** | **分布式潜伏**
*(Redundant Persistence)* | 不仅依赖 Registry,Agent 将通过多个节点进行分化并维持连接:Scheduled Tasks、WMI Events 或 DLL Hijacking。构建一个交叉监控的“Watchdog”进程。 | 确保 Agent “不朽”。如果受害者删除了 Registry 键值,备用机制将立即恢复连接。 | | **Phase 4** | **通信加密**
*(Payload Encryption)* | 集成 TLS/HTTPS 或使用如 AES-256 配合 RSA 密钥交换等强加密算法对 API 数据进行自定义包装。 | 抵御网络数据包分析,完全隐藏控制操作。 | | **Phase 5** | **心跳隐形**
*(Beacon Jittering)* | 与其休眠固定的 1s,Agent 将使用随机休眠时间算法 (例如:2s ± 15%)。 | 欺骗蓝队基于静态周期的网络行为分析算法。 | | **Phase 6** | **Payload 优化**
*(Compiled Language)* | 将所有 Agent 源代码从 Python 转换为低级编译语言,如 `C/C++`、`Rust` 或 `Golang`。 | 将文件大小降至最低 (< 2MB),消除依赖库,并增加逆向工程 的难度。 |
# 🐀 C2 Tactical Ops (LabRAT)     ## 快速体验 (System Preview) 以下是 labRAT 启动服务器后的控制中心界面。
*(C2 Server)* | `Python (Flask)`
`SQLite3` | 处理 RESTful API,管理命令队列。持久化存储 Agent 的状态、命令历史和事件日志。 | | **Frontend**
*(Command Center)* | `HTML5 / CSS3`
`Vanilla JS` | 提供暗色战术界面。使用 Fetch API 处理 AJAX,持续更新 DOM 数据而无需重新加载页面。 | | **Client**
*(Agent / Payload)* | `Python`
`PyInstaller` | 使用 `os`、`subprocess`、`psutil`、`winreg` 深入操作系统。将 payload 打包为独立的 `.exe` 文件。
*(注意:编译后的可执行文件不会在此存储库中发布。)* | ## 🚀 快速开始 (Getting Started - Local Lab) 要在本地环境 内部署和测试 LabRAT,请按照以下步骤操作: ### 1. 环境配置 下载源代码并安装依赖库: ``` # Clone repository (如果您正在 Git 上查看) git clone https://github.com/Lux1dus/LabRAT.git cd LabRAT # 安装库 pip install -r requirements.txt ``` ### 2. 启动 C2 Server 在 `C2_Server` 目录下打开终端并运行: ``` cd C2_Server python server.py ``` *默认情况下,服务器将在端口 **1234** 上进行监听。您可以通过以下地址访问 Dashboard:`http://127.0.0.1:1234`* ### 3. 部署 Agent (Target) 在 `C2_Agent` 目录下打开一个新的终端: ``` cd C2_Agent # 以脚本形式运行 agent 以测试连接 python agent.py ``` *注意:请确保 `agent.py` 中的 `SERVER_URL` 变量正确指向服务器的 IP 地址(默认为 localhost)。* ### 🔄 工作流程  系统分为 3 个明确的子系统,它们通过 RESTful API 相互通信。系统的核心是 `C2 Server` 和作为中转站的 `SQLite Database`。 为了保持流畅的连接,Agent 采用结合了 Beaconing(接收指令和报告状态)的 Polling 机制,而 Dashboard 则使用 AJAX Polling 持续实时更新数据。 ## III. API 架构与数据流分析 系统依靠 8 个核心 API 运作,对 UI (0.5s) 和 Agent (1s) 应用 Polling 以实现极低延迟。 | 子系统 | Endpoint | 方法 | 核心功能 (处理流程) | | :--- | :--- | :--- | :--- | | **Agent** | ``/api/agent_checkin`` | POST | 注册新 Agent,收集硬件信息,生成 bot_id。 | | **Agent** | `/api/sync` | POST | Beaconing 维持连接(报告 CPU/RAM)并从队列 中获取命令。 | | **Agent** | `/api/post_result` | POST | 将 Shell 执行结果返回给 C2 并存入 Database。 | | **Transfer** | `/api/transfer/upload` | POST | 服务器读取文件 -> Base64 -> 发送给 Agent 写入目标机器。 | | **Transfer**| `/api/transfer/download` | POST | Agent 读取文件 -> Base64 -> 发送到服务器作为战利品 保存。 | | **UI** | `/api/dashboard_data` | GET | app.js 每 0.5s 调用一次,获取整个数据库状态以更新 DOM (实时)。| | **UI** | `/api/send_command` | POST | 将操作员 输入的命令推送到数据库的命令队列 中。 | | **UI** | `/` | GET | 返回 index.html (Tactical Dashboard 界面)。 | ### 深入通信架构图 为了阐明上述 Endpoint 的处理过程,下面是详细的数据流图,准确说明了在一个命令执行生命周期中,Agent、C2 Server 和数据库层 是如何相互交互的:  ## V. 当前的限制与待改进之处 作为一个实验室项目,**labRAT** 如果被部署在具有严格监控系统 (EDR/IDS) 的实战环境中,仍然存在一些核心弱点: | 限制 | 技术原因 | 安全风险 | | :--- | :--- | :--- | | **嘈杂的网络流量**
*(Noisy Network Traffic)* | Agent 设定了固定的每 1 秒一次的 Beaconing (静态心跳)。 | 极易被网络流量分析系统 发现异常。 | | **明文通信**
*(Plaintext HTTP)* | 所有命令和结果都通过未加密的 HTTP 通道传输。 | 监控工具或 IDS (如 Wireshark, Snort) 可以通过抓包 读取所有数据。 | | **Payload 体积过大**
*(Heavy Payload)* | 使用 Python 编写并通过 PyInstaller 打包的 Agent 通常会生成 >10MB 的 `.exe` 文件。 | 容易被传统杀毒软件 (AV) 根据特征 识别、分析和拦截。 | ## VI. 未来发展路线图 为了将 labRAT 升级为接近研究级 的 C2 Framework 并提高防御规避 能力,发展路线图分为以下几个阶段: | 阶段 | 升级模块 | 技术细节描述 | 核心目标 | | :---: | :--- | :--- | :--- | | **Phase 2** | **扩展武器化**
*(Offensive Modules)* | 增加 Keylogger、截屏 和凭据转储 功能。 | 提升后渗透 阶段的情报收集能力。 | | **Phase 3** | **分布式潜伏**
*(Redundant Persistence)* | 不仅依赖 Registry,Agent 将通过多个节点进行分化并维持连接:Scheduled Tasks、WMI Events 或 DLL Hijacking。构建一个交叉监控的“Watchdog”进程。 | 确保 Agent “不朽”。如果受害者删除了 Registry 键值,备用机制将立即恢复连接。 | | **Phase 4** | **通信加密**
*(Payload Encryption)* | 集成 TLS/HTTPS 或使用如 AES-256 配合 RSA 密钥交换等强加密算法对 API 数据进行自定义包装。 | 抵御网络数据包分析,完全隐藏控制操作。 | | **Phase 5** | **心跳隐形**
*(Beacon Jittering)* | 与其休眠固定的 1s,Agent 将使用随机休眠时间算法 (例如:2s ± 15%)。 | 欺骗蓝队基于静态周期的网络行为分析算法。 | | **Phase 6** | **Payload 优化**
*(Compiled Language)* | 将所有 Agent 源代码从 Python 转换为低级编译语言,如 `C/C++`、`Rust` 或 `Golang`。 | 将文件大小降至最低 (< 2MB),消除依赖库,并增加逆向工程 的难度。 |
Made with 💻 and ☕ by Lux1dus
标签:C2框架, CMS安全, Flask, IP 地址批量处理, JavaScript, LabRAT, pdftotext, PoC, Python, SQLite, 后门, 命令与控制, 安全学习资源, 恶意软件研究, 教育目的, 数据展示, 无后门, 暴力破解, 木马研究, 漏洞挖掘, 红队, 网络信息收集, 网络安全, 远程管理, 逆向工具, 隐私保护