Loading [MathJax]/jax/input/TeX/jax.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >CobaltStrike使用CDN域前置并搭建Nginx前置代理

CobaltStrike使用CDN域前置并搭建Nginx前置代理

作者头像
Jumbo
发布于 2023-08-28 07:50:47
发布于 2023-08-28 07:50:47
2K0
举报
文章被收录于专栏:中国白客联盟中国白客联盟

前言

本文将介绍CobaltStrike配置CDN域前置,并搭建Nginx前置代理来隐藏自身。

CDN域前置介绍

CDN域前置,也就是Domain fronting,简单点讲,就是伪造HOST,让CDN根据HOST转发到你真正的C2上面去,从流量上看,目的都是CDN的IP,这样做到了隐藏C2的目的:

配置CDN域前置

因为X云未校验域名归属人,可导致在X云控制台任意添加CDN域名:

然后配置CDN回溯地址:

最终使用如下命令测试是否配置成功,这样就会给你转发到你的回溯地址:

curl https://www.cdn.com/ -H "Host: host.com" -vv -k

其中www.cdn.com为任意配置了X云CDN的域名、IP即可。

CobaltStrike识别绕过

配置CobaltStrike证书+修改默认端口

首先为防止默认SSL证书被ips等设置流量监测到,首先得生成SSL证书并加载:

命令来源:

https://www.codenong.com/cs105286327/

openssl req -newkey rsa:2048 -nodes -out hongshu.csr -keyout hongshu_com.key openssl x509 -req -days 365 -in hongshu.csr -signkey hongshu_com.key -out hongshu_com.crt openssl pkcs12 -export -in hongshu_com.crt -inkey hongshu_com.key -out hongshu_com.p12 keytool -importkeystore -v -srckeystore hongshu_com.p12 -srcstoretype pkcs12 -destkeystore hongshu_com.jks -deststoretype jks

上述生成完证书以后,修改teamserver文件加载新的证书和证书密码:

java -XX:ParallelGCThreads=4 -Dcobaltstrike.server_port=3306 -Dcobaltstrike.server_bindto=0.0.0.0 -Djavax.net.ssl.keyStore=./your.jks -Djavax.net.ssl.keyStorePassword=yourpassword -server -XX:+AggressiveHeap -XX:+UseParallelGC -classpath ./cobaltstrike.jar:. -Duser.language=en server.TeamServer $*

当然,上述命令把CobaltStrike的默认监听端口也改成了3306。

stager url绕过

CobaltStrike stager有个固定特征,其url是根据checksum8算法生成的,而CobaltStrike默认开启监听后会启用stager url,因此如果不做相应的配置,会导致CobaltStrike的stager url被外部扫描到,比如我CobaltStrike开启如下监听:

CobaltStrike默认会一起开启stager:

根据算法扫描到stager url,获取stage文件,即可获取CobaltStrike配置信息:

因此使用Nginx前置代理来规避此类风险。

搭建Nginx:

