news 2026/4/8 11:46:43

Cobalt Strike 中的 Aggressor Script(.cna)与 Malleable C2 Profile 详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Cobalt Strike 中的 Aggressor Script(.cna)与 Malleable C2 Profile 详解

Cobalt Strike 是红队演练领域的顶级商业工具,其核心优势在于高度可定制性。主要通过Aggressor Script(文件扩展名 .cna)和Malleable C2 Profile(文件扩展名 .profile)实现。前者主要扩展客户端功能和自动化操作,后者主要重塑 Beacon 的网络通信和内存行为。

一、Aggressor Script(.cna 脚本)详解

Aggressor Script 是 Cobalt Strike 内置的脚本语言(基于 Sleep 语言),用于扩展客户端(操作员界面)的功能。它可以自动化任务、自定义菜单、修改输出格式、创建机器人等。

主要用途

  • 自动化 Beacon 上线后任务(如枚举、提权)。
  • 添加右键菜单、键盘快捷键。
  • 高亮输出、自动记笔记、事件通知。
  • 集成第三方工具(如 Rubeus、PowerView)。
  • 创建虚拟红队机器人(headless agscript)。

加载方式

图形客户端:Cobalt Strike → Script Manager → Load/Unload/Reload。
自动加载:将 .cna 放入 ~/.cobaltstrike/scripts/ 目录,客户端启动时自动加载。
Headless 模式:使用 agscript 命令行工具加载脚本,实现无界面自动化。

在国内流行的 Cobalt Strike 整合包,目录通常被人为分为clientserver两个文件夹,每个文件夹下都有plugins子目录,用于存放 .cna 脚本。

典型结构示例:

cs_kunkun/ ├── client/ │ └── plugins/ │ ├── CobaltStrike_CNA-main/ │ ├── CrossC2Kit/ │ ├── LSTAR-master/ │ └── CrossC2-GithubBot-2023-xx-xx.cna └── server/ ├── plugins/ │ ├── WeChatPush.cna │ ├── antiVirusCheck-master/ │ ├── CS-auto_inject-BOF-main/ │ └── CS-AutoPostChain-main/ └── tools/ ├── ExternalC2-master/ └── Malleable-C2-Randomizer-master/

这种 client/server 分离的模式并非官方设计,而是打包者为了方便实战管理而人为划分

  • client/plugins中的脚本:建议在图形客户端中加载,主要用于扩展操作界面、菜单、交互式功能(如 CrossC2 生成跨平台 Beacon、LSTAR 横向移动菜单)。
  • server/plugins中的脚本:建议在Team Server 同机器上使用 agscript(headless 模式)长期运行,实现“服务器端自动化”,常见功能包括:
    • WeChatPush.cna:新 Beacon 上线时自动推送微信/企业微信/飞书通知。
    • antiVirusCheck-master:自动检测目标杀软并调整策略。
    • 自动 BOF 注入、自动横向链等后台任务。

常用配置项

.cna 脚本中“配置项”通常指脚本内部的全局变量(用$%定义),许多社区脚本会通过对话框暴露这些变量供用户调整。以下是常见的配置项:

