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隐藏监听端口:

  1. 编辑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;
}
  1. 设置防火墙规则:
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证书:

  1. 从Cloudflare等获取合法证书
  2. 生成.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
  1. 修改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 $*
  1. 在Malleable C2 profile中添加证书配置:
https-certificate {
    set keystore "api.xxx.com.store";
    set password "123456";
}

其他注意事项

  1. 修改shellcode加密密钥可防止通过nmap脚本扫描:

    nmap [ip][port] --script=grab_beacon_config.nse
    

    参考:Bypass cobaltstrike beacon config scan

  2. 使用强密码防止CS被暴力破解

  3. 定期更新特征隐藏配置,避免被新规则检测

通过以上方法综合应用,可有效隐藏CobaltStrike的特征,提高渗透测试的隐蔽性和成功率。

CobaltStrike特征隐藏技术详解 前言 Cobalt Strike(简称CS)是一款强大的渗透测试工具,但由于其广泛使用,其默认特征已被各类安全设备(WAF、IDS等)标记。本文详细介绍如何通过多种方法隐藏CS的特征,避免被检测。 CobaltStrike概述 Cobalt Strike是美国Red Team开发的渗透测试工具,具有: 多种协议主机上线方式 提权、凭据导出、端口转发、socket代理 Office攻击、文件捆绑、钓鱼等功能 可调用Mimikatz等工具 支持多人协作 特征隐藏方法 1. 修改默认端口 编辑 teamserver 文件修改启动端口: 将默认端口修改为不常见端口(如7896) 2. 去除证书特征 CS默认证书已被标记,需重新生成: Linux下生成新证书 Windows下生成新证书 查看证书信息: 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 检查配置文件有效性: 启动时指定配置文件: 4. 部署Nginx反向代理 配置Nginx隐藏监听端口: 编辑Nginx配置文件: 设置防火墙规则: 5. HTTPS上线配置 使用自定义HTTPS证书: 从Cloudflare等获取合法证书 生成.store文件: 修改teamserver启动参数: 在Malleable C2 profile中添加证书配置: 其他注意事项 修改shellcode加密密钥可防止通过nmap脚本扫描: 参考:Bypass cobaltstrike beacon config scan 使用强密码防止CS被暴力破解 定期更新特征隐藏配置,避免被新规则检测 通过以上方法综合应用,可有效隐藏CobaltStrike的特征,提高渗透测试的隐蔽性和成功率。