news 2026/4/16 14:05:40

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/16 5:00:02

GitHub Actions自动化测试PyTorch项目的CI/CD配置方法

GitHub Actions 自动化测试 PyTorch 项目的 CI/CD 实践 在深度学习项目从实验走向生产的过程中&#xff0c;一个常被忽视但至关重要的环节是&#xff1a;如何确保每一次代码提交都不会破坏模型训练流程&#xff1f;尤其是在多开发者协作、频繁迭代的场景下&#xff0c;手动验证…

作者头像 李华
网站建设 2026/4/16 12:15:19

Anaconda配置PyTorch环境全攻略:支持CUDA加速的深度学习开发

Anaconda配置PyTorch环境全攻略&#xff1a;支持CUDA加速的深度学习开发 在人工智能项目快速迭代的今天&#xff0c;一个稳定、高效且开箱即用的深度学习环境&#xff0c;往往决定了从实验到落地的速度。许多开发者都经历过这样的场景&#xff1a;花费数小时甚至一整天&#xf…

作者头像 李华
网站建设 2026/4/16 12:13:08

无需手动配置!PyTorch-CUDA-v2.7开箱即用的AI开发环境

无需手动配置&#xff01;PyTorch-CUDA-v2.7开箱即用的AI开发环境 在深度学习项目中&#xff0c;你是否曾经历过这样的场景&#xff1a;刚拿到一块新GPU&#xff0c;兴致勃勃准备训练模型&#xff0c;结果花了整整一个下午才搞定CUDA驱动、cuDNN版本和PyTorch的兼容性问题&…

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

算法题 转置矩阵

转置矩阵 问题描述 给定一个二维整数数组 matrix&#xff0c;返回 转置矩阵。 转置矩阵 是指将原矩阵的行变成列&#xff0c;列变成行后的新矩阵。 如果原矩阵是 m x n&#xff0c;那么转置矩阵就是 n x m转置矩阵中位置 (i, j) 的元素等于原矩阵中位置 (j, i) 的元素 示例&…

作者头像 李华
网站建设 2026/4/14 7:01:36

移动测试的效能革命:并行策略深度解析

在移动应用日均迭代1.2次的敏捷环境下&#xff08;Statista 2025&#xff09;&#xff0c;传统串行测试已成为交付瓶颈。本文提出设备/用例/混合三维并行模型&#xff0c;结合实证案例揭示&#xff1a;实施并行策略可使测试周期压缩67%&#xff0c;缺陷逃逸率降低42%&#xff0…

作者头像 李华