海南省网站建设_网站建设公司_定制开发_seo优化
2025/12/29 16:52:38 网站建设 项目流程

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 等

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询