Cobalt Strike Malleable C2

2023-11-15

郑重声明:
本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关。倡导维护网络安全人人有责,共同维护网络文明和谐。

Malleable C2 是 Cobalt Strike 的一项功能, 意为 “可定制的” 的 C2 服务器。Malleable C2 允许通过修改c2配置文件,改变 Beacon 与 C2 通信时的流量特征与行为,伪造正常的通信的流量,实现一些 IDS 入侵检测防火墙的绕过。

1 Malleable-C2-Profiles 简单使用

  1. 下载 Malleable-C2-Profiles

    rsmudge/Malleable-C2-Profiles: Malleable C2 is a domain specific language to redefine indicators in Beacon’s communication. This repository is a collection of Malleable C2 profiles that you may use. These profiles work with Cobalt Strike 3.x. (github.com)

    threatexpress/malleable-c2: Cobalt Strike Malleable C2 Design and Reference Guide (github.com)

  2. 调用 Malleable-C2-Profiles

    # ./teamserver [external IP] [password] [/path/to/my.profile]
    ./teamserver 192.168.0.2 qweasd malleable-c2/jquery-c2.4.0.profile
    
  3. 验证配置文件

    ./c2lint [/path/to/my.profile]
    

2 配置文件简析

2.1 配置文件结构

# this is a comment
set global_option "value";

protocol-transaction {
	set local_option "value";

	client {
		# customize client indicators
	}

	server {
		# customize server indicators
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-53gE9o3m-1643119046431)(C:\Users\f_carey\AppData\Roaming\Typora\typora-user-images\image-20220115120001682.png)]

2.2 配置文件文句

# 以 http-get 配置部分举例:
http-get {
	set uri "/foobar";
	client {
		metadata {
			base64;
			prepend "user=";
			header "Cookie";
		}
}

2.2.1 定义Beacon客户端发送的元数据

当客户端(Beacon payload)回连TeamServer时,它会发送关于自身的元数据给 Cobalt Strike。配置文件中,我们必须定义如何编码此元数据和如何使用我们的 HTTP GET 请求发送元数据:

序号 处理步骤 作用 数据
0 Start metadata
1 base64 Base64 编码数据 bWV0YWRhdGE=
2 prepend “user=” 在数据前添加"user="字符串 user=bWV0YWRhdGE=
3 header “Cookie” 转换后的元数据存储在Cookie的客户端 HTTP 头中

2.2.2 定义 Beacon 服务器提取元数据

假设我们的 Cobalt Strike 的 web 服务器收到了获取 URI
/foobar 的 GET 请求,需要提取元数据:

序号 处理步骤 作用 数据
0 Start
1 header “Cookie” 恢复存储在Cookie的客户端 HTTP 头中的数据 user=bWV0YWRhdGE=
2 prepend “user=” 移除客户端添加的"user="字符串 bWV0YWRhdGE=
3 base64 Base64 解码数据 metadata

2.2.3 数据转换语言

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nxdoArpC-1643119046432)(C:\Users\f_carey\AppData\Roaming\Typora\typora-user-images\image-20220115132058565.png)]

2.2.4 终止语句

数据转换始以终止语句结束。在一个数据转换中只能使用一个终止语句。这个语句告诉 Beacon 和它的服务器在哪里存储转换后的数据。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o6w0luIi-1643119046433)(C:\Users\f_carey\AppData\Roaming\Typora\typora-user-images\image-20220115132207189.png)]

2.2.5 特殊字符串

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fhUdm2Jc-1643119046433)(C:\Users\f_carey\AppData\Roaming\Typora\typora-user-images\image-20220115132912415.png)]

2.2.6 Headers 和 Parameters

添加额外信息到 beacon 中进行交互通信,解释器会按顺序解释你的 header 语句和 parameter 语句。格式如下:

