利用DNS over HTTPS增强Cobalt Strike隐蔽性

本文详细介绍了如何通过TitanLdr工具将DNS over HTTPS技术集成到Cobalt Strike中,实现无需第三方账户的加密C2通信,分析其技术优势与局限性,并探讨潜在检测方法。

DNS Over HTTPS for Cobalt Strike

作者:Kyle Avery
红队技术专家

引言

近年来,红队行动中C2基础设施的搭建变得越来越复杂。这对安全社区而言是积极的进展,意味着厂商和专业从业者已从既往成功攻击技术中吸取经验,并在网络中实施了有效防护措施。

DNS over HTTPS(DoH)是一个未被充分重视的命令与控制通道。本文将展示如何通过Cobalt Strike利用DoH技术,实现无需第三方账户或基础设施配置、使用有效SSL证书加密流量,并将通信伪装至信誉良好的域名。

现有技术

攻击者和攻防安全专家长期使用不同的重定向器方案。早期重定向器多为配置了预设转发规则的Apache/Nginx服务器。

重定向器不仅能提升基础设施韧性,还能绕过依赖域名分类的防御机制。例如当内容分发网络(CDN)对开发者更开放后,攻击者转向使用这些平台——它们通常提供有效域名甚至SSL证书,极大减少了攻击者工作量。

后来出现的"域名伪装"技术曾被广泛使用,但近年来CDN厂商开始严查此类行为。微软甚至会在行动中直接禁用Azure订阅。

近期我开始采用Azure应用服务和Cloudflare Workers等云服务进行流量重定向。这些服务具备传统CDN优势且监控力度较低,但随时可能面临与CDN同等的监管强度。

DNS over HTTPS

传统DNS信标相对容易被检测。我从未在实战中使用Cobalt Strike DNS监听器,一直依赖HTTPS监听器与重定向器方案。

DoH信标无需账户或重定向器配置即可提供可信域名和有效SSL证书,进一步缩短操作准备时间并消除账户封禁风险。

技术核心:Cobalt Strike的DoH实现

该技术最初由Austin Hudson在Twitter提出,其开源工具TitanLdr通过钩取Cobalt Strike Beacon的导入地址表(IAT),将传统DNS查询API(DNSQuery_A)替换为向dns.google(8.8.8.8/8.8.4.4)发送DoH请求的函数。

TitanLdr的DNSQuery_A钩子具有通用性,可支持多个DoH服务器。经测试以下域名均可直接使用:

  • dns.quad9.net
  • mozilla.cloudflare-dns.com
  • cloudflare-dns.com
  • doh.opendns.com
  • ordns.he.net

使用TitanLdr

原始版本TitanLdr(https://github.com/secidiot/TitanLdr)仅支持单一DNS提供商,可通过修改hooks目录下DnsQuery_A.c文件第111行更换服务器。

我开发的分支版本(https://github.com/kyleavery/TitanLdr)支持多DoH服务器,每次回调会从硬编码列表中随机选择。修改位置为DnsQuery_A.c第116行。

编译需要Linux主机安装NASM和MinGW,执行make命令生成必要文件。导入Titan.cna Aggressor脚本后即可配置DNS监听器(具体配置参考Cobalt Strike文档)。

信标运行后,仅首次需要DNS解析DoH服务器地址,后续所有通信均为加密HTTPS流量。

技术局限性

DoH信标虽优于传统HTTPS信标,但仍存在明显缺陷:

  1. 传输相同信息需要更多数据包(DNS TXT记录上限255字符)
  2. 无法控制服务器域名和路径。组织可通过封锁知名DoH服务器(如dns.google)的443/TCP出口流量进行防御,该措施比屏蔽*.azurewebsites.net等CDN域名更易实施

检测可能性

现有检测机制存在盲区:

  • 基于域名信誉的HTTPS恶意流量检测对信誉良好的DoH域名失效
  • 基于请求频次的DNS恶意流量检测对非DNS协议的DoH通信失效

传统DNS监控结合SSL解密或是解决方案,但目前尚无成熟工具实现该方案。最有效的防御可能是封锁未使用的知名DoH服务器出口流量。多数企业网络仍使用传统DNS(尤其是Active Directory环境中的本地DNS服务器),无需放行dns.google等域名的HTTPS流量。

总结展望

本文未穷尽所有可用DoH服务器,用户可自建DoH服务器(甚至部署在CDN后)创造技术变体。虽然TitanLdr仅支持Cobalt Strike,但其DoH实现可移植到其他C2框架。

该技术并非万能解决方案,但作为战术工具箱的补充值得尝试。欢迎通过Twitter @kyleavery_ 交流探讨。

致谢

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计