微软将开发隧道宣传为一种用于在互联网上安全地共享 Web 服务以进行开发的工具。这是VS Code 远程隧道的底层系统,它建立在 SSH 之上。开发隧道允许经过身份验证和匿名的连接、托管在信誉良好的 Microsoft Azure 域中的持久 URL 以及多个同时转发的端口。该服务目前处于公开预览阶段。顺便说一句,devtunnel可执行文件本身由 Microsoft 签名,如果您必须在客户端计算机上运行它,那么这很好,尽管对于此应用程序,它在我们的团队服务器上运行。
入门
创建开发隧道需要 GitHub 或 Microsoft 帐户。目前尚不清楚 Microsoft 对这些隧道的检查程度,因此我建议使用一次性 GitHub 帐户。以下说明介绍了如何创建匿名隧道,该隧道不需要身份验证即可访问1,但其他人可能会通过扫描所有可能的隧道 URL 发现它。该devtunnel工具本身适用于 Windows、Linux 和 MacOS。如果您想了解有关该工具及其选项的更多信息,请参阅此处的完整命令参考。
1、在您的团队服务器上安装 Linuxdevtunnel工具。它是一个独立的二进制文件,无需提升权限即可安装或运行。
wget https://aka.ms/TunnelsCliDownload/linux-x64;mv linux-x64 devtunnel;chmod +x devtunnel
2. 使用你的 GitHub 帐户向 devtunnel 服务进行身份验证,并使用命令进行设备登录流程devtunnel user login -g -d.
将 Dev Tunels 连接至 Github 账户
在本地机器上打开 Web 浏览器,按照 的指示导航到设备登录页面devtunnel。对您要使用的 GitHub 帐户进行身份验证,然后输入提供的代码并授权 devtunnel 访问您的 GitHub 帐户。
将开发隧道注册为设备
3. 在 localhost 上创建到端口 443 的 devtunnel。该-a选项允许匿名访问。根据需要选择http或https作为您的侦听器以满足您的需求。如果您只有一个隧道,则默认情况下将在该隧道中创建端口创建和托管。
./devtunnel create -a <tunnel name>
./devtunnel port create -p 443 --protocol https
./devtunnel host
创建开发隧道
4. 正常启动团队服务器,包括申请证书(如果需要 HTTPS 监听器),然后使用 devtunnel 的端口和 URL 创建监听器。
为 Dev Tunnel 创建监听器
5. 创建一个针对您刚刚创建的侦听器的信标,并将其部署到您的客户端。您应该很快就会收到回调。
成功的 Beacon 回调
故障排除
如果您的信标不想连接,请检查以下几点。首先,Microsoft 提供了一个基于 Web 的工具来监控通过隧道的流量。输出中提供了 URLdevtunnel以及隧道 URL,如下所示。
隧道交通检查网址
访问此 URL 可让您使用与浏览器的 Web 开发者工具网络选项卡基本相同的界面检查隧道流量,如下所示。这将向您显示您的信标是否正在呼叫开发隧道。
检查隧道交通
需要注意的是,开发隧道确实破坏了 TLS,因此可以想象微软的某个人有能力访问和检查原始流量。
如果您的信标在目标主机上运行,但您在检查实用程序中没有看到任何到达隧道的流量,则需要检查您的可塑性 C2 配置文件(假设您正在运行 Cobalt Strike)。首次连接到开发隧道时,Microsoft 会插入一个点击式插页,警告用户这可能是网络钓鱼尝试,如下所示。根据我所见,只有成功通过隧道的请求才会显示在检查器中;击中此插页的请求不会显示。
反钓鱼点击
标头包含 的HTTPGET请求将触发插页广告并阻止您的信标回拨。其他请求类型(例如或,或未明确接受 的请求)将绕过插页广告。如果您的信标卡在插页广告上,您可以更改标头(将绕过它),也可以将标头添加到配置文件中的客户端块,如下所示。
Accepttext/htmlPOSTPUTtext/htmlAccept*/*X-Tunnel-Skip-AntiPhishing-Page: Truehttp-get
Malleable C2 配置文件中的 X-Skip-AntiPhishing-Page 标头
就是这样!开发隧道的设置和使用非常简单,为将我们的流量从客户网络中偷运出去提供了另一种工具。请在 Discord 中告诉我们您对它们的体验。
1 – Dev 隧道确实支持身份验证,但将它们与 Cobalt Strike 一起使用是有问题的,因为 1.) 要求在请求标头中包含 373 个字符的 JWT,这会占用可延展 C2 配置文件允许的客户端 http-get 和 http-post 块的 508 字节限制的大部分空间,以及 2.) JWT 在 24 小时后过期,从而限制了信标的生命周期。
原文始发于微信公众号(Ots安全):使用 Microsoft Dev Tunels 进行 C2 重定向
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论