freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

CALDERA—ATTCK自动化对抗框架
2022-01-25 17:24:08
所属地 四川省

"CALDERA" is a cyber security platform designed to easily automate adversary emulation, assist manual red-teams, and automate incident response. —— MITRE

0x00 关于CALDERA的前世

最近几年关于ATT&CK框架热度,简直是直冲云霄!谁都挡不住啊!那说到 ATT&CK这个框架,就不得不提一下这个神秘的组织了——MITRE,这个组织起源于二战时期的麻省理工学院(MIT)计算机实验室,成立于 1958 年,是一家非营利性公共,服务机构,为美国联邦政府提供工程和技术指导,包括国防情报、国土安全、网络安全、航空航天等等。而 ATT&CK 来源于 MITRE 研究项目 FMX(2010 年);当然我们熟知的 CVE 则由 MITRE 联合创始人 David E. Mannand Steven M. Christey 于 1999 年提出:《Towards a Common Enumeration of Vulnerabilities》,不得不说人家真牛啊!关于ATT&CK框架的具体内容,这里就不做详细的介绍了,网上一大堆资源,自己去看看。

CALDERA 这个框架也是 MITRE这个组织搞的,CALDERA这个框架的英文全称为 ( Cyber Adversary Language and Decision Engine for Red Team Automation),看不懂的兄弟们,没关系哈,简单点就是红队自动化工具,我们叫它 "破火山口"。到这里有的老哥们会说,红队测试的工具那么多,为啥这款如此的耀眼?别急 ! CALDERA 之所以牛,还在于 MITER 这个组织是基于 ATT&CK 框架推出的网络安全红蓝对抗框架,它可用于自动化红队行动手工红队行动自动化应急响应等攻防实践,接近于APT攻击 的行为模式。本文将对CALDERA 做一个详细的介绍。

0x01 关于CALDERA的组成和原理

CALDERA 框架由两个组件组成,一个是核心部分,另一是插件部分。

核心部分 主要包括 C2 命令控制服务器,REST API 接口,WEB接口,而 插件部分不限于GUI接口,Access,Atomic,Compass,Gameboard,Response等。

(不得不说一个好玩意儿,它是可以汇聚百川的资源,而插件部分就给了这个框架注入了持续不断的水源 !)

那它的实现原理是怎样的呢?别急,看下图:

C2 Server 即为安装运行 CALDERA 程序的服务器,默认开启 8888 端口进行监听;而 Agents 即为安装agent或shell 程序的主机,通过HTTPTCP网络协议会话与服务器进行通信。

Ability Adversary Operation Pliugins 中的 Ability 是一段具体的功能程序(TTPS), 而 Adersary(Profile)是一系列 Ability 集合,Operation 则是针对特定组特定的 Adversary 实现。

0x02 CALDERA环境的安装与功能介绍

Caldera项目地址:https://github.com/mitre/caldera

CALDERA 对环境配置要求:

  1. 操作系统: Linux 或 MacOS

  2. 浏览器:     Chrome

  3. 编程语言: Python 3.6.1 + (带有 PIP3)GoLang 1.13+

  4. 硬件要求: 8G 内存,双核 CPU (推荐)

安装命令:

git clone https://github.com/mitre/caldera.git --branch  3.1.0  (这里不推荐下载最新版,别问我为什么)

cd caldera

pip3 install -r requirements.txt

python3 server.py --insecure

可以看到如下页面,就已经成功了

然后直接去浏览器访问 http://127.0.0.1:8888/就可以看到 CALDERA 的页面了

登录页面默认有三个账号:

登录方用户名密码
Adminadminadmin
Redredred
Blueblueblue

登录上去后,就可以看到主页面了

下面我们来看看 CALDERA 的功能

大体上分为四个模块:Campaigns 活动模块,Plugins 插件模块 ,Advanced 高级模块,Administrative 管理模块

这里只介绍前两个主要模块

一,Campaigns 活动模块:

