Logo
Overview

Cobalt Strike主机隐藏

May 31, 2025

前几天找资料看到cobalt strike可以通过nginx代理,隐藏主机之类的。想着试一试,后面搜一下还能走cloudflare cdn进一步隐藏。折腾一天之后有了这篇。

#0 禁ping

echo "net.ipv4.icmp_echo_ignore_all = 1" > /etc/sysctl.conf
sysctl -p

#1 Cobalt Strike 改端口

尽量高一点,我这里开的是60045

#2 添加Listener

添加一个https beacon,配置如下:

#3 安装nginx,修改配置:

apt install nginx

使用这个文件生成nginx配置文件:

python3 cs2nginx.py -i ../jquery-c2.4.5.profile -c https://127.0.0.1:59433 -r https://google.com -H Domain

保存到/etc/nginx/nginx.conf

#4 添加ssl

用cloudflare的源服务器证书

然后加到nginx去

listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/nginx/certs/xxx.pem;
ssl_certificate_key /etc/nginx/certs/xxx.key;
ssl_session_cache shared:le_nginx_SSL:1m; # managed by Certbot
ssl_session_timeout 1440m; # managed by Certbot
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # managed by Certbot
ssl_prefer_server_ciphers on; # managed by Certbot

顺便开mtls验证client,其他只给cloudflare访问,其他的也不许

证书从此处下载。

ssl_client_certificate /etc/nginx/certs/origin-ca.pem;
ssl_verify_client on;

这时通过ip访问会出现400错误。

#5 修改Header

通过cloudflare cdn进行的请求中,真实ip在CF-Connecting-IP头中。

于是添加一条

real_ip_header CF-Connecting-IP;

上线ip就显示为真实ip了

#6 端口关闭

只开80, 443 + ssh + teamserver端口,减少被扫描到的可能性。

🥲

谨慎操作iptables,防止救砖火葬场!!!

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 60045 -j ACCEPT

#-1 完成

现在下马后,暴露面只有一个域名。如果域名也很重要,可以用worker再代理一层。但是我这个域名是本来没啥用的,也就无所谓了。

comment

留言 / 评论

如果暂时没有看到评论,请点击下方按钮重新加载。