域前置domain fronting&域隐藏

原理

https://zh.wikipedia.org/wiki/%E5%9F%9F%E5%89%8D%E7%BD%AE

域前置的核心是隐藏连接真实端点。

我们一般使用域前置来隐藏C2服务器,达到反溯源的效果。

域前置技术其实能跟现实社会的场景联系起来,想象一下这样一个场景。你老婆不让你出门和朋友们喝酒,但是你说领导叫我去公司加班,那么你就可以拿着车钥匙出门了。

所以域前置可以进行规避审查,在建立https连接之后(内容加密),再访问C2服务器。

cdn和域前置的关系

利用CDN、域前置、重定向三种技术隐藏C2的区别

cdn技术仅仅利用了cdn对http与https流量进行转发来达到的隐匿效果,可以隐藏ip不能隐藏域名。
域前置技术高级一些,但是却基于https的,可以隐藏ip与域名,效果我认为是最好的,只是因为现在不少的cdn厂商已经禁止了域前置技术的存在,想用的话得自己去找还依旧允许域前置技术的厂商。
重定向技术对运维人员迷惑效果还是不错的,但对于很专业的运维人员可能效果就没有那么好,而且配置也是最复杂的,如果被发现ban了自己的重定向机器,对于攻击队来说损失也不小,总的来说还是没有cdn的方法好用。

域前置或者说叫域隐藏必须要cdn服务提供商允许
https://inyour.network/blog/2017/Domain-Fronting-PoshC2/

然而:
https://zh.wikipedia.org/wiki/%E5%9F%9F%E5%89%8D%E7%BD%AE
Cloudflare在2016年的一些修改让基于其CDN的域前置不再工作。

并且阿里云、亚马逊云、谷歌云纷纷禁止域前置。

其实也很好理解,毕竟这种技术可以让黑客们简单的隐藏自己的域名来做黑产,而服务提供商为了避免麻烦,肯定会不再提供这项服务。哪怕还有能够提供这个服务的厂商,随着时间流逝,这项技术也会不再适用。

域隐藏

DNS和http协议都是明文传输的,为了让其他人不能看到我们传输的内容,嗅探、拦截、伪造等,所以我们需要加密传输。

https协议在三次握手之前都是明文传输的,建立连接以后才能进行加密传输。

tls的全程是Transport Layer Security Protocol 传输层安全协议

https://zh.wikipedia.org/wiki/%E5%82%B3%E8%BC%B8%E5%B1%A4%E5%AE%89%E5%85%A8%E6%80%A7%E5%8D%94%E5%AE%9A#TLS_1.3

tls1.3是2018年出来的新协议

具体tls是怎么做到加密的,这与我们user无关,我们只需要知道的是,使用dns + tls1.3 就可以达到加密dns协议的效果。

https://github.com/Ridter/DomainHiding
但是domainHiding技术国内也不能用: Exposing and Circumventing China’s Censorship of ESNI

On 2020-07-30, iyouport reported (archive) the apparent blocking of TLS connections with the encrypted SNI (ESNI) extension in China. iyouport says that the first occurrence of blocking was one day earlier, on 2020-07-29.

参考资料