Cobalt Strike---(2)

news2024/11/29 2:40:20

数据管理

     Cobalt Strike 的团队服务器是行动期间 Cobalt Strike 收集的所有信息的中间商。 Cobalt Strike 解析来 自它的 Beacon payload 的输出,提取出目标、服务和凭据。 如果你想导出 Cobalt Strike 的数据,通过 Reporting Export Data Cobalt Strike 提供两种选 项:把数据导出为 TSV XML 文件。 Cobalt Strike 客户端的导出数据功能会融合来自你当前连接的所 有团队服务器的数据。

目标

你可以通过 View → Targets 来与 Cobalt Strike 的目标的信息交互。这个标签页显示与目标表视图 相同的信息。

点击 Import 来导入一个带有目标信息的文件。Cobalt Strike 接受每行一个主机的 flflat 文本文件,也接受由 Nmap 生成的 XML 文件(-oX 选项)

Flat File 是一种包含没有相对关系结构的记录的文件。 这个类型通常用来描述文字处理、其他结 构字符或标记被移除了的文本。在此可以理解为「纯文本文件」。

点击 Add 按钮来给 Cobalt Strike 的数据模型添加新的目标。

这个对话框允许你向 Cobalt Strike 的数据库添加多个主机。在 Address (地址)字段指定一个 IP 地 址的范围或使用 CIDR 表示法来一次添加多个主机。在给数据模型添加主机时,按住 shift 可以使得 在点击 Save 之后仍保持这个对话框打开。 选择一个或多个主机然后单击右键来打开主机菜单。通过这个菜单你可以修改对主机的备注、设置它们的操作系统信息,或者从这个数据模型中移除主机。

服务

在一个 Target (目标)视图中,在一台主机上单击右键,并选择 Services (服务)。这会打开
Cobalt Strike 的服务浏览器。在这里你可以浏览服务,给不同的服务备注,也可以移除服务条目。

凭据 

通过 View Credentials 来与 Cobalt Strike 的凭据模型交互。点击 Add 按钮来给凭据模型添加一
条条目。同样的,你也可以按住 Shift 键来保持对话框打开并使得给模型添加新的凭据更方便。点击 Copy 来复制高亮的条目至你的剪贴板。使用 Export 来以 PWDump 格式导出凭据。

维持

Cobalt Strike 的数据模型将其所有的状态和状态元数据存储在 data/ 文件夹。 data/ 文件夹存在在你 运行 Cobalt Strike 团队服务器的那个文件夹里。 要清除 Cobalt Strike 的数据模型:停止团队服务器,删除 data/ 文件夹及其内容。当你下次启动团队 服务器的时候,Cobalt Strike 会重建 data/ 文件夹。 如果你想要存档数据模型,请停止团队服务器,然后使用你喜欢的程序来将 data/ 文件夹及其文件存储 在其他位置。要还原数据模型,请停止团队服务器,然后将旧内容还原到 data/ 文件夹。 通过 Reporting Reset Data 可以在不重启团队服务器的情况下重置 Cobalt Strike 的数据模型。

监听器和基础设施管理

     任何行动的第一步都是建立基础设施。就 Cobalt Strike 而言,基础设施由一个或多个团队服务器、重 定向器以及指向你的团队服务器和重定向器的 DNS 记录组成。一旦团队服务器启动并运行,你将需要 连接到它并将其配置为接收来自受害系统的连接。监听器就是 Cobalt Strike 中用来执行这种任务的机 制。
     一个监听器既是一个 payload 的配置信息,同时又是 Cobalt Strike 起一个服务器来接收来自这个 payload 的连接的指示。一个监听器由用户定义的名称、 payload 类型和几个特定于 payload 的选项组成.

