概述
1 环境
cs4.3(cs4.4版本未知原因,无法正常上线)
服务端:Ubuntu20.4
客户端:win10
2 基本思路
域前置(Domain fronting),是一种隐藏连接真实端点来规避互联网审查的技术。在应用层上运作时,域前置使用户能通过 HTTP/HTTPS 连接到被屏蔽的服务,而表面上像是在与另一个完全不同的站点通信。因此,宏观定义的域前置应该包含 HTTP 和 HTTPS 两种情况,所以本文主要复现 HTTP/HTTPS两种情况。
简单理解:
表面看, CDN 通讯域名(我们看得到的);
实际上, CS真实 IP(我们看不到的)。
也就是我们常见的网站套了CDN,找不到服务器真实ip的情况。
上线原理为 受害者主机运行木马----->CDN---->cs服务器收到上线
执行操作原理为 cs服务器执行命令----->CDN接收----->受害者主机执行命令
3 操作
第一步:申请一台云服务器,国内任意云都可以。部署cs4.3服务端,检察是否可以正常运行。
第二步:域名申请或购买
这里我使用domains免费的国外域名(国内域名需要备案。域名备案后,隐藏cs流量的操作将毫无意义)
第三步:CDN申请或购买
使用Cloudflare免费的CDN服务,在DNS处添加名称为www,内容为云服务器ip的记录,代理状态变为已代理说明域名已经解析至云服务器。但现在的解析是直接解析到云服务器的,ping域名会返回云服务器的真实ip。
接下来将Cloudflare 名称服务器替换至domains的域名服务器。如下图:
设置成功后等待一段时间,会邮件通知我们替换成功。
替换成功后使用站长ping检测多个地点Ping服务器,网站测速 - 站长工具,检测我们的域名,发现已经全部为CDN的地址。至此我们的云服务器ip已经隐藏成功,溯源者无法通过域名定位真实ip。
第四步:cs配置文件Profile
Github有很多cs-Profile供我们使用,这里我使用threatexpress的jquery-Profile,链接就不放了以,可以去github上搜。
下载后根据对Profile进行修改。需要修改的内容主要有七处,
一个是https-certificate模块中的keystore和password,修改后把注释去掉。
keystore的生成方法:去Cloudflare的SSL/TLS源服务器创建证书,使用默认配置生成pem和key。
复制证书创建txt导入,修改文件名为xxxx.pem
复制私钥创建txt导入,修改文件名为xxxx.key
将创建的pem和key文件上传至云服务器。执行以下命令(www.xxx.com为申请的域名)
openssl pkcs12 -export -in xxxx.pem -inkey xxxx.key -out www.xxx.com.p12 -name www.xxx.com -passout pass:123456
keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore www.xxx.com.store -srckeystore www.xxx.com.p12 -srcstoretype PKCS12 -srcstorepass 123456 -alias www.xxx.com
生成的keystore文件将该文件放在云服务器CS的根目录下。
然后将keystore文件名称和密码填入profile文件中。
另外三处为http-stager、http-get、http-post模块中的Host和Referer。
剩余三处为Profile中的响应头配置,其中的header "Content-Type" "application/javascript; charset=utf-8";修改为:header "Content-Type" "application/*; charset=utf-8";
在修改完成后,使用CS自带的c2lint对profile语法进行检查,没有报错的话说明配置是对的。
第五步:修改CDN配置
在这个Profile中,我们请求的URI是以.js结尾的,Cloudflare作为一个CDN肯定要去缓存它,但这样的话请求就无法到达我们的CS服务器,自然也就无法上线了。使用开发模式并清除缓存。
在规则中设置不代理js请求。
第六步 测试上线
启动cs,设置配置为修改好的profile
对CS的listener进行配置。填入三次自己的域名,其他的默认,在https hosts处也可添加站长ping出来的cdn ip
生成木马,在pc运行,成功上线
http同理,设置监听为http监听,生成木马可成功上线
HTTP监听和HTTPS监听
第七步 验证数据包
上线后Wireshark捕捉到的get数据包,172.67.131.242为我们的cdn地址。host与referer为我们的域名。
执行命令时Wireshark捕捉到的POST数据包,172.67.131.242为我们的cdn地址。host与referer为我们的域名。
执行命令正常回显
4 总结
至此我们已经成功隐藏CS服务器ip和CS流量,但听蓝队大佬说依然有办法拿到真实 IP。。。。。
最后
以上就是殷勤裙子为你收集整理的利用域前置隐藏cs流量和ip,增加溯源难度的全部内容,希望文章能够帮你解决利用域前置隐藏cs流量和ip,增加溯源难度所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复