# 强制 Beacon 在发出请求时向 /foobar URI 添加 bar=blah 参数。
http-get {
   client {
       parameter "bar" "blah";
       
# 添加一个header来让迷惑网络安全监控团队。此地无银。
http-get {
    server {
        header "X-Not-Malware" "I promise!";

2.2.7 参数选项

sleeptime:设置心跳包时间,单位为毫秒
jitter:默认的抖动因子(0-99%)
maxdns:通过DNS上传数据时的主机名最大长度(0-255)
uri:指定多个URI要以空格分隔。URI大小写敏感。Cobalt Strike在检入时将为每个主机随机分配URI。http-get和http-post之间的URL不能相同 ,所有URI必须唯一。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HzOmN1eg-1643119046434)(C:\Users\f_carey\AppData\Roaming\Typora\typora-user-images\image-20220115134312310.png)]

2.2.8 HTTP Staging

Beacon 是一个分阶段的 payload。这意味着 payload 被一个 stager 下载然后注入到内存中。使用C2 的 http-stager 自定义 HTTP staging 过程。

# uri_x86 选项设置用于下载 x86 payload stage 的 URI。
# uri_x64 选项设置用于下载 x64 payload stage 的 URI。
http-stager {
    set uri_x86 "/get32.gif";
    set uri_x64 "/get64.gif";
    
    # client 关键字定义 HTTP 事务的客户端。
    # 使用 parameter 关键字来给 URI 增加一个参数。
	# 使用 header 关键字来给 stager 的 HTTP GET 请求增加一个头字段。
    client {
        parameter "id" "1234";
        header "Cookie" "SomeValue";
    }
    
    # server 关键字定义 HTTP 事务的服务器端。
    # header 关键字给服务器的响应增加一个服务器头字段。
    # output 关键字是一个改变 payload stage 的数据转换。这个数据转换可能仅仅是在 stage 之前添加字符串或给 stage 增加字符串。使用 print 终止语句来关闭这个输出语句块。
    server {
        header "Content-Type" "image/gif";
        output {
            prepend "GIF89a";
            print;
        }
    }
}

2.2.9 HTTP 服务器配置

http-config {
    set headers "Date, Server, Content-Length, Keep-Alive, Connection, Content-Type";
    header "Server" "Apache";
    header "Keep-Alive" "timeout=5, max=100";
    header "Connection" "Keep-Alive”;
    set trust_x_forwarded_for "true";
    set block_useragents "curl*,lynx*,wget*";
}

# set headers:指定 HTTP 头字段在 HTTP 响应中传递的顺序,不在列表中的 HTTP 头会被添加到末尾。
# header:在 HTTP 响应中添加 HTTP 头,如果头的值已经在响应包中存在,则忽略该值。
# set trust_x_forwarded_for:决定 Cobalt Strike 是否使用 X-Forwarded-For HTTP 头来确定请求的远程地址。如果你的 Cobalt Strike 服务器在一个 HTTP 重定向器后,请使用此选项。
# set block_useragents:配置一个阻止或回复404UA 列表。默认阻止 curl, lynx, wget,具体见下图。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9l5nizgU-1643119046434)(C:\Users\f_carey\AppData\Roaming\Typora\typora-user-images\image-20220115141241986.png)]

2.2.10 自签名 SSL 证书

https-certificate {
    set CN       "www.bing.com";
    set O        "Microsoft Corporation";
    set C        "US";
    set L        "Redmond";
    set OU       "Microsoft IT";
    set ST       "WA";
    set validity "365";
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t3Pof7iN-1643119046435)(C:\Users\f_carey\AppData\Roaming\Typora\typora-user-images\image-20220115141832251.png)]

2.2.11 有效的 Beacon SSL 证书

https-certificate {
    set keystore "domain.store";
    set password "mypassword";
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HnA7IEYq-1643119046435)(C:\Users\f_carey\AppData\Roaming\Typora\typora-user-images\image-20220115142129665.png)]

制作有效的Beacon SSL 证书步骤

  1. 创建一个 Java Keystore文件

    keytool -genkey -keyalg RSA -keysize 2048 -keystore domain.store
    
  2. 生成 Certificate Signing Request (CSR),将生成的文件提交给你的 SSL 证书供应商,他们将验证你的身份并颁发证书

    $ keytool -certreq -keyalg RSA -file domain.csr -keystore domain.store
    
  3. 导入SSL 厂商提供你的 Root 和其他中间证书

    $ keytool -import -trustcacerts -alias FILE -file FILE.crt -keystore domain.store
    
  4. 安装域名证书

    $ keytool -import -trustcacerts -alias mykey -file domain.crt -keystore domain.store
    

3 流量分析

未经伪造的流量:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0JedWVxd-1643119046435)(C:\Users\f_carey\AppData\Roaming\Typora\typora-user-images\image-20220115155157005.png)]

