cobaltstrike隐藏
2024-11-13🌱湖州: ⛅️ 🌡️+20°C 🌬️↖19km/h
修改证书
参考链接:https://blog.csdn.net/weixin_42282667/article/details/123356104
下载配置cloudflare的证书
选择自己的域名,然后点击配置

将加密方式修改成full

创建证书

创建一个新的证书
点击创建

将生成的证书和私钥储存好

生成store格式的证书对
将上面保存的证书储存到cloudflare.pem文件中
将私钥保存到cloudflare.key中
生成keystore文件
使用openssl将pem证书和key私钥导出为P12格式的证书
1 | openssl pkcs12 -export -in pem证书 -inkey key私钥 -out p12文件 -name 域名 -passout pass:密码 |
- 使用keytool生成store格式的证书对生成成功,查看store文件的信息
1
2
3
4keytool -importkeystore -deststorepass pass -destkeypass pass -destkeystore store文件 -srckeystore P12格式证书 -srcstoretype PKCS12 -srcstorepass pass -alias 域名
keytool -importkeystore -deststorepass csissohard -destkeypass csissohard -destkeystore clouflare.store -srckeystore cloudflare.p12 -srcstoretype PKCS12 -srcstorepass csissohard -alias your-domain1
2keytool -list -v -keystore clouflare.store
# 要求输入的密码就是自己设置的
cs证书配置
cs启动时会加载一个默认的配置文件,里面配置了证书文件、证书密码、心跳时间等等。配置文件中还可以修改特定的请求和响应让cs的通信在流量中看起来更像合法的请求。
要在teamserver使用另外的keystore证书文件,还需要重新写个配置文件(profile)引用证书。CS profile文件地址:https://github.com/rsmudge/Malleable-C2-Profiles/
https Beacon的证书配置如下:
1 | https-certificate { |
因为我是cs4.9,所以直接下载上面网站的对应的版本的文件即可
- 修改完成后,可以用自带的c2lint检查配置文件是否正确,只要不报错就可以正常使用
1 | ./c2lint 1.profile |
我的c2lint出问题了,一直报错
- 修改teamserver的证书

证书名称和密码修改一下即可
使用cloudflare的cdn隐藏c2的ip(已失效)
使用cloudflare绑定域名,并且解析A我们的vps的IP
点击对应的域名,然后找到caching中的configuration,打开开发模式
打开页面规则,添加如下的规则
在pofile中的如下位置添加如下的headerheader "Content-Type" "application/*; charset=utf-8"
在pofile中的如下位置添加如下的header,这个设置可以获得上线主机的真实IPset trust_x_forwarded_for "true";
经过测试这种方法已经失效,我能成功上线,但是一会就会掉线,而且一直无法执行命令,不知道是否是我的操作有误,欢迎交流学习
使用nginx和Certbot隐藏
下载nginx和Cerbot
1 | apt install nginx -y |
配置nginx
Nginx 配置文件通常在 /etc/nginx/sites-available/default
1 | server { |
- 一般是会新建一个配置文件
/etc/nginx/sites-available/your-domain.conf
1 | server { |
- 创建符号链接以启用配置
1 | sudo ln -s /etc/nginx/sites-available/your-domain.conf /etc/nginx/sites-enabled/ |
申请证书
使用 Certbot 为域名生成证书
1
2certbot certonly --standalone -d teamserver.example.com
sudo certbot --nginx -d teamserver.example.com自动续期证书: Certbot 会自动设置续期任务,检查是否运行
1 | sudo systemctl list-timers | grep certbot |
- 重启nginx
1
sudo systemctl restart nginx
感觉这种方法配置太麻烦了,而且只设置了一个反代,作用好像不是很大,弃用弃用!!!
使用RedGuard隐藏C2(推荐)
项目地址
https://github.com/wikiZ/RedGuard/blob/main/doc/README_CN.md
我是直接下载好编译好的版本,然后赋予执行权限
1 | chmod +x ./RedGuard&&./RedGuard |
这个项目相当于是一个有着防火墙功能的nginx,它默认将80端口转发到本地的8080端口,将443端口转达到本地的4433端口
随机生成了一个证书,可以修改成自己的证书,我是用的是cloudflare的证书,将它的格式改成ca.key和ca.cert的格式即可
起到了一定的隐藏作用,防止我们的vps被标记和攻击,还是非常有作用的
其他的参考我的文章:RedGuard的使用方法
域前置技术
参考:
https://cloud.tencent.com/developer/article/1785562
https://blog.csdn.net/q20010619/article/details/122001830
前提:配置好了dns解析,并且将域名托管到cloudflare,这里使用免费的计划
使用cloudflare的话访问我们的域名就会先转到cloudflare的cdn,通过cdn交流
然而我们可能和一个高信誉的域名使用同一个cdn的ip,它使用http头的host来判断是哪一个域名需要加速
- 首先超级ping我们的域名,收集解析的cdn的ip
- 反查cdn的ip的网站,就能找到和我们使用同一个ip加速的网站,找一个信誉度高的
- 测试方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
104.21.72.159 tset.com
172.67.152.185
124.236.16.201
显示我们网站的内容
curl 34.107.221.82 -H "Host: you-domain" -v
显示高信誉的网站的内容
curl 34.107.221.82 -H "Host: test.com" -v
显示高信誉的网站的内容
curl you-domain -H "Host: test.com" -v
然后cobaltstrike配置监听器的时候将所有的cdn的ip地址都添加到HTTP Hosts
将HTTP Host(Stager)填高信誉的域名xjzhw.com
然后填写好上线的端口HTTP Port(C2)
监听端口不填的话就是上线的端口HTTP Port(Bind)
host Header填自己的域名地址
- 修改profile文件中所有get和post请求的host为自己的域名
然后注意各个cdn厂商支持的端口,cloudflare的htp协议默认是支持80、8080、2095等,https协议默认支持443、2096等
2024-12-12 但是经过我的实验,cloudflare现在好像是做了限制,不能直接使用这个cdn来隐藏c2的流量了,主机能够上线,但是一会儿就断线了,命令也执行不了
其他的厂商的cdn没有测试过,以后有机会再尝试下





