Installing CALDERA

Requirements

  • Linux or MacOS operating system

  • Python 3.7+ (with pip3)

Installation

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.

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

Next, install the pip requirements:

sudo pip3 install -r requirements.txt

Finally, start the server:

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
cd caldera

Next, build a container:

docker build . -t caldera:server

Finally, run the docker CALDERA server:

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

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