经过伪造的流量:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qut2Ov0J-1643119046436)(C:\Users\f_carey\AppData\Roaming\Typora\typora-user-images\image-20220115151038883.png)]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cobalt Strike Malleable C2 的相关文章

  • 为什么这么多人自学黑客,但没过多久就放弃了(掌握正确的网络安全学习路线很重要)

    网络安全是一个 不断发展和演变 的领域 以下是一个 网络安全学习路线规划 旨在帮助初学者快速入门和提高自己的技能 基础知识 网络安全的 基础知识 包括 网络结构 操作系统 编程语言 等方面的知识 学习这些基础知识对理解网络安全的原理和技术至
  • 【网络安全】web漏洞-xml外部实体注入(XXE)

    web漏洞 xml外部实体注入 XXE 目录 web漏洞 xml外部实体注入 XXE 概念 危害 检测方法 利用方法 漏洞利用 xxe lab 有回显情况 无回显情况 pikachu靶场
  • 盘点那些年我们一起玩过的网络安全工具

    大家好 我是IT共享者 这篇文章给大家盘点那些年 我们一起玩过的网络安全工具 一 反恶意代码软件 1 Malwarebytes 这是一个检测和删除恶意的软件 包括蠕虫 后门 流氓 拨号器 间谍软件等等 快如闪电的扫描速度 具有隔离功能 并让
  • The Planets:Venus

    靶场下载 The Planets Venus VulnHub 信息收集 arp scan l Interface eth0 type EN10MB MAC 00 0c 29 43 7c b1 IPv4 192 168 1 60 Starti
  • ctypes:将字符串转换为函数?

    我正在读这篇文章在笔测试期间逃避防病毒软件的技巧 http pen testing sans org blog pen testing 2011 10 13 tips for evading anti virus during pen te
  • SpiderFlow爬虫平台 前台RCE漏洞复现(CVE-2024-0195)

    0x01 产品简介 SpiderFlow是新一代爬虫平台 以图形化方式定义爬虫流程 以流程图的方式定义爬虫 不写代码即可完成爬虫 是一个高度灵活可配置的爬虫平台 0x02 漏洞概述 SpiderFlow爬虫平台src main java o
  • 【网络安全】Web缓存欺骗攻击原理及攻防实战

    Web缓存欺骗是一种新的攻击方式 危害范围可扩大至各种技术及框架 本文仅分享Web缓存攻击知识 不承担任何由于传播 利用本文所发布内容而造成的任何后果及法律责任 文章目录 前言 攻击前提及原理 实例一 ChatGPT帐户接管漏洞 实例二 P
  • 5个步骤,教你瞬间明白线程和线程安全

    记得今年3月份刚来杭州面试的时候 有一家公司的技术总监问了我这样一个问题 你来说说有哪些线程安全的类 我心里一想 这我早都背好了 稀里哗啦说了一大堆 他又接着问 那你再来说说什么是线程安全 然后我就GG了 说真的 我们整天说线程安全 但是对
  • 线程安全(中)--彻底搞懂synchronized(从偏向锁到重量级锁)

    接触过线程安全的同学想必都使用过synchronized这个关键字 在java同步代码快中 synchronized的使用方式无非有两个 通过对一个对象进行加锁来实现同步 如下面代码 synchronized lockObject 代码 对
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • 2024年网络安全十10大发展趋势发布

    2023年网络安全十10大发展趋势发布 近日 中国计算机学会 CCF 计算机安全专委会中 来自国家网络安全主管部门 高校 科研院所 大型央企 民营企业的委员投票评选出2023年网络安全十大发展趋势 福利 趋势一 数据安全治理成为数字经济的基
  • Android开发中常见安全问题和解决方案

    前言 开发APP时经常有问到 APP的安全怎么保障 应用程序被PJ了怎么办 手机被人捡去了怎么办 特别在号称 安全第一 风控牛逼 的银行系统内 移动产品安全性仍被持有怀疑态度 那我们来总结下APP安全的方向和具体知识 1 应用程序安全 2
  • 远程控制软件安全吗?一文看懂ToDesk、RayLink、TeamViewer、Splashtop相关安全机制_raylink todesk

    目录 一 前言 二 远程控制中的安全威胁 三 国内外远控软件安全机制 ToDesk RayLink Teamviewer Splashtop 四 安全远控预防 一 前言 近期 远程控制话题再一次引起关注 据相关新闻报道 不少不法分子利用远程
  • 【网络安全】Facebook代码执行实现命令执行、敏感信息泄露

    部分网站开设编码练习 若安全配置不当 则代码执行将升级为操作系统命令注入 导致敏感信息泄露 本文仅分享命令执行相关知识 不承担任何由于传播 利用本文所发布内容而造成的任何后果及法律责任 未经许可 不可转载 文章目录 信息泄露 扩大危害 信息
  • 你的服务器还安全吗?用户数据是否面临泄露风险?

    一系列严重的网络安全事件引起了广泛关注 多家知名公司的服务器遭到黑客挟持 用户的个人数据和敏感信息面临泄露的风险 这些事件揭示了网络安全的脆弱性和黑客攻击的威胁性 提醒着企业和个人加强对网络安全的重视 一 入侵案例 1 1 蔚来数据泄露 1
  • 【安全】原型链污染 - Hackit2018

    目录 准备工作 解题 代码审计 Payload 准备工作 将这道题所需依赖模块都安装好后 运行一下 然后可以试着访问一下 报错是因为里面没内容而已 不影响 准备工作就做好了 解题 代码审计 const express require exp
  • 【安全】Java幂等性校验解决重复点击(6种实现方式)

    目录 一 简介 1 1 什么是幂等 1 2 为什么需要幂等性 1 3 接口超时 应该如何处理 1 4 幂等性对系统的影响 二 Restful API 接口的幂等性 三 实现方式 3 1 数据库层面 主键 唯一索引冲突 3 2 数据库层面 乐
  • 【安全】网络安全态势感知

    文章目录 一 态势感知简介 1 概念 2 形象举例 3 应具备的能力 二 为什么要态势感知 为什么网络安全态势感知很重要 三 态势感知系统的功能 四 如何评估态势感知的建设结果 五 什么是态势感知的三个层级 四 业界的态势感知产品 1 安全
  • 网络安全行业热门认证证书合集

    网络安全认证证书 就和学历一样是敲门砖 拿到了可以用不到 但不能没有 技术大牛可以没有证书 但普通人不能没有 1 初级入门 就像学历在职场上展示一个人的基本素养一样 网络安全认证证书可以展示一个人在网络安全领域具备的基本知识和技能 它为初学
  • Fedora 19 上的 Metasploit msfconsole method_missing

    我使用以下命令在 Fedora 19 上安装了metasploit这份来自 Fedora 的指南 http fedoraproject org wiki Metasploit 完成我运行的所有步骤后微软控制台并得到以下错误 usr loca

