"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 程序的主机,通过HTTP或 TCP等网络协议会话与服务器进行通信。
Ability Adversary Operation Pliugins 中的 Ability 是一段具体的功能程序(TTPS), 而 Adersary(Profile)是一系列 Ability 集合,Operation 则是针对特定组特定的 Adversary 实现。
0x02 CALDERA环境的安装与功能介绍
Caldera项目地址:https://github.com/mitre/caldera
CALDERA 对环境配置要求:
操作系统: Linux 或 MacOS
浏览器: Chrome
硬件要求: 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 的页面了
登录页面默认有三个账号:
登录方 | 用户名 | 密码 |
Admin | admin | admin |
Red | red | red |
Blue | blue | blue |
登录上去后,就可以看到主页面了
下面我们来看看 CALDERA 的功能
大体上分为四个模块:Campaigns 活动模块,Plugins 插件模块 ,Advanced 高级模块,Administrative 管理模块
这里只介绍前两个主要模块
一,Campaigns 活动模块:
Campaigns 活动模块下又分为 3 个小模块:agents,adversaries(Abilities),operations
agents 代理
代理 是在特定时间间隔连接回 CALDERA 以获取指令的软件程序。代理简单理解就是受害者方,代理通过最初在代理安装时定义的联系方法与 CALDERA 服务器进行通信。而已安装的代理出现在“代理”对话框的 UI 中。代理人通过他们独特的爪子或爪印来识别。
如何部署代理?看图:
CALDERA 包括许多代理程序,每个程序都添加了独特的功能,在部署代理的时候,直接选择相应的代理和平台。
Sandcat (54ndc47):一个 GoLang 代理,通过 SMB 联系人通过 HTTP、Git 或 P2P 进行通信
Manx:一个 GoLang 代理,它通过 TCP 联系人进行通信并充当反向 shell
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。按照以下步骤创建自己的个性可视化:
单击“生成图层”
单击“+”在导航器中打开一个新选项卡
选择“打开现有图层”
- 选择“从本地上传”并上传生成的图层文件
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格式导出
到这里模拟的前期间谍活动已经结束了
免责声明:本文提及的技术仅可用于私人学习测试等合法场景中,任何不当利用该技术所造成的刑事、民事责任均与本文作者无关