news 2025/12/29 16:51:20

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进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/29 16:48:15

PyTorch模型保存与加载最佳实践:兼容不同CUDA版本

PyTorch模型保存与加载最佳实践&#xff1a;兼容不同CUDA版本 在深度学习项目中&#xff0c;一个看似简单的操作——“把训练好的模型拿过来跑一下”——却常常让工程师陷入困境。你有没有遇到过这样的情况&#xff1f;同事发来一个 .pt 文件&#xff0c;在他的机器上运行得好好…

作者头像 李华
网站建设 2025/12/29 16:47:51

MKS Instruments 0190-76185

MKS Instruments 0190-76185 是 MKS Instruments 公司生产的一款工业设备组件或配件&#xff0c;具体用途可能与气体流量控制、压力测量或真空系统相关。该型号通常用于半导体制造、光伏产业或科研领域的精密仪器中。技术参数类型&#xff1a;可能为传感器、阀门或控制器模块。…

作者头像 李华
网站建设 2025/12/29 16:44:58

程序员平时都是CRUD开发工作,真的需要深入理解原理性的知识点吗?

性能优化可以说是我们程序员的必修课&#xff0c;如果你想要跳出CRUD的苦海&#xff0c;成为一个更“高级”的程序员的话&#xff0c;性能优化这一关你是无论无何都要去面对的。为了提升系统性能&#xff0c;开发人员可以从系统的各个角度和层次对系统进行优化。除了最常见的代…

作者头像 李华
网站建设 2025/12/29 16:41:55

Conda install mamba加速包管理

Mamba&#xff1a;重塑AI开发效率的Conda加速引擎 在人工智能实验室或云计算平台上&#xff0c;你是否经历过这样的场景&#xff1a;刚申请到一台全新的GPU服务器&#xff0c;满心期待地准备开始训练模型&#xff0c;却不得不先花费近一个小时——下载驱动、配置CUDA、安装PyTo…

作者头像 李华
网站建设 2025/12/29 16:41:27

SSH代理转发跨跳板机连接PyTorch节点

SSH代理转发跨跳板机连接PyTorch节点 在深度学习项目日益复杂、GPU资源集中化的今天&#xff0c;工程师常常面临一个看似简单却暗藏风险的操作&#xff1a;如何安全地从本地开发环境访问部署在内网的训练服务器&#xff1f;尤其当这些服务器只允许通过跳板机&#xff08;Bastio…

作者头像 李华
网站建设 2025/12/29 16:40:55

Docker network自定义PyTorch服务网络

Docker Network 自定义 PyTorch 服务网络 在现代 AI 工程实践中&#xff0c;一个常见的痛点是&#xff1a;模型在本地训练时一切正常&#xff0c;但部署到服务器或生产环境后却频频出错。问题往往不在于代码本身&#xff0c;而在于环境差异——CUDA 版本不匹配、cuDNN 缺失、Py…

作者头像 李华