随机推荐

  • 6. Redis缓存设计与性能优化

    分布式缓存技术Redis 1 多级缓存架构 2 缓存设计 2 1 缓存穿透 2 2 缓存失效 击穿 2 3 缓存雪崩 2 4 热点缓存key重建优化 2 5 缓存与数据库双写不一致 3 开发规范与性能优化 3 1 键值设计 3 1 1 ke
  • spring系列文章(一) 关于IDEA中 add framework support没有web application选项的问题

    今天在回顾smm框架时发现一个问题 也就是在add framework support没有web application选项的问题 问题原因 说明你未完全添加web支持 但是系统认定你有web支持 为什么你没有web application
  • 云安全技术——Hyper-V虚拟化技术

    目录 5 1 了解Hyper V 5 2 安装Hyper V 5 3创建虚拟机 Hyper V虚拟化技术 实验目的 了解 Windows 虚拟化的概念 了解 Hyper V的背景及发展 了解 Hyper V 的功能特性 了解 Hyper V
  • 虚幻4学习笔记(5)开关门、使用蓝图开关门、按键和鼠标点击开关门

    开关门 开关门 前置准备 单独设置开关门 设置时间轴 定义蓝图类 完成开关门 针对中心轴 在物体中心 不在右下角的调整方法 世界坐标轴 绝对坐标轴 不会改变 设置按键开关门 鼠标开关门 B站UP谌嘉诚课程 https www bilibil
  • 华为招公关总监:接触近10位路透记者 年薪20万美元

    原标题 华为招聘公关总监 接触近10位路透资深记者 年薪高达20万美元 TechWeb 3月7日消息 据国外媒体报道 华为正在招聘公关总监 开出的年薪最高达20万美元 最近华为招聘人员接触了近10位路透资深记者 为公关总监职位招人 给其中几
  • openwrt x86 版安装纪实

    1 下载源码 已有编译环境 直接在ubuntu 中 git openwrt 源码 https dev openwrt org wiki GetSource git clone b chaos calmer git github com op
  • 成功解决 error: reference to ‘xx‘ is ambiguous

    解决问题 error reference to xx is ambiguous 解决思路 1 错误代码 list int malloc sizeof int n 2 错误原因 翻译 错误 对 xx 的引用不明确 这句话翻译出来后应该已经差不
  • 巅峰对决之Swarm、Kubernetes、Mesos

    转载自 http dockone io article 1138 感谢作者和编者的分享 编者的话 这篇文章对比了三大主流调度框架 Swarm Kubernetes和Mesos 文章不仅从理论上讨论了各个框架的优缺点 还从两个实际的案例出发
  • 20210429# Python解释器的下载和安装

    backTo 20210428 工具使用 https blog csdn net qq 17079255 article details 115357016 目录 目标 一 解释器的作用 二 下载Python解释器 三 安装Python解释
  • 华为OD机试 - 数字字符串组合倒序(Java)

    题目描述 对数字 字符 数字串 字符串 以及数字与字符串组合进行倒序排列 字符范围 由 a 到 z A 到 Z 数字范围 由 0 到 9 符号的定义 作为连接符使用时作为字符串的一部分 例如 20 years 作为一个整体字符串呈现 连续出
  • 精选案例

    顺应 十四五 规划中关于 加快金融机构数字化转型 要求 中国人民银行印发了 金融科技发展规划 2022 2025年 近几年来 金融行业牢牢占据着国内产业数字化转型市场投入的榜首位置 IDC调查显示 2022上半年 中国金融云市场规模达到34
  • 实现内存的整页分配

    1 位图和内存池 位图 位图中的一位表示物理内存中的一页是否被分配 API见blog 位图API 内存池 建立内存池对位图进行操作 分配页内存 在分页机制下有虚拟和物理两种地址 分别为了管理 需要创建虚拟内存地址池和物理内存地址池 内存池
  • 2022蓝桥杯省赛b组补题[九进制转十进制],[顺子日期],[刷题统计],[ 修剪灌木]

    九进制转十进制 九进制转十进制 蓝桥云课 lanqiao cn 代码 include
  • RTMP/RTP/RTSP/RTCP的区别

    简介 用一句简单的话总结 RTSP发起 终结流媒体 应用层 RTP传输流媒体数据 传输层 RTCP对RTP进行控制 同步 传输层 之所以以前对这几个有点分不清 是因为CTC标准里没有对RTCP进行要求 因此在标准RTSP的代码中没有看到相关
  • lapack c语言,Visual C ++ 2010和Lapack,Blas库(Visual C++ 2010 and Lapack, Blas libraries)

    Visual C 2010和Lapack Blas库 Visual C 2010 and Lapack Blas libraries 我想使用Blas和Lapack库来使用一些rutines 但我不知道如何在Visual C 2010使用它
  • word2016如何插入目录以及页码

    不废话 直接写入步骤 具体步骤如下 插入目录 第一步 切换到视图 在视图页面点击大纲视图 第二步 左上角设置各个标题的级别 如下 分别点击引用 目录 选择一个即可设置好目录 第二步的图片 从第二页插入页码 双击调出页眉页脚 设置页码格式 起
  • 刃边法计算MTF(ESF、LSF、PSF)

    MTF 调制传递函数 评价一个成像系统目前主流的办法主要有三种TV line检测 MTF检测 和SFR检测 MTF是Modulation Transfer Function的英文简称 中文为调制传递函数 是指调制度随空间频率变化的函数称为调
  • 自学网络安全究竟该从何学起?

    一 为什么选择网络安全 这几年随着我国 国家网络空间安全战略 网络安全法 网络安全等级保护2 0 等一系列政策 法规 标准的持续落地 网络安全行业地位 薪资随之水涨船高 未来3 5年 是安全行业的黄金发展期 提前踏入行业 能享受行业发展红利
  • IDEA旗舰版安装与概述

    1 IDEA介绍 IDEA 全称 IntelliJ IDEA 是java编程语言开发的集成环境 IntelliJ在业界被公认为最好的java开发工具 尤其在智能代码助手 代码自动提示 重构 JavaEE支持 各类版本工具 git svn等
  • Cobalt Strike Malleable C2

    郑重声明 本笔记编写目的只用于安全知识提升 并与更多人共享安全知识 切勿使用笔记中的技术进行违法活动 利用笔记中的技术造成的后果与作者本人无关 倡导维护网络安全人人有责 共同维护网络文明和谐 Cobalt Strike Malleable