1. 项目定位与用途
Rust-DriveC2 是一个专为渗透测试与红队行动设计的命令与控制(C2)框架。其核心定位是提供一种隐蔽的远程控制通道,通过集成 Google Drive API 来中转文件数据,从而降低直接网络通信被检测的风险。主要用途包括:在受害者机器上执行系统命令、从受害者机器上传文件至 Google Drive、以及从 Google Drive 下载文件至受害者机器。攻击者通过运行 Python 编写的 C2 服务器来管理会话和下发指令,实现对整个受控主机的远程操作。
Rust-DriveC2 是一个使用 Rust 和 Google Drive API 构建的命令与控制框架,提供远程命令执行和文件管理功能。本页详细介绍其安装配置、使用方法、技术实现及适用场景,适用于渗透测试与安全研究。
Rust-DriveC2 是一个基于 Rust 的命令与控制(C2)框架,利用 Google Drive API 实现隐蔽的远程命令执行与文件传输,适用于渗透测试与红队行动。
Rust-DriveC2 是一个专为渗透测试与红队行动设计的命令与控制(C2)框架。其核心定位是提供一种隐蔽的远程控制通道,通过集成 Google Drive API 来中转文件数据,从而降低直接网络通信被检测的风险。主要用途包括:在受害者机器上执行系统命令、从受害者机器上传文件至 Google Drive、以及从 Google Drive 下载文件至受害者机器。攻击者通过运行 Python 编写的 C2 服务器来管理会话和下发指令,实现对整个受控主机的远程操作。
本项目解决了在受限网络环境或高安全监测环境下进行 C2 通信的隐蔽性问题。传统 C2 通信容易因直接连接可疑 IP 或域名而被防火墙、IDS/IPS 系统检测并拦截。通过利用广泛使用的 Google Drive 服务作为数据中转站,并将控制指令通过独立的 TCP 连接传输,有效分散了通信特征,提高了通信的隐蔽性和持久性。同时,它提供了一个完整的、可编译的 Rust payload,避免了使用脚本语言易被静态分析发现的问题。
根据仓库信息,该项目明确适用于以下场景:1) 渗透测试:安全专业人员在对目标系统进行授权测试时,用于建立持久化控制通道。2) 红队行动:模拟高级持续性威胁(APT),进行隐蔽的横向移动和数据渗出。3) 安全研究:研究 C2 通信机制、云服务滥用检测与防御。需要注意的是,项目仅限在合法授权的环境下使用,严禁用于非法攻击。仓库中未提及适用于生产环境或企业级部署。
安装与配置需遵循以下步骤,所有信息均源自 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 的编译目标示例。
使用流程如下,基于 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>;<本地保存路径>)。服务器会实时返回命令执行结果或文件操作状态。
从代码证据可见,项目具有以下实现特点: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 未列出具体版本号。
需要创建 Google Cloud 项目,启用 Google Drive API,然后创建 Service Account 并下载其 JSON 凭证文件。具体步骤可参考 README 中引用的 Max Likes Security 的教程文章。
在 payload 目录下,运行命令:cargo build --target x86_64-pc-windows-gnu --release。编译前需确保已修改 main.rs 中的文件夹 ID、JSON 文件名及攻击机 IP 端口。
在攻击者机器上,进入项目根目录,运行命令: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 的文件至本地路径。