BAS_CALDERA体验

caldera试用

简介

caldera由MITRE团队开发,成立于2015年,第一版发行于2017年,主要用于攻击模拟,主要用于:

  1. 自动化突防和模拟训练
  2. 在网络侧识别脆弱点
  3. 降低培训员工的开销
  4. 高亮防御中的差距
  5. 减少防御团队所需要的资源
  6. 给防御的研究者和开发者提供一个平台
  7. 解答有关检测和响应的问题

caldera也与ATT&CK框架相映射,使用了ATT&CK中的许多例子作为测试样例。

核心结构

caldera主要分为server端和agent。

server端

server端分为核心系统以及插件两大部分,主要由python开发:

  1. 核心系统:一个具备很多功能的C2服务器控制台。

  1. 插件:为caldera添加更多特性和功能的独立存储库。

插件中包含了agent部分功能的使用。

agent端

caldera的agent端有多种形式,包括反弹shell(Manx)、go编写的(Sandcat)、python(Ragdoll)编写的,均支持windows以及linux平台:

agent的主要功能就是接受下发的命令,执行剧本:

具体功能

caldera的攻击模拟按照ability——adversary——operation来进行的,有点类似于kill chain的线性攻击模型,多个能力组成一个入侵行为。

ability

ability是原子的攻击能力,对应ATT&CK中的technique,每个ability主要的属性:

  • ID:标识ability;
  • Tactic:攻击战术,对应ATT&CK中的14个战术;
  • Technique ID:攻击技术的ID,对应ATT&CK中的技术ID;
  • Technique Name:攻击技术的名称;
  • payloads:需要展开加载的payload;

caldera预置一部分的abilities,使用者也可以自行添加。

adversary

多个ability组成一个adversary:

caldera预置了一部分的adversary,使用者也可以自行添加:

operation

caldera最终执行前面组成好的adversary是operation,operation模块的部分参数:

  • Adversary:前面组合好的入侵行为;
  • Fact source:指定入侵时用到的来源,相当于一个过滤器,可以指定入侵时对某些进行过滤,比如指定某部分ip不进行攻击,或者不投递某些图片payload等;
  • Planner:指定入侵时使用执行命令的方式,caldera预置了一部分的planner:

  • Obfuscators:投递payload、命令时用到的混淆类型,caldera预置了一部分的混淆器:

  • Jitter:执行命令的频次。

执行operation后可以获取相关报告:

其他

在caldera的access模块也支持执行单点能力:

caldera提供了相关的api供使用者的测试: