news 2026/6/14 23:32:14

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/6/15 14:37:31

年终拆解:爆火的AI Coding Agent是什么?有哪些“坑”?

年终拆解&#xff1a;爆火的AI Coding Agent是什么&#xff1f;有哪些“坑”&#xff1f; 学术头条 2025年12月29日 16:13 北京 如今的代码智能体&#xff08;coding agents&#xff09;&#xff0c;可以连续数小时参与软件项目开发&#xff0c;在人类监督下完成应用程序编写、…

作者头像 李华
网站建设 2026/6/14 17:48:47

视频信息处理思路归纳

D455 采帧 → 原始场景帧(含轮廓观测列表) → 点簇分割/增强 → 点簇增强结果 → 结构体_存在观测 → 场景管理写入存在/特征 关键在于&#xff1a;把“轮廓观测”和“点簇分割”的融合点固定在一个位置&#xff0c;否则你会出现两套并行分支&#xff08;轮廓一路、点簇一路&a…

作者头像 李华
网站建设 2026/6/14 6:18:33

永磁同步电机PMSM全速域无速度传感器控制探秘

永磁同步电机PMSM全速域无速度传感器&#xff0c;&#xff08;高频注入加参考模型法&#xff0c;滑模观测&#xff09;。 低速域阶段采用高频注入&#xff0c;高速度采用模型法的观测方式。 提供参考资料在永磁同步电机&#xff08;PMSM&#xff09;的控制领域&#xff0c;实现…

作者头像 李华
网站建设 2026/6/6 12:02:25

Java程序员如何系统的学习Spring全家桶?

Spring是我们Java程序员面试和工作都绕不开的重难点。很多粉丝就经常跟我反馈说由Spring衍生出来的一系列框架太多了&#xff0c;根本不知道从何下手&#xff1b;大家学习过程中大都不成体系&#xff0c;但面试的时候都上升到源码级别了&#xff0c;你不光要清楚了解Spring源码…

作者头像 李华
网站建设 2026/6/15 15:16:37

2026趋势:低代码AI数据分析,正让掌握它的程序员成为企业决策的“关键力量”!

当AI遇见数据分析 在数字化转型日益深入的今天&#xff0c;企业积累的数据量呈指数级增长。这些数据蕴藏着推动业务优化和决策升级的关键信息。AI数据分析正是通过人工智能技术处理海量数据、挖掘深层价值的解决方案。像FineBI这类结合AI能力的数据分析产品&#xff0c;正在帮助…

作者头像 李华