红队基础建设:隐藏你的C2 server
字数 1728 2025-08-26 22:11:15

红队基础建设:隐藏C2服务器的技术指南

1. 概述

本文档详细记录如何在不修改Cobalt Strike(CS) class文件的情况下,通过多种技术手段隐藏C2服务器的所有特征,包括被动式(受控端与C2交互泄露的地址)和主动式(扫描C2特征指纹)的信息隐藏。

2. Agent交互信息隐藏 - Domain Fronting技术

2.1 原理介绍

Domain Fronting利用CDN通过Host头进行流量转发的特性:

  • 当两个网站使用同一家CDN时,修改HTTP包的Host头字段可以将请求发送给Host指向的域名
  • 该技术可以隐藏真实的C2服务器地址

2.2 实施步骤

  1. 寻找合适的CDN

    • 选择同一CDN下的两个域名进行测试
    • 示例测试:
      • 请求yt.cmgou.cn返回302
      • 请求i4.cctcdn.com返回403
      • 修改Host头后,请求指向i4.cctcdn.com
  2. 利用CDN特性

    • 直接向CDN的IP发起请求,避免DNS查询暴露行踪
    • 借用高信誉域名(如带有CDN特征的域名)
  3. 特殊技巧

    • 当源站IP为某云服务器时,跳过对加速域名的校验
    • 可申请伪造高信誉域名(如test.microsoft.com)

2.3 Cobalt Strike配置

  1. 使用并修改Malleable-C2-Profile(如amazon.profile):

    • 修改Host为申请的域名(test.microsoft.com)
    • 示例配置要点:
      set useragent "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";
      http-get {
          set uri "/s/ref=nb_sb_noss_1/167-3294888-0262949/field-keywords=books";
          client {
              header "Host" "test.microsoft.com";
              metadata {
                  base64;
                  prepend "session-token=";
                  prepend "skin=noskin;";
                  append "csm-hit=s-24KU11BB82RZSYGJ3BDK|1419899012996";
                  header "Cookie";
              }
          }
      }
      
  2. 启动teamserver时指定Profile配置

  3. 添加Listener:

    • Host使用CDN地址
    • 端口选择申请域名时配置的(80或443)

2.4 Payload生成问题解决

CS默认payload generator会直接向Listener的host发起请求,不遵守C2 Profile设置:

  1. 问题表现

    • 发起四位随机字母路径的请求
    • 若返回内容不符合预期则异常
  2. 解决方案

    • 使用CACTUSTORCH项目生成脚本类agent
    • 该agent直接连接而不进行存活确认
    • 生成HTA类型agent示例

3. HTTP Listener交互信息隐藏

3.1 技术思路

利用流量转发隐藏服务端:

  • 使用Apache的mod_rewrite或Nginx反向代理
  • 根据特定特征判断URL重写
  • 符合特征的指向服务端,否则跳转其他网站

3.2 实施步骤

  1. 使用cs2modrewrite脚本生成web容器配置:

    • 设置C2SERVER为本地端口(如65534)
    • 将生成内容放入web目录的.htaccess文件
  2. 配置iptables:

    • 禁止端口65534的入口流量
    • 仅允许服务器自身访问teamserver的HTTP服务
  3. 添加Listener:

    • 登录teamserver添加HTTP Listener(端口65534)
    • Host设置为CDN的host
    • 通过脚本添加监听80端口的Listener(绕过UI限制)
  4. 生成agent:

    • 使用CACTUSTORCH选择80端口的http Listener生成agent
    • 忽略端口被占用的报错

4. 关键工具和资源

  1. 工具

    • CACTUSTORCH:生成不进行存活检查的agent
    • cs2modrewrite:生成web容器重写配置
  2. 参考资源

    • Malleable-C2-Profiles:https://github.com/harmj0y/Malleable-C2-Profiles
    • CACTUSTORCH项目
    • 流量重定向技术参考:https://bluescreenofjeff.com/2016-06-28-cobalt-strike-http-c2-redirectors-with-apache-mod_rewrite/