server { listen 80 default_server; listen [::]:80 default_server; server_name yourdomain.com; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location ~ ^(/jquery-3.3.1.slim.min.js.*)Extra open brace or missing close bracehttp_user_agent != "Mozilla/5.0") { return 302 http://domain.com; } proxy_pass http://127.0.0.1:180; expires off; proxy_redirect off; proxy_set_header Host host;proxysetheaderXForwardedForproxy_add_x_forwarded_for; proxy_set_header X-Real-IP

上面的Nginx配置作用是监听80、443端口;然后只有符合jquery开头的url才会转发到180和1443端口,180和1443也就是CobaltStrike listen上面配置的的bind端口。

也配置了获取X-Forwarded-For ,目的是把真实上线IP传给CobaltStrike,不然的话,CobaltStrike看到的上线IP也是Nginx服务器,因为是Nginx服务器把符合路由的流量转了过来。

接下来需要配置profile文件,注意几点:

1.把证书和密码加进去,让上线走的是自定义的修改过的ssl证书

2.配置上线的url,即和nginx里面配置的路由一致

3.设置trust_x_forwarded_for,解析x_forwarded_for的值来获取传过来的真实受害者IP。

4.profile文件里不要写死host字段,因为他会替换掉listen里面的host信息,比如笔者走的是cdn域前置,80和443走的是不同的host,如果profile写死了host信息,那所有的流量都会带上这个host头,如果写死www.baidu.com,就会导致笔者非www.baidu.com的cdn域前置就会失效。host写死也行,比如写成www.baidu.com, 这样上线看起来就是看起来是往www.baidu.com请求数据,文章参考地址:Payload多种隐藏方法

5.后来测试发现,域前置的时候,"https host(stager)"里写cdn域名的话,stager、生成的shellcode不会上线成功,因为他直接往cdn请求了,而如果写真实ip的话,会上线成功,那就会暴露真实IP,因此在"https host(stager)"里写接入了cdn的域名,还要在profile里设置http-stager的host为注册的白cdn的域名即可。这个时候就要使用profile中的header "Host"了。

最后得使用iptables,设置180和1443,即CobaltStrike的bind port只允许本地访问,反正这两个端口是从nginx的80和443转发过来的,外面人也确实不需要访问:

iptables -A INPUT -s 127.0.0.1 -p tcp --dport 180 -j ACCEPT iptables -A INPUT -p tcp --dport 180 -j DROP iptables -A INPUT -s 127.0.0.1 -p tcp --dport 1443 -j ACCEPT iptables -A INPUT -p tcp --dport 1443 -j DROP

上面的搞定后,就不会存在cs被人恶意扫导致每次连接服务端都会同步很长时间,因为比如你的CobaltStrike监听了80端口,外面一堆扫描器在天天全网扫,扫描日志太多了,就会导致CobaltStrike的同步也得很长时间,也解决了Stager被扫问题。

拒绝某些IP

为了防止各种扫描和沙箱拉CobaltStrike数据,可以把一些厂商的沙盒IP给ban掉,在Nginx中配置如下信息即可:

#拒绝访问IP deny 192.168.66.88;

总结

本文介绍了CobaltStrike使用CDN域前置的技术和针对CobaltStrike被扫描和被发现的一些保护措施。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 中国白客联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
nginx简单代理配置
前言 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。因为域名只能解析80端口,所以必须需要nginx代理访问。
王念博客
2019/07/25
7260
cobaltstrike 流量隐藏
监听器配置填入地址 service-cv4vqio3-1307700818.sh.apigw.tencentcs.com
黑战士
2024/04/17
2000
【红队APT】反朔源隐藏&C2项目&CDN域前置&云函数&数据中转&DNS转发
国内外云服务上大部分已经不支持域前置了,作者在阿里云刚刚复现成功…… 这里做简单的流程演示和相关的溯源分析
没事就要多学习
2024/07/18
2830
【红队APT】反朔源隐藏&C2项目&CDN域前置&云函数&数据中转&DNS转发
如何隐蔽你的C2
文章首发于安全客:https://www.anquanke.com/post/id/231448
谢公子
2022/01/20
1.9K0
如何隐蔽你的C2
【红队APT】反朔源&流量加密&CS&MSF&证书指纹&C2项目&CDN域前置
在红蓝对抗或日常测试中会出现一种情况,当我们终于让目标机器上线后, 却因为明显的通信特征被安全设备检测到从而失去目标机器的控制权限, 这时就需要对Cobalt Strike或MSF的特征进行隐藏、对其通信流量进行混淆。
没事就要多学习
2024/07/18
2250
【红队APT】反朔源&流量加密&CS&MSF&证书指纹&C2项目&CDN域前置
实战填坑 | CS使用CDN隐藏C2
但在搭建域名+CDN隐藏版c2时楼主遇到了不少的坑,在这里顺着搭建的思路慢慢把踩的坑填上。
HACK学习
2021/06/24
4.8K0
实战填坑 | CS使用CDN隐藏C2
流量加密之C2隐藏
文章地址:https://www.freebuf.com/articles/network/330713.html
亿人安全
2022/06/21
12.7K1
流量加密之C2隐藏
利用Nginx反向代理来简单镜像HTTP(S)网站的方法
然后访问你的域名看一看是否成功镜像,需要注意的一点是,如果被镜像的网站设置了防盗链,那么静态文件(js/css/图片)可能无法显示,这就没办法了。
用户4988085
2021/09/17
7.8K0
红队攻防之隐匿真实Cobalt Strike IP
点击新建云函数,选择创建方式—自定义创建,函数名称自定义或者默认都可以,运行环境选择python3.6,其他版本也行。
FB客服
2021/05/20
3K0
红队攻防之隐匿真实Cobalt Strike IP
使用Searx搭建一个私人的搜索引擎平台,可展现Google/Bing等70多种搜索网站的搜索结果
更多参数设置可以参考https://github.com/asciimoo/searx/wiki/settings.yml。
叮当叮
2020/04/20
4.3K0
CentOS7安装维护nginx从入门到精通
Nginx 是一款面向性能设计的 HTTP 服务器,能反向代理 HTTP,HTTPS 和邮件相关(SMTP,POP3,IMAP)的协议链接。并且提供了负载均衡以及 HTTP 缓存。它的设计充分使用异步事件模型,削减上下文调度的开销,提高服务器并发能力。采用了模块化设计,提供了丰富模块的第三方模块。
小弟调调
2018/09/11
1.8K0
nginx学习
格式:proxy_cache_path path [levels=numbers] keys_zone=zone_name:zone_size[inactive=time] [max_size=size]
是小张啊喂
2021/08/09
3970
CobaltStrike魔改与增强
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。
用户8478399
2022/09/22
2.6K0
CobaltStrike魔改与增强
Nginx反向代理+负载均衡简单实现(https方式)
背景: A服务器(192.168.1.8)作为nginx代理服务器 B服务器(192.168.1.150)作为后端真实服务器 现在需要访问https://testwww.huanqiu.com请求时从A服务器上反向代理到B服务器上 这就涉及到nginx反向代理https请求的配置了~~~ ------------------------------------------------------------------------------------ A服务器(192.168.1.8)上的操作流程: 1
洗尽了浮华
2018/01/22
2.9K0
使用Searx搭建一个私人的搜索引擎平台,可展现Google/Bing等70多种搜索网站的搜索结果
说明:现在百毒各种犀利操作导致很多人都转向了谷歌,不过由于谷歌在国内被墙,对一些人来说访问起来是有点困难的,除了挂梯子以外,反代谷歌也可以,很久前就发过这种教程→传送门,不过最近找到了个好项目Searx,一个基于Python的完全开源免费搜索引擎平台,为你提供来自Google、Bing、Yahoo等70多种各大视频、图片、搜索、磁力等网站结果展示,并对搜索结果进行优化,同时不会存储你的任何搜索信息,搭建也很方便,有兴趣的可以搭建给需要谷歌的同事或朋友用下。
子润先生
2021/06/01
4.3K0
红队作业 | ​MSF和CS实战技巧汇总
其实就是内网穿透,使用frp做映射也能实现相同的效果,内网的中的Kali可以通过VSP访问到另外一个内网中。
Ms08067安全实验室
2022/04/06
1.1K0
红队作业 | ​MSF和CS实战技巧汇总
一款二次元的Web多人在线网络聊天系统:Fiora安装及使用
说明:Fiora是一款偏二次元的Web多人在线聊天应用,使用Node.js、Mongodb、Socket.io和React编写,使用起来还行,挺简洁的,这里水个搭建教程,有兴趣的可以玩玩。
星泽V社
2022/05/30
1.1K0
一款二次元的Web多人在线网络聊天系统:Fiora安装及使用
我的梦想是拥有自己的个人网站,分享我的所思所想!
前言: 作为一名大四的本科生,我的梦想是拥有自己的个人网站,向所有人分享我的所思所想。在大三的时候,我完成了这一梦想,基于Hexo框架我完成了个人网站的搭建并购买服务器实现了网站的发布!不过随着项目经历的丰富,我打算为自己的AI项目再配置一个网站!那一台主机如何同时部署两个web服务呢,本文将讲述在实际配置过程中遇到的各类坑以及解决方案。
Datawhale
2021/11/08
1K0
使用FirefoxSend搭建一个临时文件分享系统
说明:Firefox Send是Firefox推出的一個全新的临时文件分享系统,不过貌似代码开源了,也有几个小伙伴搭建的时候遇到了点问题,要博主发个教程,这里就水一下手动搭建和Docker搭建。
栖枝perch
2020/04/02
1.8K0
域名、证书提升自建dnslog平台的安全性
使用nginx反向代理实现dnslog平台通过域名访问,并为该域名添加ssl证书,提升自行搭建dnslog平台的安全性。
San3an
2024/09/04
1600
推荐阅读
相关推荐
nginx简单代理配置
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文