【安全研究】Domain fronting域名前置网络攻击技术
  

SANGFOR_智安全 6222

{{ttag.title}}
本帖最后由 某公司_智安全 于 2019-5-14 10:45 编辑

千里百科

Domain Fronting基于HTTPS通用规避技术,也被称为域前端网络攻击技术。这是一种用来隐藏Metasploit,Cobalt Strike等团队控制服务器流量,以此来一定程度绕过检查器或防火墙检测的技术,如Amazon ,Google,Akamai 等大型厂商会提供一些域前端技术服务。

下列将会使用Amazon 提供CloudFront (CDN)服务举例。

背景

在虚拟主机中搭建多个网站服务,为了方便我们区分它们,可以 IP+Port名称 等方式去访问它们,但是如果是SSL/TLS的话。根据HTTPS的工作原理,浏览器在访问一个HTTPS站点时,先与服务器建立SSL连接。

建立连接的第一步就是请求服务器的证书。而服务器在发送证书时,是不知道浏览器访问的是哪个域名的,所以不能根据不同域名发送不同的证书。因此就引入一个扩展叫SNI,SNI是为了解决一个服务器使用多个域名和证书的SSL/TLS扩展,做法就是在 Client Hello 中补上 Host 信息。
450465cda1f8f691fb.png

域前端的关键思想是在不同的通信层使用不同的域名,是一种隐藏连接真实端点来规避互联网审查的技术。在应用层上运作时,域前置使用户能通过HTTPS连接到被屏蔽的服务,而表面上像在与另一个完全不同的站点通信。

此技术的原理为在不同通信层使用不同的域名。在明文的DNS请求和TLS服务器名称指示(SNI)中使用无害的域名来初始化连接,而实际要连接的被封锁域名仅在创建加密的HTTPS连接后发出,在Host头中携带了另一个恶意C2域名(Host头对于检查器是不可见的,但是对于接收HTTPS请求的前端服务器是可见的)。
647415cda1fa656fe5.png

演示

在Amazon CloudFront是一种内容交付网络服务。它为用户提供了一个全局分布式缓存,用于托管在其服务器上的文件。这减少了客户服务器上的负载,并允许CDN提供来自与请求者数据中心的缓存内容,当客户端连接到CloudFront的时候,其根据HOST头来判断客户端想要请求的域名,在做域前置攻击时候,只要在CloudFront中挑选一个受信任域名,如"https://docs.telemetry.mozilla.org",看起来是一个合法白名单域名,将他做为前置域名来躲避防火墙审查。
118125cda1fb953448.png

在Amazon CloudFront申请一个账户并建立一个CloudFront,在"Origin Domain Name"写入自己的C&C控制器域名如Godsong.test,其他设置按自己需求来。
398575cda1fc6e2c23.png

960425cda1fe30473a.png

申请完毕之后会自动分发一个随机域名 xxx.cloudfront.net样式,将颁发的随机域名指向真实C2服务器,用户访问此域名时候会解析到真实的C&C服务器。
824985cda1ff61604b.png

图5

域名前置因为使用了合法前置域名做诱饵,在使用HTTPS链接时,DNS请求的也都是合法域名,而在HOST中请求修改请求指向为我们C&C服务器,相当于请求合法域名之后把流量转发到了中转web上。
813605cda2005e9376.png

在CloudFront为我分配了一个域名,此域名转发到我的C&C地址上,在原始C&C服务器Web存放了一个名为6.txt记事本,地址为https://www.godsong.test/6.txt。
539205cda201050ab4.png

访问Aws颁发的域名https://d305blu4121c3m.cloudfront.net/6.txt,能返回原始流量转发说明测试成功。
412275cda202124967.png

使用合法白名单作为前置域名,修改Host指向为我们的C&C域名。

wget -U demo -q -O- docs.telemetry.mozilla.org/6.txt --header  "Host:d305blu4121c3m.cloudfront.net"
如下图就成利用Mozilla白名单域名技术来隐藏真实恶意流量。
737605cda203e6b98f.png

在实际应用中,可以使用Cobalt Strike ,Empire, Metasploit等工具修改其配置文件来控制流量传输,下文使用Cobalt Strike演示,设置一个Profile扩展并且指定Host头为d305blu4121c3m.cloudfront.net。
861345cda2051a300e.png

创建一个监听器,主机写Cloudfront.net分发域名,监听80端口。
377065cda2060594a3.png

Beacon传输器使用白名单域名如下:
529865cda2075dc2be.png


在恶意程序运行后,使用Wireshark 抓取传输流量数据包。如图所示,可以看到相关请求如下,以此方法来隐藏真实C&C服务器地址,在Wireshark 中查看传输流量包Host头也同样指向我们Cloudfront服务器,一定程度上隐蔽了真实攻击机地址。
808565cda20a92ea74.png

568805cda20b693078.png

总结:Domain Fronting技术因为我们看到的域只是前端服务器域,很难区分那个是正常域名或恶意域名,但实际上恶意流量都要进入被控端服务器,这样的话就会在被控服务器上产生一些恶意指纹,网络数据包的大小和时间,以此方法来观察恶意特征检测等等。
参考文献

[1]https://www.sans.org/cyber-security-summit/archives/file/summit-archive-1542139101.pdf  
图2,图6引用此文
[2]http://www.ert7.com/service/knowledge/3999.html


打赏鼓励作者,期待更多好文!

打赏
暂无人打赏

厌児 发表于 2019-5-23 12:09
  
感谢楼主的分享 研究下
新手510859 发表于 2021-7-6 08:18
  
这个域前置技术有什么局限性呢,有没有比较有效的检测方法?
发表新帖
热门标签
全部标签>
每日一问
技术盲盒
技术笔记
每周精选
干货满满
技术咨询
信服课堂视频
标准化排查
产品连连看
新版本体验
安装部署配置
自助服务平台操作指引
功能体验
秒懂零信任
GIF动图学习
2023技术争霸赛专题
通用技术
技术晨报
社区帮助指南
安全攻防
每日一记
玩转零信任
天逸直播
华北区交付直播
深信服技术支持平台
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
问题分析处理
流量管理
运维工具
云计算知识
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
答题榜单公布
纪元平台
卧龙计划
华北区拉练
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV

本版达人

SANGFOR...

本周分享达人