5. 注意事项

  1. 实战中避免使用奇怪域名,防止DNS请求暴露行踪
  2. 直接向CDN IP请求比使用域名更隐蔽
  3. 利用高信誉域名提高隐蔽性
  4. 注意CS默认payload generator的行为差异
  5. 确保iptables正确配置,限制对teamserver的直接访问

通过以上技术组合,可以有效隐藏C2服务器的应用层特征,并将C2置于多层保护之后,显著降低被检测和溯源的风险。

红队基础建设:隐藏C2服务器的技术指南 1. 概述 本文档详细记录如何在不修改Cobalt Strike(CS) class文件的情况下,通过多种技术手段隐藏C2服务器的所有特征,包括被动式(受控端与C2交互泄露的地址)和主动式(扫描C2特征指纹)的信息隐藏。 2. Agent交互信息隐藏 - Domain Fronting技术 2.1 原理介绍 Domain Fronting利用CDN通过Host头进行流量转发的特性: 当两个网站使用同一家CDN时,修改HTTP包的Host头字段可以将请求发送给Host指向的域名 该技术可以隐藏真实的C2服务器地址 2.2 实施步骤 寻找合适的CDN : 选择同一CDN下的两个域名进行测试 示例测试: 请求yt.cmgou.cn返回302 请求i4.cctcdn.com返回403 修改Host头后,请求指向i4.cctcdn.com 利用CDN特性 : 直接向CDN的IP发起请求,避免DNS查询暴露行踪 借用高信誉域名(如带有CDN特征的域名) 特殊技巧 : 当源站IP为某云服务器时,跳过对加速域名的校验 可申请伪造高信誉域名(如test.microsoft.com) 2.3 Cobalt Strike配置 使用并修改Malleable-C2-Profile(如amazon.profile): 修改Host为申请的域名(test.microsoft.com) 示例配置要点: 启动teamserver时指定Profile配置 添加Listener: Host使用CDN地址 端口选择申请域名时配置的(80或443) 2.4 Payload生成问题解决 CS默认payload generator会直接向Listener的host发起请求,不遵守C2 Profile设置: 问题表现 : 发起四位随机字母路径的请求 若返回内容不符合预期则异常 解决方案 : 使用CACTUSTORCH项目生成脚本类agent 该agent直接连接而不进行存活确认 生成HTA类型agent示例 3. HTTP Listener交互信息隐藏 3.1 技术思路 利用流量转发隐藏服务端: 使用Apache的mod_ rewrite或Nginx反向代理 根据特定特征判断URL重写 符合特征的指向服务端,否则跳转其他网站 3.2 实施步骤 使用cs2modrewrite脚本生成web容器配置: 设置C2SERVER为本地端口(如65534) 将生成内容放入web目录的.htaccess文件 配置iptables: 禁止端口65534的入口流量 仅允许服务器自身访问teamserver的HTTP服务 添加Listener: 登录teamserver添加HTTP Listener(端口65534) Host设置为CDN的host 通过脚本添加监听80端口的Listener(绕过UI限制) 生成agent: 使用CACTUSTORCH选择80端口的http Listener生成agent 忽略端口被占用的报错 4. 关键工具和资源 工具 : CACTUSTORCH:生成不进行存活检查的agent cs2modrewrite:生成web容器重写配置 参考资源 : Malleable-C2-Profiles:https://github.com/harmj0y/Malleable-C2-Profiles CACTUSTORCH项目 流量重定向技术参考:https://bluescreenofjeff.com/2016-06-28-cobalt-strike-http-c2-redirectors-with-apache-mod_ rewrite/ 5. 注意事项 实战中避免使用奇怪域名,防止DNS请求暴露行踪 直接向CDN IP请求比使用域名更隐蔽 利用高信誉域名提高隐蔽性 注意CS默认payload generator的行为差异 确保iptables正确配置,限制对teamserver的直接访问 通过以上技术组合,可以有效隐藏C2服务器的应用层特征,并将C2置于多层保护之后,显著降低被检测和溯源的风险。