Campaigns 活动模块下又分为 3 个小模块:agentsadversaries(Abilitiesoperations

agents 代理

代理 是在特定时间间隔连接回 CALDERA 以获取指令的软件程序。代理简单理解就是受害者方,代理通过最初在代理安装时定义的联系方法与 CALDERA 服务器进行通信。而已安装的代理出现在“代理”对话框的 UI 中。代理人通过他们独特的爪子或爪印来识别。

如何部署代理?看图:

CALDERA 包括许多代理程序,每个程序都添加了独特的功能,在部署代理的时候,直接选择相应的代理和平台。

  1. Sandcat (54ndc47):一个 GoLang 代理,通过 SMB 联系人通过 HTTP、Git 或 P2P 进行通信

  2. Manx:一个 GoLang 代理,它通过 TCP 联系人进行通信并充当反向 shell

  3. Ragdoll:通过 HTML 联系人进行通信的 Python 代理

adversaries 对手,Abilities 能力

对手是一组能力,代表了威胁参与者可用的战术、技术和程序 (TTP)。运行操作时使用对手配置文件来确定将执行哪些能力。

能力 是一种特定的 ATT&CK 战术/技术实现,可以在运行的代理对象上执行。能力将包括要运行的命令、命令可以在其上运行的平台/执行器(例如:Windows / PowerShell)、要包含的有效负载以及对模块的引用以解析 CALDERA 服务器上的输出。

选择一个战术后,旁边就会出现具体的战术行为,你可以自由选择你想做的事

operations 行动

如果想查看已操作过的代理对象,点击 Operations 来选择相应的代理对象进行查看

如果想对一个新的代理对象进行操作,点击 VIEW , 取一个操作名字,并进行一些参数配置就可以run了

二,Plugins 插件模块

(1)Access 插件

该插件允许从数据库中分配任何具有任何能力的代理。这个插件可以实现在数据库中以任何能力向任何代理对象分配任务,还可以进行初始化访问攻击

(2)Atomic 插件

Atomic 插件可以从官方的开源 GitHub 存储库中导入所有 Red Canary Atomic 测试。

(3)Compass 插件 

Compass 指南针插件用于在CALDERA 集成 Navigator 导航器,而且无需到导航器官网,即可自定义制作 ATT&CK 矩阵图,也可以创建可视化以探索 TTP。按照以下步骤创建自己的个性可视化:

  1. 单击“生成图层”

  2. 单击“+”在导航器中打开一个新选项卡

  3. 选择“打开现有图层”

  4. 选择“从本地上传”并上传生成的图层文件

Compass 还可以利用 ATT&CK Navigator,更多信息请参见:https//github.com/mitre-attack/attack-navigator

(4)Debrief  插件

Debrief 插件提供了一种为选定的一组操作收集整体活动信息和分析的方法。它提供操作元数据的集中视图和操作的图形显示、使用的技术和策略以及操作发现的事实。而且该插件还支持以 PDF 格式导出活动信息和分析。

(5)GameBoard 插件

这是一个比较有意思的插件模块,GameBoard 插件允许监控红蓝队的操作。游戏会跟踪双方的分数,并确定哪一方“获胜”。评分旨在量化蓝队产生的真/假数量。当蓝队能够捕捉到红队的动作时,蓝队将获得积分奖励,而当蓝队无法正确捕捉时,红队将获得奖励。此外,能力会根据他们执行的策略获得不同数量的积分。

要开始游戏键盘练习,首先以蓝色和用户部署代理。“自动收集”操作将自动执行。或者,如果愿意,可以使用蓝色代理开始不同的操作。登录为红色用户,并开始其他操作。从 GUI 中打开游戏板插件并选择这些新的相应的红色和蓝色操作来监控每个操作的点

(6)Manx 插件

终端插件为 CALDERA 添加了反向 shell 功能,以及一个名为 Manx 的基于 TCP 的代理。加载此插件后,将可以访问一个新的 GUI 页面,该页面允许在目标主机上放置反向 shell 并与主机手动交互,而且可以使用终端 GUI 页面上的终端模拟器与你的会话进行交互。

(7)Sandcat  插件

Sandcat 插件,也称为 54ndc47,是 CALDERA 附带的默认代理。54ndc47 是用 GoLang 编写的,以实现跨平台兼容性。54ndc47 代理需要网络连接到端口 8888 的 CALDERA

(8)Stockpile  插件

stockpile 插件为 CALDERA 添加了一些组件:

  • Stockpile 库存插件描述了 CALDERA 框架当前所集成的能力数,配置脚本数等

这些组件都是通过plugins/stockpile/data/* 目录加载的。

CALDERA 的插件管理

进行插件库

cd   /Desktop/caldera/plugins/

删除插件

rm -rf mock/

下载插件

git clone https://github.com/mitre/mock

启用插件: Advanced—— Configuration —— Plugins  选择对应想激活的插件即可

0x03 CALDERA 的实战演练

首先先生成自己攻击代码

将这段代码结合图片混合,并做免杀,放到带有火绒的目标机上(ps:这里就不做详细演示了,网上有),我们模拟目标机打开查看这张gif图片


看目标机是否通过 8888 端口返回给我们

可以看到此时已经成功了!现在我们模拟一些红队间谍活动

将这些信息以PDF格式导出

到这里模拟的前期间谍活动已经结束了

免责声明:本文提及的技术仅可用于私人学习测试等合法场景中,任何不当利用该技术所造成的刑事、民事责任均与本文作者无关

# 红队攻防 # 红队实战; # 红队工具
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录