CobaltStrike特征隐藏
字数 923 2025-08-05 11:39:40
CobaltStrike特征隐藏技术详解
前言
Cobalt Strike(简称CS)是一款强大的渗透测试工具,但由于其广泛使用,其默认特征已被各类安全设备(WAF、IDS等)标记。本文详细介绍如何通过多种方法隐藏CS的特征,避免被检测。
CobaltStrike概述
Cobalt Strike是美国Red Team开发的渗透测试工具,具有:
- 多种协议主机上线方式
- 提权、凭据导出、端口转发、socket代理
- Office攻击、文件捆绑、钓鱼等功能
- 可调用Mimikatz等工具
- 支持多人协作
特征隐藏方法
1. 修改默认端口
编辑teamserver文件修改启动端口:
vim teamserver
将默认端口修改为不常见端口(如7896)
2. 去除证书特征
CS默认证书已被标记,需重新生成:
Linux下生成新证书
keytool -keystore cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias 360.com -dname "CN=US, OU=360.com, O=Sofaware, L=Somewhere, ST=Cyberspace, C=CN"
Windows下生成新证书
keytool -keystore cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias 360.com -dname "CN=US, OU=360.com, O=Sofaware, L=Somewhere, ST=Cyberspace, C=CN"
查看证书信息:
keytool -list -v -keystore cobaltstrike.store
3. 设置混淆配置文件
使用Malleable C2 Profile修改通信流量特征:
- 官方配置指南:https://www.cobaltstrike.com/help-malleable-c2
- 官方示例配置:https://github.com/rsmudge/Malleable-C2-Profiles
- 其他可用配置:https://github.com/xx0hcd/Malleable-C2-Profiles
检查配置文件有效性:
./c2lint malleable-c2/jquery-c2.4.2.profile
启动时指定配置文件:
./teamserver 服务器IP CS密码 混淆配置文件
4. 部署Nginx反向代理
配置Nginx隐藏监听端口:
- 编辑Nginx配置文件:
location ~*jquery {
if ($http_user_agent != "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko") {
return 404;
}
proxy_pass http://127.0.0.1:2095;
}
- 设置防火墙规则:
iptables -I INPUT -p TCP --dport 2095 -j DROP
iptables -I INPUT -s 127.0.0.1 -p TCP --dport 2095 -j ACCEPT
service iptables restart
5. HTTPS上线配置
使用自定义HTTPS证书:
- 从Cloudflare等获取合法证书
- 生成.store文件:
openssl pkcs12 -export -in /api.xxx.com/sss.pem -inkey /api.xxx.com/ssk.pem -out api.xxx.com.p12 -name api.xxx.com -passout pass:123456
keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore api.xxx.com -srckeystore api.xxx.com.p12 -srcstoretype PKCS12 -srcstorepass 123456
- 修改teamserver启动参数:
java -XX:ParallelGCThreads=4 -Dcobaltstrike.server_port=40120 -Djavax.net.ssl.keyStore=./api.xxx.com.store -Djavax.net.ssl.keyStorePassword=123456 -server -XX:+AggressiveHeap -XX:+UseParallelGC -classpath ./cobaltstrike.jar server.TeamServer $*
- 在Malleable C2 profile中添加证书配置:
https-certificate {
set keystore "api.xxx.com.store";
set password "123456";
}
其他注意事项
-
修改shellcode加密密钥可防止通过nmap脚本扫描:
nmap [ip][port] --script=grab_beacon_config.nse参考:Bypass cobaltstrike beacon config scan
-
使用强密码防止CS被暴力破解
-
定期更新特征隐藏配置,避免被新规则检测
通过以上方法综合应用,可有效隐藏CobaltStrike的特征,提高渗透测试的隐蔽性和成功率。