- 文章内容来源于收集,非原创,仅做学习使用
- 《Blocking-resistant communication through domain fronting》">《Blocking-resistant communication through domain fronting》
- 《FireEye - APT29 Domain Fronting with TOR》">《FireEye - APT29 Domain Fronting with TOR》
- 《Dubh3 - 暗度陈仓:基于国内某云的 Domain Fronting 技术实践》">《Dubh3 - 暗度陈仓:基于国内某云的 Domain Fronting 技术实践》
- 《Cobalt Strike - High-reputation Redirectors and Domain Fronting》">《Cobalt Strike - High-reputation Redirectors and Domain Fronting》
- 原理
- Cobalt Strike + Google host
- 检测方法
- 运作演示
- 禁用">禁用
文章内容来源于收集,非原创,仅做学习使用
《Blocking-resistant communication through domain fronting》
《FireEye - APT29 Domain Fronting with TOR》
《Dubh3 - 暗度陈仓:基于国内某云的 Domain Fronting 技术实践》
《Cobalt Strike - High-reputation Redirectors and Domain Fronting》
原理
“域前置”技术是一种审查规避技术,主要用于隐蔽通信中的远程端点。“域前置”发生在应用层,主要适用了HTTPS协议进行通信,通信中的远程端点原本是被禁止的,通过使用“域前置”技术,让检测器误认为是一个其他的合法地址,进而绕过检测。
核心思想是在不同的通信层使用了不一样的域名。
在一个HTTPS请求中,通信外层使用了一个域名:DNS请求和TLS SNI (Server Name Indication);而在通信内层,则使用了另一个域名:HTTP Host Header,这个域名由于在HTTPS加密之下,所以对检测器而言是不可见的。
此技术的原理为在不同通信层使用不同的域名。在明文的DNS请求和TLS服务器名称指示(SNI)中使用无害的域名来初始化连接、公布给审查者,而实际要连接的“敏感”域名仅在建立加密的HTTPS连接后发出,使其不以明文暴露给网络审查者。
这种举动在被封锁的站点与无害站点为同一个大型服务提供商时较为可行,例如由内容分发网络提供的服务。
此时审查者通常很难区分被伪装流量与合法流量的特点,迫使审查者选择放行所有看似无害的流量,或者选择彻底封锁此域的流量。而彻底封锁可能带来显著的附加损害。
Cobalt Strike + Google host
域前置技术在CDN等重要的基础设施和Google的各类网络服务中尤其适用。
使用 Cobalt Strike 实施基于 Google hosts (如 google.com, mail.google.com 等)的“域前置” 攻击。
假定使用Cobalt Strike作为一个C2服务器(也可以使用其他的攻击平台,如 Metasploit,Empire,Pupy等)。
创建Cobalt Strike监听器:
- 选择 “windows/beacon_https/reverse_https” 有效载荷;
- 设置Host值;
- 设置端口号;
配置Cobalt Strike监听器
设置前置域名的信息
使用Google前置域名重定向发往google.com域名的请求,这一过程的示意图如下所示:
*中间配置网站的内容省略
检测方法
目前针对域前置的最常见的检测方法是在配置一个中间人HTTPS代理,通常被称为 “SSL Termination”,它的作用是解密和检测通信中所有的加密流量。当然了这种方法也存在一定的风险。此外,Google的域名支持 HSTS 协议,只有个别几个厂商才有能力针对目标为Google域名进行SSL通信的解密。
运作演示
curl
- curl DNS 查询 fastly.net 并和其建立HTTPS连接,服务器名称指示是fastly.net;
- 但是HTTP头的Host是www.bbc.com;
- 这里www.bbc.com被fastly.net前置,屏蔽www.bbc.com而允许 fastly.net
这种审查可以被域前置绕过:
curl https://fastly.net -H "Host: www.bbc.com" -s | grep -o '<title>.*</title>'
- curl向维基媒体服务器91.198.174.192建立HTTPS连接,使用www.mediawiki.org作为服务器名称指示;
- HTTP头的Host是zh.wikipedia.org;
- zh.wikipedia.org被www.mediawiki.org前置,屏蔽zh.wikipedia.org而允许www.mediawiki.org,
这种审查可以被域前置绕过:
curl https://www.mediawiki.org/wiki/域前置 --connect-to ::91.198.174.192 -H "Host: zh.wikipedia.org" -s | grep -o '<title>.*</title>'
禁用
Cloudflare在2016年的一些修改让基于其CDN的域前置不再工作。
Google于2018年4月宣布将在Google应用服务引擎禁用域前置,称这从未是Google有意支持的一项功能。
亚马逊公司也在不久后决定停用CloudFront上的域前置兼容,表示这已被视为违反亚马逊网路服务系统(AWS)服务条款。
有报道认为,Google和亚马逊做此决定的部分原因是来自俄罗斯政府的压力,因Telegram在当地使用这两家云服务提供商进行域前置活动。
Tor早前也使用Google和亚马逊的云服务进行域前置以保护用户活动,在两者相继关闭域前置兼容后,Tor将域前置服务转移到尚未决定关闭该兼容的Microsoft Azure服务,但尚不知微软会否对其提供持续支持[26],微软公司没有回应CyberScoop提出的置评请求。
虽然域前置技术可以帮助用户绕过互联网审查,但黑客组织和恶意软件也会使用该技术。FireEye曾报道称,与俄罗斯相关的黑客组织APT29使用该技术从目标网络中窃取数据。
CyberArk等公司则详细介绍了恶意软件如何利用该技术控制僵尸网络。
赛风(Psiphon)总裁迈克尔·赫尔(Michael Hull)告诉媒体CyberScoop,他公司的产品从未依赖域前置技术,并将这种做法描述为“快速解决一个困难的问题”、“在该领域不是很有效”,并认为结合混淆、HTTP标头修改、传输碎片化等一系列复杂技术的多元化审查规避工具包的重要性不容小视,并补充道:“域前置正在击溃内容分发网络的设计,这也是亚马逊和谷歌禁止该技术的原因。”Tor发言人Whited则不太同情两公司的决定,并指责这两家公司作出了轻率的决定,终结了世界的各地记者和活动家的一种非常重要的通信手段。
在2018年7月左右的互联网工程任务组(IETF)会议上,苹果公司、Cloudflare和Mozilla的工程师在一项名为“加密服务器名称指示(ESNI)”的新协议上取得了进展,该协议将能解决TLS SNI暴露给窃听者的问题。但是,该协议的定稿和部署可能仍需数年。