监听器管理

     要管理 Cobalt Strike 的监听器,通过 Cobalt Strike Listeners 。这会打开一个标签页,列举出 所有你的配置的 payload 和监听器。

    按 Add 按钮来创建一个新的监听器。 当你创建一个监听器,确保你给他一个好记的名称。在 Cobalt Strike 的命令和工作流程中你需要使用此名称来引用此监听器。 要编辑监听器,选中一个监听器,然后按 Edit 。 要移除一个监听器,选中该监听器,然后按 Remove

 Cobalt Strike Beacon Payload

     最常见的情况是,你需要为 Cobalt Strike Beacon payload 配置监听器。 Beacon Cobalt Strike 的 payload ,用于建模高级攻击者。使用 Beacon 来通过 HTTP HTTPS DNS 出口网络。你也可以 通过控制经由命名管道和 TCP sockets 的对等( peer-to-peer Beacon 从而限制出口网络,只允许部 分主机直接回连。 Beacon 很灵活,支持异步通信模式和交互式通信模式。异步通信效率缓慢: Beacon 会回连团队服务器、下载其任务,然后休眠。交互式通信是实时发生的。 Beacon 的网络流量指标具有拓展性。可以使用 Cobalt Strike 的可拓展的 C2 语言来重新定义 Beacon 的通信。这允许你掩盖 Beacon 行动,比如使其流量看起来像其他的恶意软件,又或者将其流量掺入作为合法流量。

Payload Staging

   在很多攻击框架的设计中,解耦了攻击和攻击执行的内容。payload 就是攻击执行的内容。 payload 通常被分为两部分:payload stage 和 payload stager stager 是一个小程序,通常是手工优化的汇编指令,用于下载一个payload stage、把它注入内存,然后对其传达执行命令。这个过程被称为 staging (分阶段)。
    
     staging (分阶段)过程在一些攻击行动中是必要的。很多攻击中对于能加载进内存并在成功漏洞利用 后执行的数据大小存在严格限制。这会极大地限制你的后渗透选择,除非你分阶段传送你的后渗透payload。
  
    Cobalt Strike 在它的用户驱动攻击中使用 staging (分阶段)。大多数这类项目在 Attacks → Packages Attacks Web Drive - by 选项下。使用什么样的 stager 取决于与攻击配对的 payload 。比如, HTTP Beacon 有一个 HTTP stager DNS Beacon 有一个 DNS TXT 记录 stager 。 不是所有的 payload 都有 stager 选项。没有 stager Payload 不能使用这些攻击选项投递。

    如果你不需要 payload staging(分阶段),通过在你的 C2 拓展文件里把 host_stage 选项设为 false,你可以关闭这个选项。这会阻止 Cobalt Strike 在其 web DNS 服务器上托管 payload stage。这种设置有助于提升行为安全(避免反溯源),因为如果开启了 staging(分阶段),任何人都能连到你的服务器上,请求一个 payload、并分析它的内容,从而可以从你的 payload 配置中获取信息。

HTTP Beacon HTTPS Beacon

    默认设置情况下, HTTP HTTPS Beacon 通过 HTTP GET 请求来下载任务。这些 Beacon 通过 HTTP  POST 请求传回数据。你也可以通过 C2 拓展文件来极尽可能的控制这个 payload 的行为和流量指标。要起一个 HTTP HTTPS Beacon 监听器,通过 Cobalt Stike Listeners 。点击 Add 按钮,选择 Beacon HTTP 作为你的 payload 选项。

   按 [+] 来为 HTTP Beacon 增加一个或多个回连的主机。按 [ - ] 来移除一个或多个主机。按 [X] 来清除当前的主机。如果你有多个主机,仍然可以在此对话框中粘贴以逗号分隔的回连主机列表,这是可行的。
   HTTP Host(Stager) 字段控制 HTTP Beacon HTTP Stager 的主机。仅当你将此 payload 与需要显式 stager 的攻击配对时,才使用此值。
   通过 Profile 字段,你可以选择一个 C2 拓展文件变体。通过一个 C2 文件变体,你可以在一个文件中指定多个配置文件的变量。使用变体文件之后,你设置的每个 HTTP HTTPS 监听器会有不同的网络流量指标。
    HTTP Port(C2) 字段设置你的 HTTP Beacon 回连的端口。 HTTP Port(Bind) 字段指定你的 HTTP Beacon payload web 服务器绑定的端口。如果你要设置端口弯曲重定向器(例如,接受来自 80 或 443 端口的连接但将连接路由到团队服务器开在另一个端口上的连接,这样的重定向器),那么这些选项会很有用。
    如果 HTTP Host Header 值被指定了,会影响你的 HTTP stagers ,并通过你的 HTTP 通信。这个选项使得通过 Cobalt Strike 利用域名前置变得更加容易。 点击 HTTP Proxy 字段旁边的 ... 按钮来为此 payload 指定一个显式的代理配置。

     (Manual) Proxy Settings 对话框提供了多个选项来控制 Beacon HTTP HTTPS 请求的代理配置。Beacon 的默认行为是为当前的进程 / 用户上下文使用 Internet Explorer 代理配置。
    
     Proxy Type 字段配置了代理的类型。 Proxy Host Proxy Port 字段告诉 Beacon 代理在哪里运行。 Username Password 字段是可选的,这些字段指定了 Beacon 用来对代理进行身份验证的凭据。
      勾选 Ignore proxy settings ; use direct connection (忽略代理设置;使用直连)来强制Beacon 不通过代理尝试其 HTTP HTTPS 请求。 当你填写好代理配置之后,点击 Set 来更新 Beacon 对话框。点击 Reset 可以把代理配置重置为默认行为。
手动的代理设置仅影响 HTTP HTTPS Beacon payload stage ,不影响 payload stager

重定向器

     重定向器是位于你的目标网络和你的团队服务器之间的系统。任何去往重定向器的连接将转发到你的团队服务器进行处理。通过重定向器,可以为你的 Beacon payload 提供多个回连主机。使用重定向器还有助于提升行为安全,因为它会使溯源团队服务器的真实地址变得更加困难。
这个 C2 重定向器相当于位于团队服务器这个控制端和失陷主机之间的中转跳板。外界只能看到 重定向器(跳板),一旦重定向器暴露可以被随时抛弃,除非重定向器被反制,否则很难追踪到背后真正的控制者。
    Cobalt Strike 的监听器管理功能支持使用重定向器。当你设置一个 HTTP HTTPS Beacon 监听器的时候,简单的指定你的重定向器 IP (在 Host 字段填入)。 Cobalt Strike 不会验证这个信息。如果你提供的 host 不隶属于当前主机(不是团队服务器的 IP ),那么 Cobalt Strike 就假设它是重定向器。一种把服务器转变为重定向器的简单方法是使用 socat 。下面是一句 socat 语法,作用是:将 80 端口上的所有连接转发到位于 192.168.12.100 的团队服务器的80端口.
socat TCP4-LISTEN:80,fork TCP4:192.168.12.100:80

DNS Beacon

    DNS Beacon 是一个很棒的 Cobalt Strike 功能。这个 payload 使用 DNS 请求来将 Beacon 返回给你。 这些 DNS 请求用于解析由你的 Cobalt Strike 团队服务器作为权威 DNS 服务器的域名。 DNS 响应告诉 Beacon 休眠或是连接到团队服务器来下载任务。 DNS 响应也告诉 Beacon 如何从你的团队服务器下载任务。
    在 Cobalt Strike 4.0 及之后的版本中, DNS Beacon 是一个仅 DNS payload 。在这个 payload 中,没有 HTTP 通信模式。这是与之前的版本的产品不同的地方。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/402084.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS7自签SSL证书并配置nginx

一、生成SSL证书 1、安装依赖包 yum install -y openssl openssl-devel 2、生成私钥,会让你输入一个 4~2048 位的密码,你需要暂时记住这个密码 openssl genrsa -des3 -out server.key 2048 输入两遍相同的密码 3、生成CSR(Certificate Signing Request …

Postgresql-12.5 visual studio-2022 windows 添加pg工程并调试

pg内核学习,记录一下 文章目录安装包编译安装VS添加Postgresql工程调试源码安装包 (1)perl下载 https://www.perl.org/get.html (2)diff下载 http://gnuwin32.sourceforge.net/packages/diffutils.htm (…

23届非科班选手秋招转码指南

1.秋招情况介绍 1.1自我介绍 我是一名23届非科班转码选手,本硕均就读于某211院校机械专业,秋招共计拿下12份offer,包括大疆创新、海康威视、联发科技、理想汽车、中电28、阳光电源等各行业、各种性质企业的意向。主要的投递岗位为嵌入式软件…

若依微服务版在定时任务里面跨模块调用服务

第一步 在被调用的模块中添加代理 RemoteTaskFallbackFactory.java: package com.ruoyi.rpa.api.factory;import com.ruoyi.common.core.domain.R; import com.ruoyi.rpa.api.RemoteTaskService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springf…

【springmvc】执行流程

SpringMVC执行流程 原理图 1、SpringMVC常用组件 DispatcherServlet:前端控制器,不需要工程师开发,由框架提供 作用:统一处理请求和响应,整个流程控制的中心,由它调用其它组件处理用户的请求 HandlerMa…

Windows7,10使用:Vagrant+VirtualBox 安装 centos7

一、Vagrant,VirtualBox 是什么二、版本说明1、win7下建议安装版本2、win10下建议安装版本三、Windows7下安装1、安装Vagrant2、安装VirtualBox3、打开VirtualBox,配置虚拟机默认安装地址四、windows7下载.box文件,安装centos 71、下载一个.b…

拐点!新能源车交付均价首次「低于」燃油车,智能电动成新爆点

2023年开局,随着特斯拉打响新能源汽车市场的「价格战」首炮,除部分燃油车品牌(仍依赖自身多年的用户和品牌积累的溢价能力)没有跟进之外,几乎所有的新能源车型都在进行车型价格的下调。 而数据也在反映市场的拐点即将来…

深入理解Zookeeper的ZAB协议

ZAB是什么ZAB(Zookeeper Atomic Broadcast):Zookeeper原子广播ZAB是为了保证Zookeeper数据一致性而产生的算法(指的是Zookeeper集群模式)。它不仅能解决正常情况下的数据一致性问题,还可以保证主节点发生宕…

最全的论文写作技巧(建议收藏)

近10年来,笔者有幸多次参与教学论文的评审工作,在此,特将教学论文写作的步骤及相关问题整理汇总如下: 一、选定论题 (一)论题在文中的地位与作用 严格地讲,论文写作是从选定论题开始的。选题…

Android源码分析 - Parcel 与 Parcelable

0. 相关分享 Android-全面理解Binder原理 Android特别的数据结构(二)ArrayMap源码解析 1. 序列化 - Parcelable和Serializable的关系 如果我们需要传递一个Java对象,通常需要对其进行序列化,通过内核进行数据转发,…

这几个群,程序员可千万不要进!

震惊!某摸鱼网站惊现肾结石俱乐部! (图源V2EX) 无关地域、无关性别,各位程序员们在肾结石这个病上面有着出奇一致的反应。诸如此类的各种职业病在我们的生活中更是十分常见。 也可能是到年纪了,在办公室…

ATTCK v12版本战术介绍——提权(一)

一、引言在前几期文章中我们介绍了ATT&CK中侦察、资源开发、初始访问、执行、持久化战术理论知识及实战研究,通过实战场景验证行之有效的检测规则、防御措施,本期我们为大家介绍ATT&CK 14项战术中提权战术(一)&#xff0c…

计算机图形学09:二维观察之点的裁剪

作者:非妃是公主 专栏:《计算机图形学》 博客地址:https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩 文章目录专栏推荐专栏系列文章序一、二维观察基本…

设计模式4——行为型模式

行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它设计算法与对象间职责的分配。 行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为&…

[洛谷-P1272] 重建道路(树形背包DP)

[洛谷-P1272] 重建道路(树形背包DP)一、题目重建道路题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示样例解释限制与约定二、思路1、状态表示2、转移方程3、循环设计4、初末状态三、代码一、题目 重建道路 题目描述 一场可怕的地震后&…

计算机Ping命令使用详解

计算机Ping命令使用详解 在网络中 ping 是一个十分强大的 TCP/IP 工具。它的作用主要为: 1、用来检测网络的连通情况和分析网络速度 2、根据域名得到服务器 IP 3、根据 ping 返回的 TTL 值来判断对方所使用的操作系统及数据包经过路由器数量。 我们通常会用它来直接 ping ip 地…

uni-app api 获取系统信息(高、宽)用法及封装

uni-app提供了异步(uni.getSystemInfo)和同步(uni.getSystemInfoSync)的2个API获取系统信息 uniapp 官网解析地址 uni.getSystemInfo 异步获取系统信息 参数名类型必填说明successFunction是接口调用成功的回调failFunction否接口调用失败的回调函数completeFunction否接口…

腾讯混元AI大模型训练技术揭秘——太极AngelPTM

编者按:秉承“技术提效”理念,腾讯广告不断探索技术能力边界,全面升级广告系统,基于“一大平台、两大模型”持续精进创新研发,提升投放效率与投放效果,助力广告主实现高效的全域经营与生意增长。本篇文章是…

请介绍类加载过程,什么是双亲委派模型?

第23讲 | 请介绍类加载过程,什么是双亲委派模型? Java 通过引入字节码和 JVM 机制,提供了强大的跨平台能力,理解 Java 的类加载机制是深入 Java 开发的必要条件,也是个面试考察热点。 今天我要问你的问题是&#xff0…

ESP32驱动-红外寻迹传感器驱动

红外寻迹传感器驱动 1、红外寻迹传感器介绍 红外寻迹传感器具有一对红外线发射管与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,输出接口会输出一个数字信号(低电平或高电平,取决于电路…