A. 【安全研究】Domain fronting域名前置网络攻击技术
Domain Fronting技术,一种基于HTTPS通用规避的网络攻击手段,也被称作域前端网络攻击技术。此技术主要应用于隐藏Metasploit,Cobalt Strike等团队控制服务器的流量,旨在绕过检查器或防火墙的检测,例如Amazon, Google,Akamai等大型厂商会提供域前端技术服务。在实际应用中,以Amazon CloudFront服务为例,可以展示其在Domain Fronting攻击中的操作流程。在搭建多个网站服务时,通过使用不同的域名在不同通信层进行连接,实现隐藏连接真实端点,从而规避互联网审查。
在进行SSL/TLS连接时,浏览器首先请求服务器的证书。由于服务器在发送证书时并不知道浏览器访问的域名,因此无法根据不同的域名发送不同的证书。为了应对这一问题,引入了SNI(Server Name Indication)这一扩展,它允许在Client Hello中添加Host信息,从而实现一个服务器可以同时拥有多个域名和证书。
Domain Fronting的核心思想是在不同通信层使用不同的域名,利用此技术,用户可以通过HTTPS连接到被屏蔽的服务,表面上却像是在与另一个完全不同的站点通信。其原理是在明文DNS请求和TLS服务器名称指示(SNI)中使用无害的域名初始化连接,而实际要连接的被封锁域名仅在创建加密的HTTPS连接后发出,且Host头信息会携带另一个恶意C2(Command and Control)域名(该信息对于检查器不可见,但对于接收HTTPS请求的前端服务器可见)。
在演示中,使用Amazon CloudFront作为内容交付网络服务,通过选择一个受信任的域名(如"docs.telemetry.mozilla.org")作为前置域名,可以躲避防火墙审查。在CloudFront中设置自己的C&C控制器域名(如Godsong.test),并按照需求进行其他设置。完成后,CloudFront会自动分发一个随机域名(如xxx.cloudfront.net),将此域名指向真实C&C服务器,用户访问此域名时,其流量会转发到真实的C&C服务器。
在实际应用中,可以使用Cobalt Strike,Empire,Metasploit等工具修改其配置文件,控制流量传输。通过设置Profile扩展并指定Host头信息,可以实现流量隐藏。在恶意程序运行后,使用Wireshark抓取传输流量数据包,可以观察到相关请求和响应,以及在Wireshark中查看传输流量包的Host头信息,以此方法来隐藏真实C&C服务器地址。
Domain Fronting技术在实际使用中,能够利用合法前置域名作为诱饵,使DNS请求和HTTPS连接看似正常,而在实际流量传输中,通过修改Host头指向恶意C&C服务器,实现对真实恶意流量的隐藏。这使得恶意流量的源头难以被追踪,同时在被控服务器上产生的恶意指纹,如网络数据包的大小和时间等,也成为了观察恶意特征和检测攻击的重要依据。