使用 Microsoft Dev Tunels 进行 C2 重定向

admin 2024年8月15日22:35:10评论62 views字数 2110阅读7分2秒阅读模式
作为渗透测试人员,我们一直在寻找新方法将命令和控制 (C2) 流量从客户网络中移出,从而避开出口过滤器和信誉检查。工具箱包括域前端、内容交付网络 (CDN) 和第三方服务(如 Slack 或 GitHub)。我们还可以向工具箱中添加Microsoft 开发隧道。

微软将开发隧道宣传为一种用于在互联网上安全地共享 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.

使用 Microsoft Dev Tunels 进行 C2 重定向

将 Dev Tunels 连接至 Github 账户

在本地机器上打开 Web 浏览器,按照 的指示导航到设备登录页面devtunnel。对您要使用的 GitHub 帐户进行身份验证,然后输入提供的代码并授权 devtunnel 访问您的 GitHub 帐户。

使用 Microsoft Dev Tunels 进行 C2 重定向

将开发隧道注册为设备

3. 在 localhost 上创建到端口 443 的 devtunnel。该-a选项允许匿名访问。根据需要选择http或https作为您的侦听器以满足您的需求。如果您只有一个隧道,则默认情况下将在该隧道中创建端口创建和托管。

./devtunnel create -a <tunnel name>./devtunnel port create -p 443 --protocol https./devtunnel host

使用 Microsoft Dev Tunels 进行 C2 重定向

创建开发隧道

4. 正常启动团队服务器,包括申请证书(如果需要 HTTPS 监听器),然后使用 devtunnel 的端口和 URL 创建监听器。

使用 Microsoft Dev Tunels 进行 C2 重定向

为 Dev Tunnel 创建监听器

5. 创建一个针对您刚刚创建的侦听器的信标,并将其部署到您的客户端。您应该很快就会收到回调。

使用 Microsoft Dev Tunels 进行 C2 重定向

成功的 Beacon 回调

故障排除

如果您的信标不想连接,请检查以下几点。首先,Microsoft 提供了一个基于 Web 的工具来监控通过隧道的流量。输出中提供了 URLdevtunnel以及隧道 URL,如下所示。

使用 Microsoft Dev Tunels 进行 C2 重定向

隧道交通检查网址

访问此 URL 可让您使用与浏览器的 Web 开发者工具网络选项卡基本相同的界面检查隧道流量,如下所示。这将向您显示您的信标是否正在呼叫开发隧道。

使用 Microsoft Dev Tunels 进行 C2 重定向

检查隧道交通

需要注意的是,开发隧道确实破坏了 TLS,因此可以想象微软的某个人有能力访问和检查原始流量。

如果您的信标在目标主机上运行,但您在检查实用程序中没有看到任何到达隧道的流量,则需要检查您的可塑性 C2 配置文件(假设您正在运行 Cobalt Strike)。首次连接到开发隧道时,Microsoft 会插入一个点击式插页,警告用户这可能是网络钓鱼尝试,如下所示。根据我所见,只有成功通过隧道的请求才会显示在检查器中;击中此插页的请求不会显示。

使用 Microsoft Dev Tunels 进行 C2 重定向

反钓鱼点击

标头包含 的HTTPGET请求将触发插页广告并阻止您的信标回拨。其他请求类型(例如或,或未明确接受 的请求)将绕过插页广告。如果您的信标卡在插页广告上,您可以更改标头(将绕过它),也可以将标头添加到配置文件中的客户端块,如下所示。

Accepttext/htmlPOSTPUTtext/htmlAccept*/*X-Tunnel-Skip-AntiPhishing-Page: Truehttp-get

使用 Microsoft Dev Tunels 进行 C2 重定向

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 重定向

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月15日22:35:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   使用 Microsoft Dev Tunels 进行 C2 重定向https://cn-sec.com/archives/3069317.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息