配置项变量类型详细解释常见值/示例所属脚本示例
$enable_initial_tasks布尔是否启用 Beacon 首次上线自动任务true/falseBeacon_Initial_Tasks.cna
$initial_commands@autorun_commands数组/列表上线后自动执行的命令列表@(“powershell whoami”, “net group ‘Domain Admins’ /domain”)Beacon_Initial_Tasks.cna
$HIGHLIGHT_DURATION整数(毫秒)Beacon 高亮持续时间(如新上线高亮)5000 ~ 30000Highlight_Beacons.cna
%HIGHLIGHTS哈希表定义高亮事件及颜色(key: 事件, value: 颜色代码)%HIGHLIGHTS = (initial => “\c4”, output => “\c3”)Highlight_Beacons.cna
$sleep_time/$beacon_sleep整数(秒)建议 Beacon sleep 时间(脚本可自动设置)60, 300, 3600多种自动化脚本
$jitter整数(%)Beacon 休眠抖动百分比20 ~ 50多种自动化脚本
$spawnto_x64/$spawnto_x86字符串Beacon spawn 新进程路径(用于进程注入)“%windir%\syswow64\rundll32.exe”进程注入相关脚本
$note_on_checkin布尔/字符串上线时自动为 Beacon 添加 note(如时间戳、主机信息)true 或自定义格式beaconid_note.cna
$opsec_profiles布尔/列表启用 OPSEC 限制,禁止高风险命令执行true 或命令黑名单OPSEC Profiles.cna
$timestamp_format字符串自定义 Beacon 输出时间戳格式“[%Y-%m-%d %H:%M:%S]”输出美化脚本
$USE_UNSAFE_ENCODEDCOMMAND_AND_IEX整数PowerShell 执行方式(0: 安全, 1: 自定义, 2: 默认)0 ~ 2PowerShell 相关脚本

这些变量通常在脚本头部定义,并在on ready或菜单中通过bdialog/drow_checkbox等函数创建配置对话框。

推荐社区脚本仓库

  • https://github.com/bluscreenofjeff/AggressorScripts
  • https://github.com/mgeeky/cobalt-arsenal
  • https://github.com/harleyQu1nn/AggressorScripts

二、Malleable C2 Profile 详解

Malleable C2 Profile 是 Cobalt Strike 的核心伪装机制,使用一种领域特定语言(DSL)重定义 Beacon 的网络流量和内存行为,使流量伪装成正常应用(如 Amazon、jQuery),规避签名检测。

主要用途

  • 改变 HTTP/S URI、Header、User-Agent、参数。
  • 控制 sleep/jitter、进程注入、内存混淆。
  • 模拟真实 APT 流量。

常用配置项

Profile 分为全局选项、http-get、http-post、http-stager、stage、process-inject、post-ex 等块。

