跳到主要内容
项目档案应用项目

Rust-DriveC2:基于 Google Drive API 的 Rust C2 框架安装与使用指南

Rust-DriveC2 是一个使用 Rust 和 Google Drive API 构建的命令与控制框架,提供远程命令执行和文件管理功能。本页详细介绍其安装配置、使用方法、技术实现及适用场景,适用于渗透测试与安全研究。

7RustStar 于 2026年4月17日2026年4月17日 更新

AI 总结

Rust-DriveC2 是一个基于 Rust 的命令与控制(C2)框架,利用 Google Drive API 实现隐蔽的远程命令执行与文件传输,适用于渗透测试与红队行动。

中文项目介绍

Rust-DriveC2 是一个采用 Rust 语言编写的命令与控制(C2)框架,其核心设计思想是利用 Google Drive API 作为隐蔽的通信与存储通道,从而避免直接网络暴露,提高操作的隐蔽性。 该项目主要由两部分组成:一部分是运行在受害者机器上的 Rust 反向 shell payload,负责接收来自 C2 服务器的指令并执行,同时通过 Google Drive API 实现文件的上传与下载;另一部分是攻击者机器上的 Python C2 服务器,用于监听连接、发送命令并显示执行结果。两者之间通过 TCP 连接进行控制指令的传输,而文件数据则经由 Google Drive 中转。 技术实现上,payload 使用 Google Service Account 进行认证,依赖 yup-oauth2、reqwest、tokio、serde 等 Rust crate 处理 OAuth2 认证、HTTP 请求、异步任务及数据序列化。C2 服务器则集成了 ngrok 隧道功能,用于将本地监听端口暴露至公网,以接收外网回连。 此项目明确适用于渗透测试、红队操作及安全研究场景,其价值在于提供了一种利用常见云服务(Google Drive)进行 C2 通信的实用方法。

详细信息与使用说明

1. 项目定位与用途

Rust-DriveC2 是一个专为渗透测试与红队行动设计的命令与控制(C2)框架。其核心定位是提供一种隐蔽的远程控制通道,通过集成 Google Drive API 来中转文件数据,从而降低直接网络通信被检测的风险。主要用途包括:在受害者机器上执行系统命令、从受害者机器上传文件至 Google Drive、以及从 Google Drive 下载文件至受害者机器。攻击者通过运行 Python 编写的 C2 服务器来管理会话和下发指令,实现对整个受控主机的远程操作。

2. 解决的问题

本项目解决了在受限网络环境或高安全监测环境下进行 C2 通信的隐蔽性问题。传统 C2 通信容易因直接连接可疑 IP 或域名而被防火墙、IDS/IPS 系统检测并拦截。通过利用广泛使用的 Google Drive 服务作为数据中转站,并将控制指令通过独立的 TCP 连接传输,有效分散了通信特征,提高了通信的隐蔽性和持久性。同时,它提供了一个完整的、可编译的 Rust payload,避免了使用脚本语言易被静态分析发现的问题。

3. 适用场景

根据仓库信息,该项目明确适用于以下场景:1) 渗透测试:安全专业人员在对目标系统进行授权测试时,用于建立持久化控制通道。2) 红队行动:模拟高级持续性威胁(APT),进行隐蔽的横向移动和数据渗出。3) 安全研究:研究 C2 通信机制、云服务滥用检测与防御。需要注意的是,项目仅限在合法授权的环境下使用,严禁用于非法攻击。仓库中未提及适用于生产环境或企业级部署。

4. 安装方式

安装与配置需遵循以下步骤,所有信息均源自 README:1) 安装 Rust 工具链:从 Rust 官网安装。2) 配置 Google Cloud:创建 Google Cloud 项目,启用 Google Drive API,并下载 Service Account 的 JSON 凭证文件。3) 准备 Rust Payload:将 Service Account JSON 文件放置于 payload/src/ 目录下;修改 payload/src/main.rs,配置您的 Google Drive 文件夹 ID(FOLDER_ID)、JSON 文件名以及攻击机 IP 地址与端口。4) 编译 Payload:进入 payload 目录,运行 cargo build --target x86_64-pc-windows-gnu --release 生成 Windows 可执行文件。依赖(yup-oauth2, reqwest, tokio, serde, serde_json, mime)通过 Cargo 自动安装。仓库中未提供 Linux 或 macOS 的编译目标示例。

5. 使用方式

使用流程如下,基于 README 中的说明:1) 启动 C2 服务器:在攻击者机器上运行 python3 C2_DriveAPI.py,按提示输入监听 IP 和端口。服务器会启动 TCP 监听并可能通过 ngrok 暴露公网地址。2) 部署 Payload:将编译好的 payload 可执行文件(如 payload.exe)传输至受害者机器并执行。3) 建立连接:Payload 会主动回连至 C2 服务器,建立反向 shell。4) 发送命令:在 C2 服务器控制台中输入指令。支持三种类型:直接执行系统命令(如 dir);上传文件(格式:upload;<本地文件路径>);下载文件(格式:download;<Google Drive 文件 ID>;<本地保存路径>)。服务器会实时返回命令执行结果或文件操作状态。

6. 补充说明与实现特点

从代码证据可见,项目具有以下实现特点:1) 架构上采用反向 shell 模型,payload 主动连接,便于穿越 NAT。2) 通信分离:控制指令通过明文 TCP 传输(可能被检测),文件数据通过加密的 Google Drive API 传输,依赖 Service Account 的合法身份。3) C2 服务器(C2_DriveAPI.py)集成了 ngrok 支持,便于外网访问,但具体配置细节未在 README 中展开。4) Payload 用 Rust 编写,编译为原生二进制文件,无外部运行时依赖,有利于规避分析。5) 仓库中未提供 payload 的免杀(AV Evasion)说明或配置,也未提及命令加密或混淆机制,控制通道内容为明文。6) 项目依赖的 Rust crate 版本在 Cargo.toml 中定义,但 README 未列出具体版本号。

思维导图

Rust-DriveC2
Rust Payload
反向 Shell 连接
系统命令执行
Google Drive 文件上传
Google Drive 文件下载
Service Account 认证
Python C2 服务器
TCP 连接监听
命令发送与接收
ngrok 隧道集成
输出结果显示
Google Drive API 集成
OAuth2 认证 (yup-oauth2)
HTTP 请求 (reqwest)
文件元数据管理 (mime)

常见问题

如何获取 Google Service Account 凭证?

需要创建 Google Cloud 项目,启用 Google Drive API,然后创建 Service Account 并下载其 JSON 凭证文件。具体步骤可参考 README 中引用的 Max Likes Security 的教程文章。

如何编译 Rust payload?

在 payload 目录下,运行命令:cargo build --target x86_64-pc-windows-gnu --release。编译前需确保已修改 main.rs 中的文件夹 ID、JSON 文件名及攻击机 IP 端口。

C2 服务器如何启动?

在攻击者机器上,进入项目根目录,运行命令:python3 C2_DriveAPI.py。随后根据提示输入要监听的 IP 地址和端口号。

文件上传命令的格式是什么?

格式为:upload;<file_path>。例如:upload;C:\Users\Administrator\Documents\example.txt。该命令会将指定路径的文件上传至配置的 Google Drive 文件夹。

文件下载命令的格式是什么?

格式为:download;<file_id>;<local_file_path>。例如:download;1B2c3D4e5F6g...;C:\Downloads\secret.txt。该命令会从 Google Drive 下载指定文件 ID 的文件至本地路径。