MITRE Caldera™ is a cyber security platform designed to easily automate adversary emulation, assist manual red-teams, and automate incident response.
It is built on the MITRE ATT&CK™ framework and is an active research project at MITRE.
The framework consists of two components:
1) The core system. This is the framework code, consisting of what is available in this repository. Included is an asynchronous command-and-control (C2) server with a REST API and a web interface. 2) Plugins. These repositories expand the core framework capabilities and providing additional functionality. Examples include agents, reporting, collections of TTPs and more.
:star: Create your own plugin! Plugin generator: Skeleton :star:
These plugins are supported and maintained by the Caldera team.
These plugins are ready to use but are not included by default and are not maintained by the Caldera team.
These requirements are for the computer running the core framework:
Concise installation steps:
git clone https://github.com/mitre/caldera.git --recursive
cd caldera
pip3 install -r requirements.txt
python3 server.py --insecure --build
Full steps: Start by cloning this repository recursively, passing the desired version/release in x.x.x format. This will pull in all available plugins.
git clone https://github.com/mitre/caldera.git --recursive --tag x.x.x
Next, install the PIP requirements:
pip3 install -r requirements.txt
Super-power your Caldera server installation! Install GoLang (1.19+)
Finally, start the server.
python3 server.py --insecure --build
The --build flag automatically installs any VueJS UI dependencies, bundles the UI into a dist directory, writes the Magma plugin's .env
file, and is served by the Caldera server. You will only have to use the --build flag again if you add any plugins or make any changes to the UI.
Once started, log into http://localhost:8888 using the default credentials red/admin. Then go into Plugins -> Training and complete the capture-the-flag style training course to learn how to use Caldera.
In some situations the default configuration values can cause the UI to appear unresponsive due to misrouted requests. Modify the app.frontend.api_base_url
config value and start the server using the --build flag to update the UI's request URL environment variable.
If you prefer to not use the new VueJS UI, revert to Caldera v4.2.0. Correspondingly, do not use the --build
flag for earlier versions as not required.
If you'll be developing the UI, there are a few more additional installation steps.
Requirements
Setup
git submodule add https://github.com/mitre/magma
cd plugins/magma && npm install && cd ..
python3 server.py --uidev localhost
Your Caldera server is available at http://localhost:8888 as usual, but there will now be a hot-reloading development server for the VueJS front-end available at http://localhost:3000. Both logs from the server and the front-end will display in the terminal you launched the server from.
To build a Caldera docker image, ensure you have docker installed and perform the following actions:
# Recursively clone the Caldera repository if you have not done so
git clone https://github.com/mitre/caldera.git --recursive
# Build the docker image. Change image tagging as desired.
# WIN_BUILD is set to true to allow Caldera installation to compile windows-based agents.
# Alternatively, you can use the docker compose YML file via "docker-compose build"
cd caldera
docker build . --build-arg WIN_BUILD=true -t caldera:latest
# Run the image. Change port forwarding configuration as desired.
docker run -p 8888:8888 caldera:latest
To gracefully terminate your docker container, do the following:
# Find the container ID for your docker container running Caldera
docker ps
# Stop the container
docker stop [container ID]
Refer to our contributor documentation.
Refer to our Vulnerability Disclosure Documentation for submitting bugs.
To discuss licensing opportunities, please reach out to caldera@mitre.org or directly to MITRE's Technology Transfer Office.
If you are interested in partnering to support, sustain, and evolve MITRE Caldera™'s open source capabilities, please contact us at caldera@mitre.org.