mitre/caldera
GitHub: mitre/caldera
基于 MITRE ATT&CK 框架的开源对手模拟平台,提供自动化红队攻击模拟能力与丰富的插件扩展体系。
Stars: 6814 | Forks: 1298
[](https://github.com/mitre/caldera/releases/latest)
[](https://github.com/mitre/caldera/actions/workflows/quality.yml?query=branch%3Amaster)
[](https://github.com/mitre/caldera/actions/workflows/security.yml?query=branch%3Amaster)
[](https://codecov.io/gh/mitre/caldera)
[](http://caldera.readthedocs.io/?badge=stable)
# MITRE Caldera™
MITRE Caldera™ 是一个网络安全平台,旨在轻松自动化对手模拟,协助手动红队,并自动化事件响应。
它基于 [MITRE ATT&CK™ framework](https://attack.mitre.org/) 构建,是 MITRE 的一个活跃研究项目。
该框架由两个组件组成:
1. **核心系统**。这是框架代码,包含在此存储库中。包括
一个带有 REST API 和 Web 界面的异步命令与控制 (C2) 服务器。
2. **插件**。这些存储库扩展了核心框架功能并提供附加功能。示例包括代理、报告、TTP 集合等。
## 资源与社交
* 📜 [文档、培训和用例](https://caldera.readthedocs.io/en/latest/)
* 🎬 [教程视频](https://www.youtube.com/playlist?list=PLF2bj1pw7-ZvLTjIwSaTXNLN2D2yx-wXH)
* ✍️ [Caldera 博客](https://medium.com/@mitrecaldera/welcome-to-the-official-mitre-caldera-blog-page-f34c2cdfef09)
* 🌐 [主页](https://caldera.mitre.org)
### 用户调查
对于我们的团队来说,听取用户关于其 Caldera 用例以及 Caldera 为其学习、研究或网络安全工作提供的价值的反馈总是非常有帮助的。如果您或您的团队大量使用 Caldera,我们将非常感谢您的反馈。
📋 **调查** - https://forms.office.com/g/ByBWxYTf8e
## 插件
:star: 创建您自己的插件!插件生成器:**[Skeleton](https://github.com/mitre/skeleton)** :star:
### 默认
这些插件由 Caldera 团队支持和维护。
- **[Access](https://github.com/mitre/access)** (红队初始访问工具和技术)
- **[Atomic](https://github.com/mitre/atomic)** (Atomic Red Team 项目 TTP)
- **[Builder](https://github.com/mitre/builder)** (动态编译 Payload)
- **[Caldera for OT](https://github.com/mitre/caldera-ot)** (Caldera 的 ICS/OT 功能)
- **[Compass](https://github.com/mitre/compass)** (ATT&CK 可视化)
- **[Debrief](https://github.com/mitre/debrief)** (行动洞察)
- **[Emu](https://github.com/mitre/emu)** (CTID 模拟计划)
- **[Fieldmanual](https://github.com/mitre/fieldmanual)** (文档)
- **[GameBoard](https://github.com/mitre/gameboard)** (可视化红蓝联合行动)
- **[Human](https://github.com/mitre/human)** (在端点上创建模拟噪音)
- **[Magma](https://github.com/mitre/magma)** (Caldera v5 的 VueJS UI)
- **[Manx](https://github.com/mitre/manx)** (Shell 功能和反向 Shell Payload)
- **[Response](https://github.com/mitre/response)** (事件响应)
- **[Sandcat](https://github.com/mitre/sandcat)** (默认 Agent)
- **[SSL](https://github.com/mitre/SSL)** (为 Caldera 启用 HTTPS)
- **[Stockpile](https://github.com/mitre/stockpile)** (技术和配置文件库)
- **[Training](https://github.com/mitre/training)** (认证和培训课程)
### 更多
这些插件可以直接使用,但默认不包含,也不由 Caldera 团队维护。
- **[Arsenal](https://github.com/mitre-atlas/arsenal)** (MITRE ATLAS 技术和配置文件)
- **[BountyHunter](https://github.com/fkie-cad/bountyhunter)** (The Bounty Hunter)
- **[CalTack](https://github.com/mitre/caltack.git)** (嵌入式 ATT&CK 网站)
- **[SAML](https://github.com/mitre/saml)** (SAML 认证)
## 系统要求
运行核心框架的计算机需满足以下要求:
* 任何 Linux 或 MacOS
* Python 3.10+ (带有 Pip3)
* 推荐运行硬件为 8GB+ 内存和 2+ CPU
* 推荐:[GoLang 1.24+](https://go.dev/doc/install) 以动态编译基于 GoLang 的 Agent。
* NodeJS (v5 VueJS UI 推荐使用 v16+)
## 安装说明
注意:我们强烈建议在 Python 虚拟环境中安装 Caldera,以避免 pip 包的问题。您可以根据需要使用现有环境,或从头开始创建一个新环境:
```
python3 -m venv .calderavenv
source .calderavenv/bin/activate
```
简明安装步骤:
```
git clone https://github.com/mitre/caldera.git --recursive
cd caldera
pip3 install -r requirements.txt
python3 server.py --insecure --build
```
完整步骤:
首先递归克隆此存储库,以 x.x.x 格式传递所需的版本/发布版。这将拉取所有可用的插件。
```
git clone https://github.com/mitre/caldera.git --recursive --tag x.x.x
```
接下来,安装 PIP 依赖项:
```
pip3 install -r requirements.txt
```
最后,启动服务器。
```
python3 server.py --insecure --build
```
`--build` 标志会自动安装所有 VueJS UI 依赖项,将 UI 打包到 dist 目录中,并由 Caldera 服务器提供服务。如果您添加了任何插件或对 UI 进行了任何更改,只需再次使用 `--build` 标志即可。启动后,使用默认凭据 red/admin 登录 http://localhost:8888。然后进入 Plugins -> Training 并完成夺旗 (CTF) 风格的培训课程以学习如何使用 Caldera。
如果您不想使用新的 VueJS UI,请恢复到 Caldera v4.2.0。相应地,对于早期版本,不要使用 `--build` 标志,因为不需要。
**此外,请注意部署 Caldera 的[安全建议](#Security)。**
## Docker 安装
本地构建:
```
git clone https://github.com/mitre/caldera.git --recursive
cd caldera
docker build --build-arg VARIANT=full -t caldera .
docker run -it -p 8888:8888 caldera
```
根据需要调整端口转发 (`-p`) 和构建参数 (`--build-arg`) 以使端口可访问或更改 Caldera 变体。您公开的端口取决于您计划使用的联系人(请参阅 `Dockerfile` 和 `docker-compose.yml` 以供参考)。
预构建镜像(来自 GitHub Container Registry):
```
docker run -p 8888:8888 ghcr.io/mitre/caldera:latest
```
此容器可能稍有过时,我们建议您自己构建容器。
要优雅地终止您的 Docker 容器,请执行以下操作:
```
# 查找运行 Caldera 的 docker 容器的容器 ID
docker ps
# 停止容器
docker stop
```
有两个可用的变体,*full* 和 *slim*。*slim* 变体不包含 `emu` 和 `atomic` 插件所需的文件,如果启用这些插件,将按需下载。*full* 变体适用于在没有互联网连接的环境中运行。GHCR 上的 Slim 镜像以 "slim" 为前缀。
**Docker 容器注意事项**
- Caldera 容器将在首次启动时自动生成密钥/用户名/密码。
- 如果您希望覆盖默认配置或避免自动生成密钥/密码,请考虑使用 `-v /conf.yml:/usr/src/app/conf/local.yml` 标志绑定挂载您自己的配置文件。
- Caldera 存储的数据默认是临时的。如果您希望使其持久化,请使用 Docker 卷和/或绑定挂载 (`-v :/usr/src/app/data/`)。确保目录结构与 GitHub 上的 `data/` 目录相同,因为如果缺少这些子目录,Caldera 将拒绝创建它们。最后,确保配置文件也是持久化的,以防止加密密钥出现问题。
- `builder` 插件在 Docker 内部无法工作。
- 如果您希望修改 `atomic` 插件使用的数据,请在容器外克隆 `Atomic Red Team` 存储库,应用您的修改并将其绑定挂载 (`-v`) 到容器内的 `/usr/src/app/plugins/atomic/data/atomic-red-team`。
- 如果您希望修改 `emu` 使用的数据,请在本地克隆 `adversary_emulation_library` 存储库并将其绑定挂载 (`-v`) 到 `/usr/src/app/plugins/emu/data/adversary-emulation-plans`。
**此外,请注意部署 Caldera 的[安全建议](#Security)。**
### 用户界面开发
如果您要进行 UI 开发,还需要执行一些额外的安装步骤。
**要求**
* NodeJS (推荐 v16+)
**设置**
1. 如果尚未添加 Magma 子模块,请添加:`git submodule add https://github.com/mitre/magma`
2. 安装 NodeJS 依赖项:`cd plugins/magma && npm install && cd ..`
3. 使用附加标志启动 Caldera 服务器:`python3 server.py --uidev localhost`
您的 Caldera 服务器照常在 http://localhost:8888 上可用,但现在将在 http://localhost:3000 上为 VueJS 前端提供一个热重载开发服务器。来自服务器和前端的日志都将显示在您启动服务器的终端中。
## 安全
Caldera 团队强烈建议在安全的环境/网络上搭建 Caldera 服务器,不要将其暴露在互联网上。Caldera 服务器没有经过加固和彻底渗透测试的 Web 应用程序接口,只有基本的身份验证和安全功能。MITRE 和 MITRE 的美国政府赞助商几乎只在安全环境中使用 Caldera,并且不依赖 Caldera 自身的安全协议来提供适当的网络安全。
### 漏洞披露
请参阅我们的[漏洞披露文档](SECURITY.md)以提交 Bug。
#### 最近的漏洞披露
`🚨安全通知🚨`:(2025 年 2 月 17 日 10:00 EST) 请拉取 v5.1.0+ 版本以获取 [CVE-2025-27364](https://www.cve.org/CVERecord?id=CVE-2025-27364) 的最新安全补丁。请更新您的 Caldera 实例,特别是当您在可公开访问的网络上托管 Caldera 时。[漏洞详解。](https://medium.com/@mitrecaldera/mitre-caldera-security-advisory-remote-code-execution-cve-2025-27364-5f679e2e2a0e)
## 贡献
请参阅我们的[贡献者文档](CONTRIBUTING.md)。
## 许可
如需讨论许可机会,请联系 caldera@mitre.org 或直接联系 [MITRE's Technology Transfer Office](https://www.mitre.org/about/corporate-overview/contact-us#technologycontact)。
## Caldera 赞助计划
如果您有兴趣合作支持、维持和发展 MITRE Caldera™ 的开源能力,请通过 caldera@mitre.org 与我们联系。
标签:AES-256, asyncio, ATT&CK 框架, C2 服务器, DNS解析, FTP漏洞扫描, MITRE Caldera, Python, REST API, 命令与控制, 安全工具集合, 安全编排, 对手模拟, 开源项目, 无后门, 日志审计, 漏洞评估, 紫队, 网络安全, 网络演练, 请求拦截, 调试插件, 逆向工具, 隐私保护