全局选项
选项类型/值详细解释推荐值/示例
set sleeptime字符串(毫秒)Beacon 默认休眠时间(check-in 间隔)“60000” (60秒)
set jitter整数(%)休眠时间抖动百分比,避免规律流量“20” ~ “50”
set useragent字符串默认 User-Agent“Mozilla/5.0 (Windows NT 10.0; Win64; x64) …”
set spawnto_x64字符串x64 Beacon spawn 临时进程路径“%windir%\sysnative\rundll32.exe”
set spawnto_x86字符串x86 Beacon spawn 临时进程路径“%windir%\syswow64\rundll32.exe”
set pipename字符串SMB 命名管道模板(#### 被随机数字替换)“msagent_####”
set sleep_mask布尔启用 Beacon 休眠时内存混淆(规避内存扫描)“true”
set obfuscate布尔启用内存中 Beacon 代码混淆“true”
http-get / http-post / http-stager 块
选项(在 client/server 子块中)类型详细解释示例
set uri字符串(空格分隔多个)Beacon 使用/服务器绑定的 URI 路径“/jquery-3.3.1.min.js /api/v1/news”
set verb字符串HTTP 方法(GET/POST)“GET” 或 “POST”
header字符串添加/移除 HTTP Headerheader “Accept” “text/html,/”;
parameter/id/output字符串数据存放位置(parameter、header、cookie 等)parameter “id”; header “Cookie”;
metadata / task变换函数数据编码/变换(如 base64、netbios、prepend/append 等)base64; prepend “session=”;
printserver 输出原始数据(无额外包装)print;
stage 块(Payload 加载器)
选项详细解释
set cleanup加载后清理内存痕迹
set userwx允许 RWX 内存权限(规避某些 EDR)
process-inject 块(进程注入)
选项详细解释
set allocator注入内存分配方式(VirtualAllocEx 等)
set startrwx/set userwx权限设置
transform-x64 / transform-x86注入前 shellcode 变换(如 xor、base64)
post-ex 块(后利用行为)
选项详细解释
set amsi_disable禁用 AMSI
set keylogger启用键盘记录模式
HTTPS 支持
https-certificate { set keystore "keystore.jks"; set password "123456"; }

Malleable C2 操作指南

  1. 创建/编辑:新建 .profile 文件,从官方示例(如 amazon.profile)修改。
  2. 验证:使用./c2lint your.profile检查语法和问题。
  3. 加载:启动 teamserver 时指定./teamserver <IP> <password> /path/to/profile.profile
  4. 查看当前:客户端 Help → Malleable C2 Profile
  5. 推荐资源
    • 官方参考:https://github.com/Cobalt-Strike/Malleable-C2-Profiles
    • 详细指南:https://github.com/threatexpress/malleable-c2
    • 随机生成器:C2concealer 等工具

三、.cna 与 Malleable C2 的区别

维度Aggressor Script (.cna)Malleable C2 Profile (.profile)
作用范围客户端(UI、自动化)Beacon Payload(网络、内存)
加载时机动态(Script Manager)静态(teamserver 启动时)
配置重点变量、事件钩子、菜单数据变换、Header、URI、sleep 等
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/3 8:10:41

如何在Windows和Linux上使用PyTorch-CUDA-v2.7镜像进行GPU训练

如何在 Windows 和 Linux 上使用 PyTorch-CUDA-v2.7 镜像进行 GPU 训练 在深度学习项目中&#xff0c;最让人头疼的往往不是模型调参&#xff0c;而是环境配置——明明代码没问题&#xff0c;却因为 CUDA 版本不匹配、驱动缺失或依赖冲突导致 torch.cuda.is_available() 返回 …

作者头像 李华
网站建设 2026/4/8 10:46:54

Transformer多头注意力实现细节

Transformer多头注意力实现细节 在构建现代大语言模型的今天&#xff0c;一个核心挑战是如何让模型真正“理解”文本中复杂而微妙的语义关系。传统的循环神经网络虽然擅长处理序列数据&#xff0c;但其固有的顺序计算特性严重限制了训练效率&#xff0c;更难以捕捉长距离依赖。…

作者头像 李华
网站建设 2026/4/1 16:21:53

YOLOv11模型训练实战:结合PyTorch-CUDA-v2.7实现高效推理

YOLOv11模型训练实战&#xff1a;结合PyTorch-CUDA-v2.7实现高效推理 在自动驾驶的感知系统中&#xff0c;一帧图像需要在百毫秒内完成数十个目标的精确定位&#xff1b;在智能工厂的质检线上&#xff0c;每分钟上千件产品要被实时筛查缺陷——这些场景背后&#xff0c;都离不开…

作者头像 李华
网站建设 2026/4/8 9:59:11

Transformers库结合PyTorch使用指南:Hugging Face模型迁移

Transformers库结合PyTorch使用指南&#xff1a;Hugging Face模型迁移 在深度学习项目中&#xff0c;最让人头疼的往往不是模型设计本身&#xff0c;而是环境配置——“在我机器上能跑”成了团队协作中的经典难题。尤其是当你想快速微调一个BERT模型做中文情感分析时&#xff0…

作者头像 李华
网站建设 2026/3/30 23:10:43

解决wslregisterdistribution failed问题:顺利运行PyTorch on WSL2

解决 wslregisterdistribution failed 问题&#xff1a;顺利运行 PyTorch on WSL2 在深度学习开发中&#xff0c;一个稳定、高效且支持 GPU 加速的环境是项目成功的基础。许多开发者选择在 Windows 上使用 WSL2&#xff08;Windows Subsystem for Linux 2&#xff09;来运行 P…

作者头像 李华
网站建设 2026/4/1 5:16:58

大模型训练全流程解析:一文搞懂预训练、微调和强化学习!

我们或多或少都听说LLM大模型是先“训练”出来&#xff0c;然后再用于“推理”&#xff0c;那怎么理解这个“训练”过程&#xff1f; 是不是经常听说行业性场景中要使用垂域大模型&#xff0c;比通用大模型效果会更好&#xff0c;然后都说垂域大模型是“微调”出来的&#xff0…

作者头像 李华