Installing CALDERA

CALDERA can be installed in four commands using the concise installation instructions and, optionally, be installed and run using a docker container.

Requirements

CALDERA aims to support a wide range of target systems, the core requirements are listed below:

  • Linux or MacOS operating system

  • Python 3.7, 3.8, or 3.9 (with pip3)

  • A modern browser (Google Chrome is recommended)

  • The packages listed in the requirements file

Installation

Concise

CALDERA can be installed quickly by executing the following 4 commands in your terminal.

git clone https://github.com/mitre/caldera.git --recursive
cd caldera
pip3 install -r requirements.txt
python3 server.py --insecure

Step-by-step Explanation

Start by cloning the CALDERA repository recursively, pulling all available plugins. It is recommended to pass the desired version/release (should be in x.x.x format). Cloning any non-release branch, including master, may result in bugs.

In general, the git clone command takes the form:

git clone https://github.com/mitre/caldera.git --recursive --branch x.x.x

To install version 4.0.0, one would execute:

git clone https://github.com/mitre/caldera.git --recursive --branch 4.0.0

Once the clone completes, we can jump in to the new caldera directory:

cd caldera

Next, install the pip requirements:

sudo pip3 install -r requirements.txt

Finally, start the server (optionally with startup flags for additional logging):

python3 server.py

Once started, log in to http://localhost:8888 with the red using the password found in the conf/local.yml file (this file will be generated on server start).

To learn how to use CALDERA, navigate to the Training plugin and complete the capture-the-flag style course.

Docker Deployment

CALDERA can be installed and run in a Docker container.

Start by cloning the CALDERA repository recursively, passing the desired version/release in x.x.x format:

git clone https://github.com/mitre/caldera.git --recursive --branch x.x.x

Next, build the docker image, changing the image tag as desired.

cd caldera
docker build --build-arg WIN_BUILD=true . -t caldera:server

Alternatively, you can use the docker-compose.yml file by running:

docker-compose build

Finally, run the docker CALDERA server, changing port forwarding as required. More information on CALDERA’s configuration is available here.

docker run -p 7010:7010 -p 7011:7011/udp -p 7012:7012 -p 8888:8888 caldera:server

To gracefully terminate your docker container, do the following:

# Find the container ID for your docker container running CALDERA
docker ps

# Send interrupt signal, e.g. "docker kill --signal=SIGINT 5b9220dd9c0f"
docker kill --signal=SIGINT [container ID]

Offline Installation

It is possible to use pip to install CALDERA on a server without internet access. Dependencies will be downloaded to a machine with internet access, then copied to the offline server and installed.

To minimize issues with this approach, the internet machine’s platform and Python version should match the offline server. For example, if the offline server runs Python 3.8 on Ubuntu 20.04, then the machine with internet access should run Python 3.8 and Ubuntu 20.04.

Run the following commands on the machine with internet access. These commands will clone the CALDERA repository recursively (passing the desired version/release in x.x.x format) and download the dependencies using pip:

git clone https://github.com/mitre/caldera.git --recursive --branch x.x.x
mkdir caldera/python_deps
pip3 download -r caldera/requirements.txt --dest caldera/python_deps

The caldera directory now needs to be copied to the offline server (via scp, sneakernet, etc).

On the offline server, the dependencies can then be installed with pip3:

pip3 install -r caldera/requirements.txt --no-index --find-links caldera/python_deps

CALDERA can then be started as usual on the offline server:

cd caldera
python3 server.py